Class: Humdrum::Generators::ResourceGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Rails::Generators::Migration
Defined in:
lib/rails/generators/humdrum/resource/resource_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(path) ⇒ Object



10
11
12
# File 'lib/rails/generators/humdrum/resource/resource_generator.rb', line 10

def self.next_migration_number(path)
  @migration_number = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i.to_s
end

Instance Method Details

#debug_argsObject



30
31
32
# File 'lib/rails/generators/humdrum/resource/resource_generator.rb', line 30

def debug_args
  print_args if options.debug?
end

#frameworkObject



26
27
28
# File 'lib/rails/generators/humdrum/resource/resource_generator.rb', line 26

def framework
  options.framework
end

#generate_controllersObject



34
35
36
# File 'lib/rails/generators/humdrum/resource/resource_generator.rb', line 34

def generate_controllers
  template "controllers/resource_controller.rb", "app/controllers/#{controller_path}_controller.rb"
end

#generate_javascript_validationsObject



63
64
65
# File 'lib/rails/generators/humdrum/resource/resource_generator.rb', line 63

def generate_javascript_validations
  template "javascripts/validations/#{framework}/validator.js", "app/assets/javascripts/validations/#{model_path}.js"
end

#generate_migrationsObject



67
68
69
70
71
72
73
74
75
76
# File 'lib/rails/generators/humdrum/resource/resource_generator.rb', line 67

def generate_migrations
  migration_dir = "db/migrate"
  migration_file_name = "create_#{instances_name}.rb"
  destination = self.class.migration_exists?(migration_dir, migration_file_name)
  if destination
    say_status("skipped", "Migration #{migration_file_name}.rb already exists")
  else
    migration_template "migrations/create_resources.rb", "db/migrate/create_#{instances_name}.rb"
  end
end

#generate_modelsObject



59
60
61
# File 'lib/rails/generators/humdrum/resource/resource_generator.rb', line 59

def generate_models
  template "models/resource.rb", "app/models/#{model_path}.rb"
end

#generate_routesObject



78
79
80
81
82
83
84
# File 'lib/rails/generators/humdrum/resource/resource_generator.rb', line 78

def generate_routes
  words = name_phrases
  resource = words.pop
  route words.reverse.inject("resources :#{resource.pluralize}") { |acc, phrase|
    "namespace(:#{phrase}){ #{acc} }"
  }
end

#generate_viewsObject



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/rails/generators/humdrum/resource/resource_generator.rb', line 38

def generate_views
  template "views/#{framework}/resource/_edit.html.erb", "app/views/#{controller_path}/_edit.html.erb"
  template "views/#{framework}/resource/_filters.html.erb", "app/views/#{controller_path}/_filters.html.erb"
  template "views/#{framework}/resource/_field.html.erb", "app/views/#{controller_path}/_field.html.erb"
  template "views/#{framework}/resource/_form.html.erb", "app/views/#{controller_path}/_form.html.erb"
  template "views/#{framework}/resource/_index.html.erb", "app/views/#{controller_path}/_index.html.erb"
  template "views/#{framework}/resource/_item.html.erb", "app/views/#{controller_path}/_item.html.erb"
  template "views/#{framework}/resource/_nav_filters.html.erb", "app/views/#{controller_path}/_nav_filters.html.erb"
  template "views/#{framework}/resource/_new.html.erb", "app/views/#{controller_path}/_new.html.erb"
  template "views/#{framework}/resource/_show.html.erb", "app/views/#{controller_path}/_show.html.erb"
  template "views/#{framework}/resource/_summary.html.erb", "app/views/#{controller_path}/_summary.html.erb"
  template "views/#{framework}/resource/create.js.erb", "app/views/#{controller_path}/create.js.erb"
  template "views/#{framework}/resource/destroy.js.erb", "app/views/#{controller_path}/destroy.js.erb"
  template "views/#{framework}/resource/edit.js.erb", "app/views/#{controller_path}/edit.js.erb"
  template "views/#{framework}/resource/index.js.erb", "app/views/#{controller_path}/index.js.erb"
  template "views/#{framework}/resource/new.js.erb", "app/views/#{controller_path}/new.js.erb"
  template "views/#{framework}/resource/show.js.erb", "app/views/#{controller_path}/show.js.erb"
  template "views/#{framework}/resource/update.js.erb", "app/views/#{controller_path}/update.js.erb"
  template "views/#{framework}/resource/index.html.erb", "app/views/#{controller_path}/index.html.erb"
end