dry_scaffold 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. data/CHANGELOG.textile +55 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.textile +473 -0
  4. data/Rakefile +54 -0
  5. data/TODO.textile +36 -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 +33 -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 +410 -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 +26 -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 +20 -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/tasks/dry_scaffold.rake +95 -0
  73. metadata +140 -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
@@ -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,140 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dry_scaffold
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.6
5
+ platform: ruby
6
+ authors:
7
+ - Jonas Grimfelt
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-12-31 00:00:00 +01:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: haml
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
25
+ description: A DRYer scaffold generator for Rails. Generates dry semantic and standards compliant views, and dry RESTful controllers.
26
+ email: grimen@gmail.com
27
+ executables:
28
+ - dscaffold
29
+ - dry_scaffold
30
+ - dmodel
31
+ - dry_model
32
+ extensions: []
33
+
34
+ extra_rdoc_files:
35
+ - CHANGELOG.textile
36
+ - README.textile
37
+ - TODO.textile
38
+ files:
39
+ - CHANGELOG.textile
40
+ - MIT-LICENSE
41
+ - README.textile
42
+ - Rakefile
43
+ - TODO.textile
44
+ - bin/dmodel
45
+ - bin/dry_model
46
+ - bin/dry_scaffold
47
+ - bin/dscaffold
48
+ - config/scaffold.yml
49
+ - generators/dmodel/dmodel_generator.rb
50
+ - generators/dry_model/USAGE
51
+ - generators/dry_model/dry_model_generator.rb
52
+ - generators/dry_model/prototypes/active_record_migration.rb
53
+ - generators/dry_model/prototypes/active_record_model.rb
54
+ - generators/dry_model/prototypes/fixture_data/active_record_fixtures.yml
55
+ - generators/dry_model/prototypes/fixture_data/factory_girl_factories.rb
56
+ - generators/dry_model/prototypes/fixture_data/machinist_blueprints.rb
57
+ - generators/dry_model/prototypes/tests/rspec/unit_test.rb
58
+ - generators/dry_model/prototypes/tests/shoulda/unit_test.rb
59
+ - generators/dry_model/prototypes/tests/test_unit/unit_test.rb
60
+ - generators/dry_model/templates/models/active_record_migration.rb
61
+ - generators/dry_model/templates/models/active_record_model.rb
62
+ - generators/dry_model/templates/models/fixture_data/active_record_fixtures.yml
63
+ - generators/dry_model/templates/models/fixture_data/factory_girl_factories.rb
64
+ - generators/dry_model/templates/models/fixture_data/machinist_blueprints.rb
65
+ - generators/dry_model/templates/models/tests/rspec/unit_test.rb
66
+ - generators/dry_model/templates/models/tests/shoulda/unit_test.rb
67
+ - generators/dry_model/templates/models/tests/test_unit/unit_test.rb
68
+ - generators/dry_scaffold/USAGE
69
+ - generators/dry_scaffold/dry_scaffold_generator.rb
70
+ - generators/dry_scaffold/prototypes/controllers/action_controller.rb
71
+ - generators/dry_scaffold/prototypes/controllers/inherited_resources_controller.rb
72
+ - generators/dry_scaffold/prototypes/controllers/tests/rspec/functional_test.rb
73
+ - generators/dry_scaffold/prototypes/controllers/tests/shoulda/functional_test.rb
74
+ - generators/dry_scaffold/prototypes/controllers/tests/test_unit/functional_test.rb
75
+ - generators/dry_scaffold/prototypes/helpers/helper.rb
76
+ - generators/dry_scaffold/prototypes/helpers/tests/rspec/unit_test.rb
77
+ - generators/dry_scaffold/prototypes/helpers/tests/shoulda/unit_test.rb
78
+ - generators/dry_scaffold/prototypes/helpers/tests/test_unit/unit_test.rb
79
+ - generators/dry_scaffold/prototypes/views/builder/index.atom.builder
80
+ - generators/dry_scaffold/prototypes/views/builder/index.rss.builder
81
+ - generators/dry_scaffold/prototypes/views/haml/_form.html.haml
82
+ - generators/dry_scaffold/prototypes/views/haml/_item.html.haml
83
+ - generators/dry_scaffold/prototypes/views/haml/edit.html.haml
84
+ - generators/dry_scaffold/prototypes/views/haml/index.html.haml
85
+ - generators/dry_scaffold/prototypes/views/haml/layout.html.haml
86
+ - generators/dry_scaffold/prototypes/views/haml/new.html.haml
87
+ - generators/dry_scaffold/prototypes/views/haml/show.html.haml
88
+ - generators/dry_scaffold/templates/controllers/action_controller.rb
89
+ - generators/dry_scaffold/templates/controllers/inherited_resources_controller.rb
90
+ - generators/dry_scaffold/templates/controllers/tests/rspec/functional_test.rb
91
+ - generators/dry_scaffold/templates/controllers/tests/shoulda/functional_test.rb
92
+ - generators/dry_scaffold/templates/controllers/tests/test_unit/functional_test.rb
93
+ - generators/dry_scaffold/templates/helpers/helper.rb
94
+ - generators/dry_scaffold/templates/helpers/tests/rspec/unit_test.rb
95
+ - generators/dry_scaffold/templates/helpers/tests/shoulda/unit_test.rb
96
+ - generators/dry_scaffold/templates/helpers/tests/test_unit/unit_test.rb
97
+ - generators/dry_scaffold/templates/views/builder/index.atom.builder
98
+ - generators/dry_scaffold/templates/views/builder/index.rss.builder
99
+ - generators/dry_scaffold/templates/views/haml/_form.html.haml
100
+ - generators/dry_scaffold/templates/views/haml/_item.html.haml
101
+ - generators/dry_scaffold/templates/views/haml/edit.html.haml
102
+ - generators/dry_scaffold/templates/views/haml/index.html.haml
103
+ - generators/dry_scaffold/templates/views/haml/layout.html.haml
104
+ - generators/dry_scaffold/templates/views/haml/new.html.haml
105
+ - generators/dry_scaffold/templates/views/haml/show.html.haml
106
+ - generators/dscaffold/dscaffold_generator.rb
107
+ - lib/dry_generator.rb
108
+ - lib/dry_scaffold/tasks.rb
109
+ - lib/setup_helper.rb
110
+ - tasks/dry_scaffold.rake
111
+ has_rdoc: true
112
+ homepage: http://github.com/grimen/dry_scaffold
113
+ licenses: []
114
+
115
+ post_install_message:
116
+ rdoc_options:
117
+ - --charset=UTF-8
118
+ require_paths:
119
+ - lib
120
+ required_ruby_version: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: "0"
125
+ version:
126
+ required_rubygems_version: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: "0"
131
+ version:
132
+ requirements: []
133
+
134
+ rubyforge_project:
135
+ rubygems_version: 1.3.5
136
+ signing_key:
137
+ specification_version: 3
138
+ summary: A DRYer scaffold generator for Rails. Generates dry semantic and standards compliant views, and dry RESTful controllers.
139
+ test_files: []
140
+