Method: CSquare::Generator::Enum#initialize

Defined in:
lib/csquare/generator/enum.rb

#initialize(name, opts = {}) ⇒ Enum

Returns a new instance of Enum.



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/csquare/generator/enum.rb', line 2

def initialize name, opts = {}
  @name      = name
  @prefix    = opts[:prefix]

  @on = opts.has_key?(:ops) ? :ops : :types

  @selector = opts[@on]

  # Don't need to use a namer if a hash was given; hash provides the names instead.
  if @selector.is_a?(Array)
    namer = opts[:with]
    namer ||= @on == :ops ? :OpNamer : :Namer

    namer_klass = begin
      CSquare::Generator::Enum.const_get(namer)
    rescue NameError
      Kernel.const_get(namer)
    end

    # Create a namer object with the specified prefix (if any)
    @namer     = namer_klass.send :new, @prefix
  end
end