Class: MetaStates::Configuration::ModelConfiguration

Inherits:
Object
  • Object
show all
Defined in:
lib/meta_states/configuration/model_configuration.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(model_class) ⇒ ModelConfiguration

Returns a new instance of ModelConfiguration.



8
9
10
11
# File 'lib/meta_states/configuration/model_configuration.rb', line 8

def initialize(model_class)
  @model_class = model_class
  @state_types = {}
end

Instance Attribute Details

#model_classObject (readonly)

Returns the value of attribute model_class.



6
7
8
# File 'lib/meta_states/configuration/model_configuration.rb', line 6

def model_class
  @model_class
end

#state_typesObject (readonly)

Returns the value of attribute state_types.



6
7
8
# File 'lib/meta_states/configuration/model_configuration.rb', line 6

def state_types
  @state_types
end

Instance Method Details

#state_type(name) {|type| ... } ⇒ Object

Yields:

  • (type)


13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/meta_states/configuration/model_configuration.rb', line 13

def state_type(name)
  type = StateTypeConfiguration.new(name)

  yield(type) if block_given?

  @state_types[name.to_s] = type

  # MetaStates::State model method generators
  generate_state_type_scope(name)
  generate_status_predicates(type.statuses)

  # Included model method generators
  generate_state_type_queries(name)
  generate_state_type_status_predicates(name, type.statuses)
end