Sha256: cc23ea230155b8881128856d36936cd5e5aeeb5fa710b265862c5b08489a1f35

Contents?: true

Size: 797 Bytes

Versions: 14

Compression:

Stored size: 797 Bytes

Contents

require 'trax/core/abstract_methods'
class EnumValue
  include ::Trax::Core::AbstractMethods

  abstract_class_attribute :tag, :value

  def self.as_json(options={})
    tag.to_s
  end

  def self.enum
    parent
  end

  def self.to_s
    tag.to_s
  end

  def self.to_sym
    tag
  end

  def self.to_i
    value
  end

  def self.is_enum_value?(val)
    val == parent
  end

  def self.to_schema
    ::Trax::Core::Definition.new(
      :source => self.name,
      :name => to_s,
      :type => :enum_value,
      :integer_value => to_i
    )
  end

  def self.inspect
    ":#{tag}"
  end

  def self.include?(val)
    self.=== val
  end

  #maybe this is a bad idea, not entirely sure
  def self.==(val)
    self.=== val
  end

  def self.===(val)
    [tag, to_s, to_i].include?(val)
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
trax_core-0.0.86 lib/trax/core/primitives/enum_value.rb
trax_core-0.0.85 lib/trax/core/primitives/enum_value.rb
trax_core-0.0.84 lib/trax/core/primitives/enum_value.rb
trax_core-0.0.83 lib/trax/core/primitives/enum_value.rb
trax_core-0.0.82 lib/trax/core/primitives/enum_value.rb
trax_core-0.0.81 lib/trax/core/primitives/enum_value.rb
trax_core-0.0.80 lib/trax/core/primitives/enum_value.rb
trax_core-0.0.79 lib/trax/core/primitives/enum_value.rb
trax_core-0.0.78 lib/trax/core/primitives/enum_value.rb
trax_core-0.0.77 lib/trax/core/primitives/enum_value.rb
trax_core-0.0.76 lib/trax/core/primitives/enum_value.rb
trax_core-0.0.74 lib/trax/core/primitives/enum_value.rb
trax_core-0.0.73 lib/trax/core/primitives/enum_value.rb
trax_core-0.0.72 lib/trax/core/primitives/enum_value.rb