Class: CommissionJunction::CjObject
- Inherits:
-
Object
- Object
- CommissionJunction::CjObject
- Defined in:
- lib/commission_junction.rb
Overview
Turn a hash into an object where each key becomes an instance method.
Direct Known Subclasses
Instance Method Summary collapse
- #clean_key_name(name) ⇒ Object
-
#initialize(params) ⇒ CjObject
constructor
A new instance of CjObject.
Constructor Details
#initialize(params) ⇒ CjObject
Returns a new instance of CjObject.
197 198 199 200 201 202 203 204 205 206 207 208 209 |
# File 'lib/commission_junction.rb', line 197 def initialize(params) raise ArgumentError, "params must be a Hash; got #{params.class} instead" unless params.is_a?(Hash) raise ArgumentError, 'Expecting at least one parameter' if params.empty? # Create instance variables and attribute readers on the fly. # Credit: http://listlibrary.net/ruby-talk/2004/03/00sGI1cD params.each do |key, val| raise ArgumentError, "key must be a String; got #{key.class} instead" unless key.is_a?(String) clean_key = clean_key_name(key) instance_variable_set("@#{clean_key}".intern, val) instance_eval %( class << self ; attr_reader #{clean_key.intern.inspect} ; end ) end end |
Instance Method Details
#clean_key_name(name) ⇒ Object
211 212 213 |
# File 'lib/commission_junction.rb', line 211 def clean_key_name(name) name.strip.gsub(/\s/, '_') end |