michel-dry_scaffold 0.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. data/CHANGELOG.textile +51 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.textile +461 -0
  4. data/Rakefile +48 -0
  5. data/TODO.textile +40 -0
  6. data/bin/dmodel +3 -0
  7. data/bin/dry_model +3 -0
  8. data/bin/dry_scaffold +3 -0
  9. data/bin/dscaffold +3 -0
  10. data/config/scaffold.yml +34 -0
  11. data/generators/dmodel/dmodel_generator.rb +15 -0
  12. data/generators/dry_model/USAGE +9 -0
  13. data/generators/dry_model/dry_model_generator.rb +134 -0
  14. data/generators/dry_model/prototypes/active_record_migration.rb +17 -0
  15. data/generators/dry_model/prototypes/active_record_model.rb +9 -0
  16. data/generators/dry_model/prototypes/fixture_data/active_record_fixtures.yml +3 -0
  17. data/generators/dry_model/prototypes/fixture_data/factory_girl_factories.rb +4 -0
  18. data/generators/dry_model/prototypes/fixture_data/machinist_blueprints.rb +8 -0
  19. data/generators/dry_model/prototypes/tests/rspec/unit_test.rb +9 -0
  20. data/generators/dry_model/prototypes/tests/shoulda/unit_test.rb +20 -0
  21. data/generators/dry_model/prototypes/tests/test_unit/unit_test.rb +15 -0
  22. data/generators/dry_model/templates/models/active_record_migration.rb +23 -0
  23. data/generators/dry_model/templates/models/active_record_model.rb +15 -0
  24. data/generators/dry_model/templates/models/fixture_data/active_record_fixtures.yml +6 -0
  25. data/generators/dry_model/templates/models/fixture_data/factory_girl_factories.rb +5 -0
  26. data/generators/dry_model/templates/models/fixture_data/machinist_blueprints.rb +9 -0
  27. data/generators/dry_model/templates/models/tests/rspec/unit_test.rb +11 -0
  28. data/generators/dry_model/templates/models/tests/shoulda/unit_test.rb +23 -0
  29. data/generators/dry_model/templates/models/tests/test_unit/unit_test.rb +17 -0
  30. data/generators/dry_scaffold/USAGE +11 -0
  31. data/generators/dry_scaffold/dry_scaffold_generator.rb +415 -0
  32. data/generators/dry_scaffold/prototypes/controllers/action_controller.rb +135 -0
  33. data/generators/dry_scaffold/prototypes/controllers/inherited_resources_controller.rb +25 -0
  34. data/generators/dry_scaffold/prototypes/controllers/tests/rspec/functional_test.rb +57 -0
  35. data/generators/dry_scaffold/prototypes/controllers/tests/shoulda/functional_test.rb +99 -0
  36. data/generators/dry_scaffold/prototypes/controllers/tests/test_unit/functional_test.rb +70 -0
  37. data/generators/dry_scaffold/prototypes/helpers/helper.rb +3 -0
  38. data/generators/dry_scaffold/prototypes/helpers/tests/rspec/unit_test.rb +9 -0
  39. data/generators/dry_scaffold/prototypes/helpers/tests/shoulda/unit_test.rb +9 -0
  40. data/generators/dry_scaffold/prototypes/helpers/tests/test_unit/unit_test.rb +9 -0
  41. data/generators/dry_scaffold/prototypes/views/builder/index.atom.builder +20 -0
  42. data/generators/dry_scaffold/prototypes/views/builder/index.rss.builder +21 -0
  43. data/generators/dry_scaffold/prototypes/views/haml/_form.html.haml +3 -0
  44. data/generators/dry_scaffold/prototypes/views/haml/_item.html.haml +9 -0
  45. data/generators/dry_scaffold/prototypes/views/haml/edit.html.haml +10 -0
  46. data/generators/dry_scaffold/prototypes/views/haml/index.html.haml +17 -0
  47. data/generators/dry_scaffold/prototypes/views/haml/layout.html.haml +18 -0
  48. data/generators/dry_scaffold/prototypes/views/haml/new.html.haml +10 -0
  49. data/generators/dry_scaffold/prototypes/views/haml/show.html.haml +13 -0
  50. data/generators/dry_scaffold/templates/controllers/action_controller.rb +250 -0
  51. data/generators/dry_scaffold/templates/controllers/inherited_resources_controller.rb +36 -0
  52. data/generators/dry_scaffold/templates/controllers/tests/rspec/functional_test.rb +85 -0
  53. data/generators/dry_scaffold/templates/controllers/tests/shoulda/functional_test.rb +90 -0
  54. data/generators/dry_scaffold/templates/controllers/tests/test_unit/functional_test.rb +87 -0
  55. data/generators/dry_scaffold/templates/helpers/helper.rb +3 -0
  56. data/generators/dry_scaffold/templates/helpers/tests/rspec/unit_test.rb +9 -0
  57. data/generators/dry_scaffold/templates/helpers/tests/shoulda/unit_test.rb +9 -0
  58. data/generators/dry_scaffold/templates/helpers/tests/test_unit/unit_test.rb +9 -0
  59. data/generators/dry_scaffold/templates/views/builder/index.atom.builder +20 -0
  60. data/generators/dry_scaffold/templates/views/builder/index.rss.builder +21 -0
  61. data/generators/dry_scaffold/templates/views/haml/_form.html.haml +13 -0
  62. data/generators/dry_scaffold/templates/views/haml/_item.html.haml +10 -0
  63. data/generators/dry_scaffold/templates/views/haml/edit.html.haml +18 -0
  64. data/generators/dry_scaffold/templates/views/haml/index.html.haml +38 -0
  65. data/generators/dry_scaffold/templates/views/haml/layout.html.haml +19 -0
  66. data/generators/dry_scaffold/templates/views/haml/new.html.haml +18 -0
  67. data/generators/dry_scaffold/templates/views/haml/show.html.haml +13 -0
  68. data/generators/dscaffold/dscaffold_generator.rb +15 -0
  69. data/lib/dry_generator.rb +197 -0
  70. data/lib/dry_scaffold/tasks.rb +5 -0
  71. data/lib/setup_helper.rb +36 -0
  72. data/rails/init.rb +3 -0
  73. data/tasks/dry_scaffold.rake +95 -0
  74. metadata +132 -0
