Module: FeedNormalizer::Singular
Instance Method Summary collapse
-
#method_missing(name, *args) ⇒ Object
If the method being called is a singular (in this simple case, does not end with an ‘s’), then it calls the plural method, and calls the first element.
- #respond_to?(x, y = false) ⇒ Boolean
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args) ⇒ Object
If the method being called is a singular (in this simple case, does not end with an ‘s’), then it calls the plural method, and calls the first element. We’re assuming that plural methods provide an array.
Example: Object contains an array called ‘alphas’, which looks like [:a, :b, :c]. Call object.alpha and :a is returned.
13 14 15 |
# File 'lib/structures.rb', line 13 def method_missing(name, *args) return self.send(:"#{name}s").first rescue super(name, *args) end |
Instance Method Details
#respond_to?(x, y = false) ⇒ Boolean
17 18 19 |
# File 'lib/structures.rb', line 17 def respond_to?(x, y=false) self.class::ELEMENTS.include?(x) || self.class::ELEMENTS.include?(:"#{x}s") || super(x, y) end |