Class: Develoz::Generators::ConcernsGenerator

Inherits:
Base
  • Object
show all
Defined in:
lib/generators/develoz/concerns/concerns_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#add_gem, #app_class, #app_name, #append_env, #apply_template, #ensure_gitignore, #inject_once, #insert_route, #migration_exists?, next_migration_timestamp

Class Method Details

.source_rootObject



8
9
10
# File 'lib/generators/develoz/concerns/concerns_generator.rb', line 8

def self.source_root
  File.expand_path("templates", __dir__)
end

Instance Method Details

#create_concern_specsObject



31
32
33
34
35
36
37
# File 'lib/generators/develoz/concerns/concerns_generator.rb', line 31

def create_concern_specs
  template "spec/models/concerns/searchable_concern_spec.rb.tt", "spec/models/concerns/searchable_concern_spec.rb"
  template "spec/models/concerns/optimized_finders_spec.rb.tt", "spec/models/concerns/optimized_finders_spec.rb"
  template "spec/models/concerns/transitionable_spec.rb.tt", "spec/models/concerns/transitionable_spec.rb"
  template "spec/models/concerns/configurable_spec.rb.tt", "spec/models/concerns/configurable_spec.rb"
  template "spec/models/configuration_spec.rb.tt", "spec/models/configuration_spec.rb"
end

#create_concernsObject



12
13
14
15
16
17
18
# File 'lib/generators/develoz/concerns/concerns_generator.rb', line 12

def create_concerns
  template "app/models/concerns/searchable_concern.rb.tt", "app/models/concerns/searchable_concern.rb"
  template "app/models/concerns/optimized_finders.rb.tt", "app/models/concerns/optimized_finders.rb"
  template "app/models/concerns/transitionable.rb.tt", "app/models/concerns/transitionable.rb"
  template "app/models/concerns/configurable.rb.tt", "app/models/concerns/configurable.rb"
  template "app/models/configuration.rb.tt", "app/models/configuration.rb"
end

#create_migrationsObject



20
21
22
23
24
25
26
27
28
29
# File 'lib/generators/develoz/concerns/concerns_generator.rb', line 20

def create_migrations
  unless migration_exists?("add_status_transitions")
    template "db/migrate/add_status_transitions.rb.tt",
             "db/migrate/#{next_migration_timestamp}_add_status_transitions.rb"
  end
  return if migration_exists?("create_configurations")

  template "db/migrate/create_configurations.rb.tt",
           "db/migrate/#{next_migration_timestamp}_create_configurations.rb"
end

#inject_into_application_recordObject



39
40
41
42
43
44
45
# File 'lib/generators/develoz/concerns/concerns_generator.rb', line 39

def inject_into_application_record
  inject_once(
    into: "app/models/application_record.rb",
    content: "  extend SearchableConcern\n  include Configurable\n  include OptimizedFinders",
    after: "primary_abstract_class\n"
  )
end