module BetfairApiNgRails::Api::Data::Concerns::Attributable::ClassMethods
Attributes
class_attrs[RW]
Public Instance Methods
attributes(attrs)
click to toggle source
# File lib/betfair_api_ng_rails/api/data/concerns/attributable.rb, line 13 def attributes(attrs) define_class_attrs attrs define_attr_accessors end
Private Instance Methods
define_attr_accessors()
click to toggle source
# File lib/betfair_api_ng_rails/api/data/concerns/attributable.rb, line 31 def define_attr_accessors self.class_attrs.each { |name, options| class_eval("attr_accessor :#{name}") } end
define_class_attrs(attrs)
click to toggle source
# File lib/betfair_api_ng_rails/api/data/concerns/attributable.rb, line 20 def define_class_attrs(attrs) class << self; attr_accessor :class_attrs; end self.class_attrs = process_attributes(attrs) end
fetch_attr_name(attrib)
click to toggle source
# File lib/betfair_api_ng_rails/api/data/concerns/attributable.rb, line 35 def fetch_attr_name(attrib) attrib.is_a?(Hash) ? attrib.keys.first : attrib end
fetch_attr_options(attrib)
click to toggle source
# File lib/betfair_api_ng_rails/api/data/concerns/attributable.rb, line 39 def fetch_attr_options(attrib) attrib.is_a?(Hash) ? DEFAULT_OPTIONS.merge(attrib.values.first) : DEFAULT_OPTIONS end
process_attributes(attrs)
click to toggle source
# File lib/betfair_api_ng_rails/api/data/concerns/attributable.rb, line 25 def process_attributes(attrs) attrs.each_with_object({}) do |a, h| h[fetch_attr_name(a)] = fetch_attr_options(a) end end