Sha256: 7ccac9132101fc7e11c2d5a9c69cbc99db760fae1603231bfa4d842c5d8644d4

Contents?: true

Size: 637 Bytes

Versions: 1

Compression:

Stored size: 637 Bytes

Contents

module OData
  class EnumType < Type
    attr_reader :members

    def initialize(options={})
      super
      @members = options[:members]
    end

    def valid_value?(value)
      member_names.include?(value) || member_values.include?(value)
    end

    def type
      name
    end

    def coerce(value)
      if value && value.is_a?(Integer)
        member = @members.find { |m| m[:value] == value }
        member && member[:name]
      else
        super
      end
    end

    private

    def member_names
      members.map { |m| m[:name] }
    end

    def member_values
      members.map { |m| m[:value] }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
microsoft_graph-0.1.2 lib/odata/types/enum_type.rb