Sha256: da1d651a4fdd1a14c1b291df1a9da63309f9e78b5e484667a13752843911d1a9

Contents?: true

Size: 739 Bytes

Versions: 2

Compression:

Stored size: 739 Bytes

Contents

 module GoogleCells

  class GoogleObject
    class << self
      attr_reader :permanent_attributes

      def define_accessors
        self.instance_eval do
          @permanent_attributes.each do |k|
            define_method(k){ @values[k] }
          end
        end
      end
    end

    def initialize(attribs={})
      @values = {}
      self.class.permanent_attributes.each{|a| @values[a] = attribs[a]}

      extra = attribs.keys - self.class.permanent_attributes
      extra.each do |a|
        if self.respond_to?("#{a}=")
          instance_variable_set("@#{a}".to_sym, attribs[a])
          next
        end
        raise ArgumentError, "invalid attribute #{a} passed to #{
          self.class}"
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
google-cells-0.4.0 lib/google_cells/google_object.rb
google-cells-0.3.0 lib/google_cells/google_object.rb