Sha256: d83cf8ed27c2af33302224967ed33ab47e8e0d4f131ed834309a86b5376cdcd1

Contents?: true

Size: 630 Bytes

Versions: 4

Compression:

Stored size: 630 Bytes

Contents

module EY
  class Account
    class ApiStruct < Struct
      def self.new(*args, &block)
        super(*args) do |*block_args|
          block.call(*block_args) if block

          def self.from_array(array, account = nil)
            array.map do |values|
              from_hash(values.merge(:account => account))
            end if array
          end

          def self.from_hash(hash)
            return nil unless hash
            members = new.members
            values = members.map{|a| hash.has_key?(a.to_sym) ? hash[a.to_sym] : hash[a] }
            new(*values)
          end

        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
engineyard-0.3.1 lib/engineyard/account/api_struct.rb
engineyard-0.3.0 lib/engineyard/account/api_struct.rb
engineyard-0.2.13 lib/engineyard/account/api_struct.rb
engineyard-0.2.12 lib/engineyard/account/api_struct.rb