@@ -0,0 +1,5 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+
4
+ # Make tasks visible for Rails also when used as gem.
5
+ load File.expand_path(File.join(File.dirname(__FILE__), *%w(.. .. tasks dry_scaffold.rake)))
@@ -0,0 +1,36 @@
1
+ module SetupHelper
2
+
3
+ # Add gem configuration to a specified Rails environment file
4
+ def config_gems(config_file, gems)
5
+ sentinel = 'Rails::Initializer.run do |config|'
6
+ config_line = ''
7
+
8
+ gems.each do |gem|
9
+ gem_info = gem.to_s.split('-')
10
+ if gem_info.size > 1
11
+ gem_owner = gem_info[0]
12
+ gem_lib = gem_info[1]
13
+ config_line = "config.gem '#{gem_owner}-#{gem_lib}', :lib => '#{gem_lib}'"
14
+ else
15
+ gem_lib = gem_info[0]
16
+ config_line = "config.gem '#{gem_lib}'"
17
+ end
18
+
19
+ gsub_file_if_missing config_file, /(#{Regexp.escape(sentinel)})/mi, config_line do |match|
20
+ "#{match}\n #{config_line}"
21
+ end
22
+ end
23
+ end
24
+
25
+ # Add info to specified file and beneath specified regex if the expression don't exist in the file.
26
+ def gsub_file_if_missing(path, regexp, new_exp, *args, &block)
27
+ existing_content = File.read(path)
28
+ unless existing_content =~ /(#{new_exp.strip}|#{new_exp.strip.tr('\'', '\"')})/
29
+ content = File.read(path).gsub(regexp, *args, &block)
30
+ else
31
+ content = existing_content
32
+ end
33
+ File.open(path, 'wb') { |file| file.write(content) }
34
+ end
35
+
36
+ end
data/rails/init.rb ADDED
@@ -0,0 +1,3 @@
1
+ Dir[File.expand_path(File.join(File.dirname(__FILE__), 'lib', '**', '*.rb'))].uniq.each do |file|
2
+ require file
3
+ end
@@ -0,0 +1,95 @@
1
+ namespace :dry_scaffold do
2
+
3
+ GEM_ROOT = File.join(File.dirname(__FILE__), '..').freeze
4
+
5
+ desc "Setup for this plugin/gem."
6
+ task :setup => :environment do
7
+ Rake::Task['dry_scaffold:dependencies:install'].invoke
8
+ Rake::Task['dry_scaffold:config:generate'].invoke
9
+ end
10
+
11
+ namespace :config do
12
+
13
+ desc "Generate a dry_scaffold config file as 'RAILS_ROOT/config/scaffold.yml'"
14
+ task :generate do
15
+ template = File.join(GEM_ROOT, 'config', 'scaffold.yml')
16
+ to_file = File.join(Rails.root, 'config', 'scaffold.yml')
17
+
18
+ `cp #{template} #{to_file}`
19
+
20
+ if File.exists?(to_file)
21
+ puts "Generated config file: '#{to_file}'"
22
+ else
23
+ puts "Could not create the config file. Hint: Try with sudo."
24
+ end
25
+ end
26
+
27
+ end
28
+
29
+ namespace :dependencies do
30
+
31
+ require File.join(GEM_ROOT, 'lib', 'setup_helper')
32
+ include SetupHelper
33
+
34
+ GEMS = [:haml,
35
+ :'mislav-will_paginate',
36
+ :'josevalim-inherited_resources',
37
+ :'justinfrench-formtastic',
38
+ :'thoughtbot-shoulda'].freeze
39
+ PLUGINS = [].freeze
40
+
41
+ desc "Install dependencies for fully advantage of this generator."
42
+ task :install => :environment do
43
+
44
+ puts "---------------------------------------"
45
+ puts " Dependencies"
46
+ puts "---------------------------------------"
47
+ puts "Installing gems..."
48
+
49
+ # Install gems
50
+ unless GEMS.empty?
51
+ puts "GEMS: #{GEMS.to_sentence}"
52
+ GEMS.each do |gem|
53
+ puts `sudo gem install #{gem} --no-ri`
54
+ end
55
+ end
56
+
57
+ # Install plugins
58
+ unless PLUGINS.empty?
59
+ puts "PLUGINS: #{PLUGINS.to_sentence}"
60
+ puts "Installing plugins..."
61
+ PLUGINS.each do |plugin|
62
+ puts `./script/plugin install #{plugin}`
63
+ end
64
+ end
65
+
66
+ # Setup HAML - if missing
67
+ unless File.directory?(File.join(Rails.root, 'vendor', 'plugins', 'haml'))
68
+ puts "Initializing HAML for this project..."
69
+ puts `haml --rails #{Rails.root}`
70
+ end
71
+
72
+ # Add gems to Rails environment with gems - if missing
73
+ config_gems File.join(Rails.root, 'config', 'environment.rb'), GEMS
74
+
75
+ puts "---------------------------------------"
76
+ puts " Configuration"
77
+ puts "---------------------------------------"
78
+ puts "Adding configuration..."
79
+ puts "File 'config/environments/development.rb' now contains (added automatically):"
80
+ GEMS.each do |gem|
81
+ gem_info = gem.to_s.split('-')
82
+ if gem_info.size > 1
83
+ gem_owner = gem_info[0]
84
+ gem_lib = gem_info[1]
85
+ puts " config.gem '#{gem_owner}-#{gem_lib}', :lib => '#{gem_lib}'"
86
+ else
87
+ gem_lib = gem_info[0]
88
+ puts " config.gem '#{gem_lib}'"
89
+ end
90
+ end
91
+ puts "---------------------------------------"
92
+ end
93
+
94
+ end
95
+ end
metadata ADDED
@@ -0,0 +1,132 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: michel-dry_scaffold
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.5
5
+ platform: ruby
6
+ authors:
7
+ - Jonas Grimfelt,Michel de Graaf
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-10-24 00:00:00 +02:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: A DRYer scaffold generator for Rails. Generates dry semantic and standards compliant views, and dry RESTful controllers.
17
+ email: grimen@gmail.com, michel@re-invention.nl
18
+ executables:
19
+ - dscaffold
20
+ - dry_scaffold
21
+ - dmodel
22
+ - dry_model
23
+ extensions: []
24
+
25
+ extra_rdoc_files:
26
+ - CHANGELOG.textile
27
+ - README.textile
28
+ - TODO.textile
29
+ files:
30
+ - CHANGELOG.textile
31
+ - MIT-LICENSE
32
+ - README.textile
33
+ - Rakefile
34
+ - TODO.textile
35
+ - bin/dmodel
36
+ - bin/dry_model
37
+ - bin/dry_scaffold
38
+ - bin/dscaffold
39
+ - config/scaffold.yml
40
+ - generators/dmodel/dmodel_generator.rb
41
+ - generators/dry_model/USAGE
42
+ - generators/dry_model/dry_model_generator.rb
43
+ - generators/dry_model/prototypes/active_record_migration.rb
44
+ - generators/dry_model/prototypes/active_record_model.rb
45
+ - generators/dry_model/prototypes/fixture_data/active_record_fixtures.yml
46
+ - generators/dry_model/prototypes/fixture_data/factory_girl_factories.rb
47
+ - generators/dry_model/prototypes/fixture_data/machinist_blueprints.rb
48
+ - generators/dry_model/prototypes/tests/rspec/unit_test.rb
49
+ - generators/dry_model/prototypes/tests/shoulda/unit_test.rb
50
+ - generators/dry_model/prototypes/tests/test_unit/unit_test.rb
51
+ - generators/dry_model/templates/models/active_record_migration.rb
52
+ - generators/dry_model/templates/models/active_record_model.rb
53
+ - generators/dry_model/templates/models/fixture_data/active_record_fixtures.yml
54
+ - generators/dry_model/templates/models/fixture_data/factory_girl_factories.rb
55
+ - generators/dry_model/templates/models/fixture_data/machinist_blueprints.rb
56
+ - generators/dry_model/templates/models/tests/rspec/unit_test.rb
57
+ - generators/dry_model/templates/models/tests/shoulda/unit_test.rb
58
+ - generators/dry_model/templates/models/tests/test_unit/unit_test.rb
59
+ - generators/dry_scaffold/USAGE
60
+ - generators/dry_scaffold/dry_scaffold_generator.rb
61
+ - generators/dry_scaffold/prototypes/controllers/action_controller.rb
62
+ - generators/dry_scaffold/prototypes/controllers/inherited_resources_controller.rb
63
+ - generators/dry_scaffold/prototypes/controllers/tests/rspec/functional_test.rb
64
+ - generators/dry_scaffold/prototypes/controllers/tests/shoulda/functional_test.rb
65
+ - generators/dry_scaffold/prototypes/controllers/tests/test_unit/functional_test.rb
66
+ - generators/dry_scaffold/prototypes/helpers/helper.rb
67
+ - generators/dry_scaffold/prototypes/helpers/tests/rspec/unit_test.rb
68
+ - generators/dry_scaffold/prototypes/helpers/tests/shoulda/unit_test.rb
69
+ - generators/dry_scaffold/prototypes/helpers/tests/test_unit/unit_test.rb
70
+ - generators/dry_scaffold/prototypes/views/builder/index.atom.builder
71
+ - generators/dry_scaffold/prototypes/views/builder/index.rss.builder
72
+ - generators/dry_scaffold/prototypes/views/haml/_form.html.haml
73
+ - generators/dry_scaffold/prototypes/views/haml/_item.html.haml
74
+ - generators/dry_scaffold/prototypes/views/haml/edit.html.haml
75
+ - generators/dry_scaffold/prototypes/views/haml/index.html.haml
76
+ - generators/dry_scaffold/prototypes/views/haml/layout.html.haml
77
+ - generators/dry_scaffold/prototypes/views/haml/new.html.haml
78
+ - generators/dry_scaffold/prototypes/views/haml/show.html.haml
79
+ - generators/dry_scaffold/templates/controllers/action_controller.rb
80
+ - generators/dry_scaffold/templates/controllers/inherited_resources_controller.rb
81
+ - generators/dry_scaffold/templates/controllers/tests/rspec/functional_test.rb
82
+ - generators/dry_scaffold/templates/controllers/tests/shoulda/functional_test.rb
83
+ - generators/dry_scaffold/templates/controllers/tests/test_unit/functional_test.rb
84
+ - generators/dry_scaffold/templates/helpers/helper.rb
85
+ - generators/dry_scaffold/templates/helpers/tests/rspec/unit_test.rb
86
+ - generators/dry_scaffold/templates/helpers/tests/shoulda/unit_test.rb
87
+ - generators/dry_scaffold/templates/helpers/tests/test_unit/unit_test.rb
88
+ - generators/dry_scaffold/templates/views/builder/index.atom.builder
89
+ - generators/dry_scaffold/templates/views/builder/index.rss.builder
90
+ - generators/dry_scaffold/templates/views/haml/_form.html.haml
91
+ - generators/dry_scaffold/templates/views/haml/_item.html.haml
92
+ - generators/dry_scaffold/templates/views/haml/edit.html.haml
93
+ - generators/dry_scaffold/templates/views/haml/index.html.haml
94
+ - generators/dry_scaffold/templates/views/haml/layout.html.haml
95
+ - generators/dry_scaffold/templates/views/haml/new.html.haml
96
+ - generators/dry_scaffold/templates/views/haml/show.html.haml
97
+ - generators/dscaffold/dscaffold_generator.rb
98
+ - lib/dry_generator.rb
99
+ - lib/dry_scaffold/tasks.rb
100
+ - lib/setup_helper.rb
101
+ - rails/init.rb
102
+ - tasks/dry_scaffold.rake
103
+ has_rdoc: true
104
+ homepage: http://github.com/grimen/michel-dry_scaffold/tree/master
105
+ licenses: []
106
+
107
+ post_install_message:
108
+ rdoc_options:
109
+ - --charset=UTF-8
110
+ require_paths:
111
+ - lib
112
+ required_ruby_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: "0"
117
+ version:
118
+ required_rubygems_version: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: "0"
123
+ version:
124
+ requirements: []
125
+
126
+ rubyforge_project:
127
+ rubygems_version: 1.3.5
128
+ signing_key:
129
+ specification_version: 3
130
+ summary: A DRYer scaffold generator for Rails. Generates dry semantic and standards compliant views, and dry RESTful controllers.
131
+ test_files: []
132
+