Module: Kadim

Defined in:
lib/kadim.rb,
lib/kadim/engine.rb,
lib/kadim/version.rb,
app/jobs/kadim/application_job.rb,
lib/kadim/template/memory_resolver.rb,
app/helpers/kadim/application_helper.rb,
app/mailers/kadim/application_mailer.rb,
lib/generators/kadim/host/host_generator.rb,
app/controllers/kadim/application_controller.rb,
lib/generators/kadim/host/scaffold_controller/scaffold_controller_generator.rb

Defined Under Namespace

Modules: ApplicationHelper, Host Classes: ApplicationController, ApplicationJob, ApplicationMailer, Engine, HostGenerator, MemoryResolver

Constant Summary collapse

VERSION =
"0.2.2"

Class Method Summary collapse

Class Method Details

.app_model_pathsObject



7
8
9
10
11
12
13
# File 'lib/kadim.rb', line 7

def self.app_model_paths
  Dir[Rails.root.join("app", "models", "**", "*.rb")]
    .reject { |model_path| model_path.include?("/concerns/") || model_path.include?("application_record") }
    .map    { |model_path| model_path.remove(%r{.*/app/models/}, ".rb") }
    .select { |model_path| model_path.camelize.constantize.try(:table_exists?) }
    .sort
end

.bootstrap_controllersObject



15
16
17
18
19
# File 'lib/kadim.rb', line 15

def self.bootstrap_controllers
  cleanup
  load_app_kadim_consts
  scaffold_controllers
end

.scaffold_attributes(model_klass) ⇒ Object



21
22
23
24
25
26
27
28
# File 'lib/kadim.rb', line 21

def self.scaffold_attributes(model_klass)
  model_klass.columns
             .reject { |column| %w[id created_at updated_at].include?(column.name) }
             .sort_by(&:name)
             .map { |column| [column.name, column.type] }
             .to_h
             .map { |k, v| "#{k}:#{v}" }
end