michel-dry_scaffold 0.3.5

Sign up to get free protection for your applications and to get access to all the features.
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
+