Sha256: 2a683d9ba5178171f762750cbe811457f194695cefcfaf369fee96f94f52166b

Contents?: true

Size: 734 Bytes

Versions: 24

Compression:

Stored size: 734 Bytes

Contents

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

          def self.from_array(array, common_values = {})
            array.map do |values|
              from_hash(values.merge(common_values))
            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

      def api_get(uri, options = {})
        api.request(uri, options.merge(:method => :get))
      end

    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
engineyard-1.2.1 lib/engineyard/model/api_struct.rb
engineyard-1.2.0 lib/engineyard/model/api_struct.rb
engineyard-1.1.3 lib/engineyard/model/api_struct.rb
engineyard-1.1.2 lib/engineyard/model/api_struct.rb
engineyard-1.1.1 lib/engineyard/model/api_struct.rb
engineyard-1.1.0 lib/engineyard/model/api_struct.rb
engineyard-1.0.2 lib/engineyard/model/api_struct.rb
engineyard-1.0.1 lib/engineyard/model/api_struct.rb
engineyard-1.0.0 lib/engineyard/model/api_struct.rb
engineyard-0.10.0 lib/engineyard/model/api_struct.rb
engineyard-0.9.0 lib/engineyard/model/api_struct.rb
engineyard-0.8.2 lib/engineyard/model/api_struct.rb
engineyard-0.8.1 lib/engineyard/model/api_struct.rb
engineyard-0.8.0 lib/engineyard/model/api_struct.rb
engineyard-0.7.1 lib/engineyard/model/api_struct.rb
engineyard-0.7.0 lib/engineyard/model/api_struct.rb
engineyard-0.5.5 lib/engineyard/model/api_struct.rb
engineyard-0.5.4 lib/engineyard/model/api_struct.rb
engineyard-0.5.3 lib/engineyard/model/api_struct.rb
engineyard-0.5.2 lib/engineyard/model/api_struct.rb