Sha256: a2d32f022e033c874d2b373f89a6085c3fdae78817dec76846add3dc4b3a2f92
Contents?: true
Size: 726 Bytes
Versions: 3
Compression:
Stored size: 726 Bytes
Contents
module Rasti module Types class Enum include Castable attr_reader :values def self.[](*values) new values end def to_s "#{self.class}[#{values.map(&:inspect).join(', ')}]" end alias_method :inspect, :to_s private def initialize(values) @values = values.map(&:to_s) define_getters end def valid?(value) values.include? String.cast(value) rescue false end def transform(value) String.cast value end def define_getters values.each do |value| define_singleton_method(Inflecto.underscore(value)) { value } end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rasti-types-1.1.2 | lib/rasti/types/enum.rb |
rasti-types-1.1.1 | lib/rasti/types/enum.rb |
rasti-types-1.1.0 | lib/rasti/types/enum.rb |