Kiel etendi rubenon per ActiveSupport
Kiam Rails disvolviĝis la kerna skipo havis trajtojn ili esperis ke Rails enhavis. Do ili etendis la bazajn objektojn kaj metis la etendojn en projekton nomitan ActiveSupport. Ĉi tie mi montros al vi kiel uzi ĝin en kaj ekster Rails.
Kiel uzi ĝin ekster Rails
Se vi volas uzi la projekton ekster Rails la skipo penis faciligi la enmetado. Oni bezonas postuli la bazan nomejon kaj poste vi povas enmeti tiom kiom vi volas.
Por agordi la projekton:
require 'active_support'
De tie vi povas elekti enmeti funkcion, funkciojn por objecto, ĉion de core_ext
, aŭ la tuton de ActiveSupport.
Ekzemple por la .blank?
metodo vi povas uzi
require 'active_support'
require 'active_support/core_ext/object/blank'
Por ĉiu etenda funkcio de object
vi povas require
object
require 'active_support'
require 'active_support/core_ext/object'
Aŭ por la tuto de core-ext
require 'active_support'
require 'active_support/core_ext
kaj fine por la tuta de ActiveSupport
require 'active_support'
require 'active_support/all
Specimeno de funkcioj
Sube estas helpemaj funkcioj laŭ objekto
Je Object (objekto)
.blank?
ĉu la objekto estasnil
aŭfalse
.present?
la malo de.blank?
.presence
donas la objekto se ĝi estas.present?
alie ĝi donas nil uzinda kieluzanto.nomo.presence || 'Zam'
Je String (ĉeno)
.inquery
aldonas ĉu-funkcio por egaleco"zam".inquery.zam?
=> true"aktiva".inquery.neaktiva?
=> falseto_date
(al_dato),to_time
(al_tempo),to_datetime
(al_dattempo) helpemaj tegfunkcioj porDate._parse
"2015-12-15".to_date
# => Tue, 15 Dec 2015"2015-12-15 05:34:33".to_time
# => 2015-12-15 05:34:33 -0600"2015-12-15 05:34:33".to_datetime
# => Tue, 15 Dec 2015 05:34:33 +0000to_time
ankaŭ ricevas simbolon por la horzono (loka aŭ universala)- "2010-07-27 23:42:00".to_time(:local) # => 2010-07-27 23:42:00 -0500
- "2010-07-27 23:42:00".to_time(:utc) # => 2010-07-27 23:42:00 UTC
Je Numeric (nombra)
bytes
,kilobytes
,megabytes
,gigabytes
,terabytes
,petabytes
,exabytes
ĉiu konvertas al la nombro da bajtoj2.kilobytes
# => 20483.14.gigabytes
# => 3371549327.36- Ebligas kalkulon de tempo el nombroj
1.month.from_now
(1.monato.ekde_nun)2.years.ago
(1.jaroj.antaŭe)(3.months + 2.years).from_now
((3.monatoj + 2.jaron).ekde_nun- Formigado per etentado de
.to_s
- Monunuo:
34.22.to_s(:currency)
# => "$34.22" - Elcentaĵo:
34.to_s(:percentage)
# => "34.000%"34.to_s(:percentage, precision: 0)
# => "34%"
Je Enumerable (listigebla)
.sum
(sumo)[1, 2, 3].sum
# => 6(1..50).sum
# => 1275[].sum
=> 0 sed[].sum(1)
=> `.index_by
kreas tabelon kie la ŝlosilo estas de la kodbloko%w(tablo seĝo lumilo).index_by{|n| n.length * 3}
# => {15=>"tablo", 12=>"seĝo", 18=>"lumilo"}- aŭ se nur estas metodo sur la objektoj vi povas uzi la & truko
%w(tablo seĝo lumilo).index_by(&:length)
# => {5=>"tablo", 4=>"seĝo", 6=>"lumilo"} .many?
(multaj) ĉu funkcio por vidi ĉu estas pli ol unu[].many?
# => false[1].many?
# => false[1,2].many?
# => true- kun kodbloko
(0..4).many?(&:nonzero?)
# => true
Je Range (intervalo)
.include?
(enhavas) kontrolos ĉu la intervalo enhavas objekton aŭ alian intervalon(1..5).include?(Math::PI)
# => true(1..10).include?(3..5)
# => true(1..10).include?(0..4)
# => false
Fino
Ĉi tio nur estas specimeno de la funkcioj haveblas per ActiveSupport. La resto vi povas prilegi ĉe la gvidlibro de Rails, tamen en la angla. Ĝuu