Class: Humdrum::Generators::Api::SessionGenerator

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(path) ⇒ Object



11
12
13
# File 'lib/rails/generators/humdrum/api/api_generator.rb', line 11

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



27
28
29
# File 'lib/rails/generators/humdrum/api/api_generator.rb', line 27

def debug_args
  print_args if options.debug?
end

#generate_controllersObject



31
32
33
# File 'lib/rails/generators/humdrum/api/api_generator.rb', line 31

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

#generate_javascript_validationsObject



60
61
62
# File 'lib/rails/generators/humdrum/api/api_generator.rb', line 60

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

#generate_migrationsObject



64
65
66
67
68
69
70
71
72
73
# File 'lib/rails/generators/humdrum/api/api_generator.rb', line 64

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



56
57
58
# File 'lib/rails/generators/humdrum/api/api_generator.rb', line 56

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

#generate_routesObject



75
76
77
78
79
80
81
# File 'lib/rails/generators/humdrum/api/api_generator.rb', line 75

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

#generate_viewsObject



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/rails/generators/humdrum/api/api_generator.rb', line 35

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