Sha256: 87039452a5509e92cf8d5db49b6453b833c27ea53451a266fdb30ac7565694d7

Contents?: true

Size: 681 Bytes

Versions: 35

Compression:

Stored size: 681 Bytes

Contents

class Enum

  class Term
    def initialize(scope, term)
      @term = term
      @scope = scope
    end
    
    def id
      @term
    end
    
    def to_label
      I18n.t(@term, :scope => @scope, :default => @term.to_s.humanize)
    end
  end

  attr_reader :terms
  
  def initialize(scope, *keys)
    @keys  = [keys].flatten
    @keys_to_terms = {}
    @terms = @keys.map do |key|
      t = Term.new(scope, key.to_s)
      @keys_to_terms[key.to_s] = t
      t
    end
  end
  
  def keys
    @keys
  end

  def to_a
    keys
  end
  
  
  def get_term(key)
    @keys_to_terms[key.to_s]
  end
  
  def to_options
    terms.map {|t| 
      [t.to_label,t.id]
    }
  end
  
end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
fullstack-cms-0.4.6 app/support/enum.rb
fullstack-cms-0.4.5 app/support/enum.rb
fullstack-cms-0.4.4 app/support/enum.rb
fullstack-cms-0.4.3 app/support/enum.rb
fullstack-cms-0.4.2 app/support/enum.rb
fullstack-cms-0.4.1 app/support/enum.rb
fullstack-cms-0.3.39 app/support/enum.rb
fullstack-cms-0.3.38 app/support/enum.rb
fullstack-cms-0.3.37 app/support/enum.rb
fullstack-cms-0.3.36 app/support/enum.rb
fullstack-cms-0.3.35 app/support/enum.rb
fullstack-cms-0.3.34 app/support/enum.rb
fullstack-cms-0.3.33 app/support/enum.rb
fullstack-cms-0.3.32 app/support/enum.rb
fullstack-cms-0.3.31 app/support/enum.rb
fullstack-cms-0.3.30 app/support/enum.rb
fullstack-cms-0.3.29 app/support/enum.rb
fullstack-cms-0.3.28 app/support/enum.rb
fullstack-cms-0.3.27 app/support/enum.rb
fullstack-cms-0.3.26 app/support/enum.rb