Module: Safe::SafeHelper

Included in:
Safe
Defined in:
lib/enums.rb,
lib/enums.rb

Instance Method Summary collapse

Instance Method Details

#enum(class_name, *args, flags: false, options: {}, **kwargs) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/enums.rb', line 53

def enum( class_name, *args, flags: false, options: {}, **kwargs )

  ## note: allow "standalone" option flags or
  ## option hash
  defaults = { flags: flags }
  options = defaults.merge( options )
  pp options

  ########################################
  # note: lets you use:
  #   enum :Color, :red, :green, :blue
  #    -or-
  #   enum :Color, [:red, :green, :blue]
  if args.size > 0 && args[0].is_a?( Array )
    args = args[0]
  end

  if options[:flags]
    Flag.new( class_name, *args, **kwargs )
  else
    Enum.new( class_name, *args, **kwargs )
  end
end