Module: SchoolgirlUniform::Uniformable::ClassMethods

Defined in:
app/forms/uniformable.rb

Instance Method Summary collapse

Instance Method Details

#defined_stepsObject



18
19
20
# File 'app/forms/uniformable.rb', line 18

def defined_steps
  @defined_steps || []
end

#steps(*step_list) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'app/forms/uniformable.rb', line 4

def steps(*step_list)
  @defined_steps = step_list.flatten.map(&:to_s)
  attribute :step, :string, default: -> { @defined_steps.first }

  @defined_steps.each do |step_name|
    helper_method_name = "#{step_name}?"
    unless method_defined?(helper_method_name)
      define_method helper_method_name do
        current_step == step_name
      end
    end
  end
end

#steps_detailsObject



22
23
24
# File 'app/forms/uniformable.rb', line 22

def steps_details
  defined_steps.each_with_object({}) { |step, hash| hash[step] = step }
end