class SportsDataApi::JsonData
Attributes
instance_var_name[R]
Public Class Methods
new(json, override_var_name = nil)
click to toggle source
# File lib/sports_data_api/json_data.rb, line 3 def initialize(json, override_var_name = nil) ivar = set_data_key(override_var_name) json.each_pair do |attr_name, attr_value| ivar[attr_name.to_sym] = attr_value end end
Public Instance Methods
[](key)
click to toggle source
# File lib/sports_data_api/json_data.rb, line 10 def [](key) return send(key) if respond_to?(key) self.instance_variable_get("@#{instance_var_name}")[key] end
Private Instance Methods
class_name()
click to toggle source
# File lib/sports_data_api/json_data.rb, line 26 def class_name @class_name ||= self .class .name .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2') .gsub(/([a-z\d])([A-Z])/, '\1_\2') .split('::') .last .downcase end
set_data_key(override_var_name)
click to toggle source
# File lib/sports_data_api/json_data.rb, line 19 def set_data_key(override_var_name) var_name = override_var_name || class_name @instance_var_name = var_name self.class.class_eval { attr_reader :"#{var_name}" } self.instance_variable_set("@#{instance_var_name}", {}) end