Sha256: 8be3525c6bf859d272aeb185b11fc4f53c9e6299df74a4b98ef63d31753a4666

Contents?: true

Size: 680 Bytes

Versions: 10

Compression:

Stored size: 680 Bytes

Contents

class PlaidObject

  def initialize(hash)
    hash.keys.each do |key|
      self.class.send(:define_method, "#{key}") do
        instance_variable_get("@#{key}")
      end

      if hash[key].is_a? Array
        arr = []
        hash[key].each do |chunk|
          if chunk.is_a? Hash
            arr <<  PlaidObject.new(chunk)
          else
            arr << chunk
          end
        end
        instance_variable_set("@#{key}", arr)
      elsif hash[key].is_a? Hash
        h = hash[key]
        instance_variable_set("@#{key}", h)
      else
        eval("@#{key} = '#{encode(hash[key].to_s)}'")
      end
    end

  end

  def encode(str)
    str.gsub("'", "")
  end

end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
plaid-kilt-0.7.7 lib/plaid/plaid_object.rb
plaid-kilt-0.7.6 lib/plaid/plaid_object.rb
plaid-kilt-0.7.5 lib/plaid/plaid_object.rb
plaid-kilt-0.7.4 lib/plaid/plaid_object.rb
plaid-kilt-0.7.3 lib/plaid/plaid_object.rb
plaid-kilt-0.6.0 lib/plaid/plaid_object.rb
plaid-kilt-0.5.5 lib/plaid/plaid_object.rb
plaid-kilt-0.5.4 lib/plaid/plaid_object.rb
plaid-kilt-0.5.2 lib/plaid/plaid_object.rb
plaid-kilt-0.5.1 lib/plaid/plaid_object.rb