class Mongoid::Orderable::Generators::Movable

Public Instance Methods

generate(field_name) click to toggle source
# File lib/mongoid/orderable/generators/movable.rb, line 7
def generate(field_name)
  generate_move_to_helpers(field_name)
  generate_insert_at_helpers(field_name)
  generate_shorthand_helpers(field_name)
end

Protected Instance Methods

generate_insert_at_helpers(field_name) click to toggle source
# File lib/mongoid/orderable/generators/movable.rb, line 30
def generate_insert_at_helpers(field_name)
  klass.class_eval do
    alias_method "insert_#{field_name}_at!", "move_#{field_name}_to!"
    alias_method "insert_#{field_name}_at",  "move_#{field_name}_to"
    alias_method "insert_#{field_name}_at=", "move_#{field_name}_to="
  end
end
generate_move_to_helpers(field_name) click to toggle source
# File lib/mongoid/orderable/generators/movable.rb, line 15
def generate_move_to_helpers(field_name)
  generate_method("move_#{field_name}_to") do |target_position|
    move_field_to target_position, field: field_name
  end

  generate_method("move_#{field_name}_to!") do |target_position|
    move_field_to target_position, field: field_name
    save
  end

  generate_method("move_#{field_name}_to=") do |target_position|
    move_field_to target_position, field: field_name
  end
end
generate_shorthand_helpers(field_name) click to toggle source
# File lib/mongoid/orderable/generators/movable.rb, line 38
def generate_shorthand_helpers(field_name)
  %i[top bottom].each do |symbol|
    generate_method "move_#{field_name}_to_#{symbol}" do
      move_to symbol, field: field_name
    end

    generate_method "move_#{field_name}_to_#{symbol}!" do
      move_to! symbol, field: field_name
    end
  end

  %i[higher lower].each do |symbol|
    generate_method "move_#{field_name}_#{symbol}" do
      move_to symbol, field: field_name
    end

    generate_method "move_#{field_name}_#{symbol}!" do
      move_to! symbol, field: field_name
    end
  end
end