class RailsRbs::Generators::RailsRbsGenerator

Public Instance Methods

add_rbs_routes() click to toggle source
# File lib/generators/rails_rbs/rails_rbs_generator.rb, line 51
def add_rbs_routes
  return if options.skip_routes
  %i[equality date_time location].each do |rule_name|
    new_route = "resources :#{rule_name}_rules, controller: 'rails_rbs/rules', only: [:create, :update, :show, :destroy]"
    new_route = new_route + ' skip: :all' if options.skip_defaults
    route new_route
  end
  route 'resources :rules, controller: "rails_rbs/rules", only: [:index, :create, :update, :show, :destroy]'
  route 'resources :rule_sets, controller: "rails_rbs/rule_sets", only: [:index, :create, :update, :show, :destroy]'
  route "# RBS Generated routes"
end
copy_migrations() click to toggle source
# File lib/generators/rails_rbs/rails_rbs_generator.rb, line 23
def copy_migrations
  return if rule_migrations_exist?
  migration_template 'rule_migration.rb', "#{migration_path}/add_rules.rb"
  migration_template 'rule_set_migration.rb', "#{migration_path}/add_rule_sets.rb"
  migration_template 'rule_action_migration.rb', "#{migration_path}/add_rule_actions.rb"
end
generate_default_rule_models() click to toggle source
# File lib/generators/rails_rbs/rails_rbs_generator.rb, line 45
def generate_default_rule_models
  generate 'rails_rbs:rule equality' unless model_exists?(name: 'equality_rule')
  generate 'rails_rbs:rule date_range' unless model_exists?(name: 'date_range_rule')
  generate 'rails_rbs:rule location' unless model_exists?(name: 'location_rule')
end
generate_initializer() click to toggle source
# File lib/generators/rails_rbs/rails_rbs_generator.rb, line 63
def generate_initializer
  template "initializer.rb", "config/initializers/rails_rbs.rb"
end
generate_models() click to toggle source
# File lib/generators/rails_rbs/rails_rbs_generator.rb, line 30
def generate_models
  generate "active_record:model rule --no-migration" unless model_exists?(name: 'rule')
  generate "active_record:model rule_set --no-migration" unless model_exists?(name: 'rule_set')
  generate "active_record:model rule_action --no-migration" unless model_exists?(name: 'rule_action')
end
inject_model_content() click to toggle source
# File lib/generators/rails_rbs/rails_rbs_generator.rb, line 36
def inject_model_content
  inject_into_class(model_path(name: 'rule'), 'Rule', rule_model_content)
  inject_into_class(model_path(name: 'rule_set'), 'RuleSet', rule_set_model_content)
  inject_into_class(model_path(name: 'rule_action'), 'RuleAction', rule_action_model_content)
  if options.owned_by && model_exists?(name: options.owned_by)
    inject_into_class(model_path(name: options.owned_by), options.owned_by.to_s.camelcase, owner_model_content)
  end
end

Private Instance Methods

owner_model_content() click to toggle source
# File lib/generators/rails_rbs/rails_rbs_generator.rb, line 80
      def owner_model_content
        <<-CONTENT
  # RailsRbs rule associations
  has_many :rules, dependent: :destroy
  has_many :rule_sets, dependent: :destroy
        CONTENT
      end
rule_action_model_content() click to toggle source
# File lib/generators/rails_rbs/rails_rbs_generator.rb, line 88
      def rule_action_model_content
        <<-CONTENT
  include RailsRbs::RunsAction
        CONTENT
      end
rule_model_content() click to toggle source
# File lib/generators/rails_rbs/rails_rbs_generator.rb, line 68
      def rule_model_content
        <<-CONTENT
  include RailsRbs::FollowsRule
        CONTENT
      end
rule_set_model_content() click to toggle source
# File lib/generators/rails_rbs/rails_rbs_generator.rb, line 74
      def rule_set_model_content
        <<-CONTENT
  include RailsRbs::FollowsRuleSet
        CONTENT
      end