Ruby on Rails 5.2 - ActiveSupport::OrderedOptions

वर्ग ActiveSupport :: ऑर्डर किए गए




ruby

वर्ग ActiveSupport :: ऑर्डर किए गए

जनक:
Hash

आमतौर पर मुख्य मूल्य जोड़े को इस तरह से संभाला जाता है:

h = {}
h[:boy] = 'John'
h[:girl] = 'Mary'
h[:boy]  # => 'John'
h[:girl] # => 'Mary'
h[:dog]  # => nil

OrderedOptions का उपयोग करते OrderedOptions , उपरोक्त कोड को कम किया जा सकता है:

h = ActiveSupport::OrderedOptions.new
h.boy = 'John'
h.girl = 'Mary'
h.boy  # => 'John'
h.girl # => 'Mary'
h.dog  # => nil

मान रिक्त होने पर अपवाद बढ़ाने के लिए, मुख्य नाम के लिए एक धमाके को संलग्न करें, जैसे:

h.dog! # => raises KeyError: :dog is blank

सार्वजनिक प्रवृत्ति के तरीके

# File activesupport/lib/active_support/ordered_options.rb, line 37
def [](key)
  super(key.to_sym)
end
सुपरक्लास विधि कहता है
इसके अलावा उपनाम: _get
[] = (कुंजी, मान) स्रोत दिखाएं
# File activesupport/lib/active_support/ordered_options.rb, line 33
def []=(key, value)
  super(key.to_sym, value)
end
सुपरक्लास विधि कहता है
_get (कुंजी)
इसके लिए उपनाम: []
method_missing (नाम, * args) स्रोत दिखाएं
# File activesupport/lib/active_support/ordered_options.rb, line 41
def method_missing(name, *args)
  name_string = name.to_s
  if name_string.chomp!("=")
    self[name_string] = args.first
  else
    bangs = name_string.chomp!("!")

    if bangs
      self[name_string].presence || raise(KeyError.new(":#{name_string} is blank"))
    else
      self[name_string]
    end
  end
end
respond_to_missing? (नाम, शामिल_पेंटी) स्रोत दिखाएँ
# File activesupport/lib/active_support/ordered_options.rb, line 56
def respond_to_missing?(name, include_private)
  true
end