module SimpleAttrs
Constants
- VERSION
Public Class Methods
included(base)
click to toggle source
# File lib/simple_attrs.rb, line 4 def self.included(base) base.extend ClassMethods base.class_eval do @simple_attrs ||= {} def initialize(options = {}) options.each do |key, value| if self.class.simple_attrs.has_key?(key.to_sym) instance_variable_set("@#{key}", value) else raise ArgumentError, "Cannot set #{key} through initializer" end end end def attributes self.class.simple_attrs.inject({}) do |result, attr_pair| key, _value = attr_pair result.merge(key => self.public_send(key)) end end end end
new(options = {})
click to toggle source
# File lib/simple_attrs.rb, line 10 def initialize(options = {}) options.each do |key, value| if self.class.simple_attrs.has_key?(key.to_sym) instance_variable_set("@#{key}", value) else raise ArgumentError, "Cannot set #{key} through initializer" end end end
Public Instance Methods
attributes()
click to toggle source
# File lib/simple_attrs.rb, line 20 def attributes self.class.simple_attrs.inject({}) do |result, attr_pair| key, _value = attr_pair result.merge(key => self.public_send(key)) end end