stefanpenner-my_scaffold 0.1.3 → 1.0.0

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 (58) hide show
  1. data/VERSION.yml +3 -3
  2. data/{rails_generators → generators}/my_model/USAGE +0 -0
  3. data/{rails_generators → generators}/my_model/my_model_generator.rb +0 -0
  4. data/{rails_generators → generators}/my_model/templates/factory.rb +0 -0
  5. data/{rails_generators → generators}/my_model/templates/fixtures.yml +0 -0
  6. data/{rails_generators → generators}/my_model/templates/migration.rb +0 -0
  7. data/{rails_generators → generators}/my_model/templates/model.rb +0 -0
  8. data/{rails_generators → generators}/my_model/templates/unit_test.rb +0 -0
  9. data/{rails_generators → generators}/my_scaffold/USAGE +0 -0
  10. data/{rails_generators → generators}/my_scaffold/my_scaffold_generator.rb +0 -0
  11. data/{rails_generators → generators}/my_scaffold/templates/blueprint/ie.css +0 -0
  12. data/{rails_generators → generators}/my_scaffold/templates/blueprint/print.css +0 -0
  13. data/{rails_generators → generators}/my_scaffold/templates/blueprint/screen.css +0 -0
  14. data/{rails_generators → generators}/my_scaffold/templates/controller.rb +0 -0
  15. data/{rails_generators → generators}/my_scaffold/templates/erb/_form.html.erb +0 -0
  16. data/{rails_generators → generators}/my_scaffold/templates/erb/edit.html.erb +0 -0
  17. data/{rails_generators → generators}/my_scaffold/templates/erb/index.html.erb +0 -0
  18. data/{rails_generators → generators}/my_scaffold/templates/erb/layout.html.erb +0 -0
  19. data/{rails_generators → generators}/my_scaffold/templates/erb/new.html.erb +0 -0
  20. data/{rails_generators → generators}/my_scaffold/templates/erb/show.html.erb +0 -0
  21. data/{rails_generators → generators}/my_scaffold/templates/functional_test/basic.rb +0 -0
  22. data/{rails_generators → generators}/my_scaffold/templates/functional_test/should_be_restful.rb +0 -0
  23. data/{rails_generators → generators}/my_scaffold/templates/haml/_form.html.haml +0 -0
  24. data/{rails_generators → generators}/my_scaffold/templates/haml/edit.html.haml +0 -0
  25. data/{rails_generators → generators}/my_scaffold/templates/haml/index.html.haml +0 -0
  26. data/{rails_generators → generators}/my_scaffold/templates/haml/layout.html.haml +0 -0
  27. data/{rails_generators → generators}/my_scaffold/templates/haml/new.html.haml +0 -0
  28. data/{rails_generators → generators}/my_scaffold/templates/haml/show.html.haml +0 -0
  29. data/{rails_generators → generators}/my_scaffold/templates/helper.rb +0 -0
  30. data/{TODO → lib/my_scaffold.rb} +0 -0
  31. data/test/my_scaffold_test.rb +7 -0
  32. data/test/test_helper.rb +4 -35
  33. metadata +47 -99
  34. data/LICENSE +0 -20
  35. data/Manifest +0 -32
  36. data/README.markdown +0 -4
  37. data/Rakefile +0 -26
  38. data/test/fixtures/about_yml_plugins/bad_about_yml/about.yml +0 -1
  39. data/test/fixtures/about_yml_plugins/bad_about_yml/init.rb +0 -1
  40. data/test/fixtures/about_yml_plugins/plugin_without_about_yml/init.rb +0 -1
  41. data/test/fixtures/eager/zoo.rb +0 -3
  42. data/test/fixtures/eager/zoo/reptile_house.rb +0 -2
  43. data/test/fixtures/environment_with_constant.rb +0 -1
  44. data/test/fixtures/lib/generators/missing_class/missing_class_generator.rb +0 -0
  45. data/test/fixtures/lib/generators/working/working_generator.rb +0 -2
  46. data/test/fixtures/plugins/alternate/a/generators/a_generator/a_generator.rb +0 -4
  47. data/test/fixtures/plugins/default/gemlike/init.rb +0 -1
  48. data/test/fixtures/plugins/default/gemlike/lib/gemlike.rb +0 -2
  49. data/test/fixtures/plugins/default/gemlike/rails/init.rb +0 -7
  50. data/test/fixtures/plugins/default/plugin_with_no_lib_dir/init.rb +0 -0
  51. data/test/fixtures/plugins/default/stubby/about.yml +0 -2
  52. data/test/fixtures/plugins/default/stubby/generators/stubby_generator/stubby_generator.rb +0 -4
  53. data/test/fixtures/plugins/default/stubby/init.rb +0 -7
  54. data/test/fixtures/plugins/default/stubby/lib/stubby_mixin.rb +0 -2
  55. data/test/fixtures/tmp/test.log +0 -1
  56. data/test/rails_generators/shoulda_model_generator_test.rb +0 -39
  57. data/test/shoulda_macros/generator_macros.rb +0 -36
  58. data/test/stolen_from_railties.rb +0 -288
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
- patch: 3
3
- major: 0
4
- minor: 1
2
+ :patch: 0
3
+ :major: 1
4
+ :minor: 0
File without changes
File without changes
File without changes
@@ -0,0 +1,7 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+
3
+ class MyScaffoldTest < Test::Unit::TestCase
4
+ should "probably rename this file and start testing for real" do
5
+ flunk "hey buddy, you should probably rename this file and start testing for real"
6
+ end
7
+ end
data/test/test_helper.rb CHANGED
@@ -1,41 +1,10 @@
1
1
  require 'rubygems'
2
- require 'ruby-debug'
3
- require 'active_support'
4
- require 'active_record'
5
- require 'action_controller'
6
- require 'action_view'
7
-
2
+ require 'test/unit'
8
3
  require 'shoulda'
9
-
10
4
  require 'mocha'
11
5
 
12
- require File.join(File.dirname(__FILE__), 'shoulda_macros', 'generator_macros')
13
-
14
-
15
-
16
- require File.join(File.dirname(__FILE__), 'stolen_from_railties')
17
-
18
- unless defined?(RAILS_DEFAULT_LOGGER)
19
- @test_log = File.join(RAILS_ROOT, 'test.log')
20
- RAILS_DEFAULT_LOGGER = Logger.new(@test_log)
21
- end
22
-
23
- Rails::Generator::Base.prepend_sources Rails::Generator::PathSource.new(:shoulda_generator, File.join(File.dirname(__FILE__), "..", "rails_generators"))
6
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
7
+ require 'my_scaffold'
24
8
 
25
- class GeneratorTestCase
26
- # Asserts that the given factory was created.
27
- def assert_generated_factory_for(name)
28
- assert_generated_file "test/factories/#{name.to_s.underscore}_factory.rb"
29
- end
30
-
31
- # Asserts that the given factory was NOT created.
32
- def deny_generated_factory_for(name)
33
- deny_file_exists "test/factories/#{name.to_s.underscore}_factory.rb"
34
- end
35
-
36
- # asserts that the given file DOES NOT exists
37
- def deny_file_exists(path)
38
- assert ! File.exist?("#{RAILS_ROOT}/#{path}"),
39
- "The file '#{RAILS_ROOT}/#{path}' should not exist"
40
- end
9
+ class Test::Unit::TestCase
41
10
  end
metadata CHANGED
@@ -1,20 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stefanpenner-my_scaffold
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
- - Josh Nichols
8
7
  - Stefan Penner
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
11
 
13
- date: 2009-01-07 00:00:00 -08:00
12
+ date: 2009-01-25 00:00:00 -08:00
14
13
  default_executable:
15
14
  dependencies: []
16
15
 
17
- description: Generators which create tests using shoulda
16
+ description: TODO
18
17
  email: stefan.penner@gmail.com
19
18
  executables: []
20
19
 
@@ -23,103 +22,52 @@ extensions: []
23
22
  extra_rdoc_files: []
24
23
 
25
24
  files:
26
- - LICENSE
27
- - Manifest
28
- - Rakefile
29
- - README.markdown
30
- - TODO
31
25
  - VERSION.yml
32
- - test/fixtures
33
- - test/fixtures/about_yml_plugins
34
- - test/fixtures/about_yml_plugins/bad_about_yml
35
- - test/fixtures/about_yml_plugins/bad_about_yml/about.yml
36
- - test/fixtures/about_yml_plugins/bad_about_yml/init.rb
37
- - test/fixtures/about_yml_plugins/plugin_without_about_yml
38
- - test/fixtures/about_yml_plugins/plugin_without_about_yml/init.rb
39
- - test/fixtures/eager
40
- - test/fixtures/eager/zoo
41
- - test/fixtures/eager/zoo/reptile_house.rb
42
- - test/fixtures/eager/zoo.rb
43
- - test/fixtures/environment_with_constant.rb
44
- - test/fixtures/lib
45
- - test/fixtures/lib/generators
46
- - test/fixtures/lib/generators/missing_class
47
- - test/fixtures/lib/generators/missing_class/missing_class_generator.rb
48
- - test/fixtures/lib/generators/missing_class/templates
49
- - test/fixtures/lib/generators/missing_generator
50
- - test/fixtures/lib/generators/missing_generator/templates
51
- - test/fixtures/lib/generators/missing_templates
52
- - test/fixtures/lib/generators/working
53
- - test/fixtures/lib/generators/working/working_generator.rb
54
- - test/fixtures/plugins
55
- - test/fixtures/plugins/alternate
56
- - test/fixtures/plugins/alternate/a
57
- - test/fixtures/plugins/alternate/a/generators
58
- - test/fixtures/plugins/alternate/a/generators/a_generator
59
- - test/fixtures/plugins/alternate/a/generators/a_generator/a_generator.rb
60
- - test/fixtures/plugins/alternate/a/lib
61
- - test/fixtures/plugins/default
62
- - test/fixtures/plugins/default/acts
63
- - test/fixtures/plugins/default/acts/acts_as_chunky_bacon
64
- - test/fixtures/plugins/default/acts/acts_as_chunky_bacon/lib
65
- - test/fixtures/plugins/default/empty
66
- - test/fixtures/plugins/default/gemlike
67
- - test/fixtures/plugins/default/gemlike/init.rb
68
- - test/fixtures/plugins/default/gemlike/lib
69
- - test/fixtures/plugins/default/gemlike/lib/gemlike.rb
70
- - test/fixtures/plugins/default/gemlike/rails
71
- - test/fixtures/plugins/default/gemlike/rails/init.rb
72
- - test/fixtures/plugins/default/plugin_with_no_lib_dir
73
- - test/fixtures/plugins/default/plugin_with_no_lib_dir/init.rb
74
- - test/fixtures/plugins/default/stubby
75
- - test/fixtures/plugins/default/stubby/about.yml
76
- - test/fixtures/plugins/default/stubby/generators
77
- - test/fixtures/plugins/default/stubby/generators/stubby_generator
78
- - test/fixtures/plugins/default/stubby/generators/stubby_generator/stubby_generator.rb
79
- - test/fixtures/plugins/default/stubby/init.rb
80
- - test/fixtures/plugins/default/stubby/lib
81
- - test/fixtures/plugins/default/stubby/lib/stubby_mixin.rb
82
- - test/fixtures/tmp
83
- - test/fixtures/tmp/test.log
84
- - test/rails_generators
85
- - test/rails_generators/shoulda_model_generator_test.rb
86
- - test/shoulda_macros
87
- - test/shoulda_macros/generator_macros.rb
88
- - test/stolen_from_railties.rb
26
+ - generators/my_model
27
+ - generators/my_model/my_model_generator.rb
28
+ - generators/my_model/templates
29
+ - generators/my_model/templates/factory.rb
30
+ - generators/my_model/templates/fixtures.yml
31
+ - generators/my_model/templates/migration.rb
32
+ - generators/my_model/templates/model.rb
33
+ - generators/my_model/templates/unit_test.rb
34
+ - generators/my_model/USAGE
35
+ - generators/my_scaffold
36
+ - generators/my_scaffold/my_scaffold_generator.rb
37
+ - generators/my_scaffold/templates
38
+ - generators/my_scaffold/templates/blueprint
39
+ - generators/my_scaffold/templates/blueprint/ie.css
40
+ - generators/my_scaffold/templates/blueprint/print.css
41
+ - generators/my_scaffold/templates/blueprint/screen.css
42
+ - generators/my_scaffold/templates/controller.rb
43
+ - generators/my_scaffold/templates/erb
44
+ - generators/my_scaffold/templates/erb/_form.html.erb
45
+ - generators/my_scaffold/templates/erb/edit.html.erb
46
+ - generators/my_scaffold/templates/erb/index.html.erb
47
+ - generators/my_scaffold/templates/erb/layout.html.erb
48
+ - generators/my_scaffold/templates/erb/new.html.erb
49
+ - generators/my_scaffold/templates/erb/show.html.erb
50
+ - generators/my_scaffold/templates/functional_test
51
+ - generators/my_scaffold/templates/functional_test/basic.rb
52
+ - generators/my_scaffold/templates/functional_test/should_be_restful.rb
53
+ - generators/my_scaffold/templates/haml
54
+ - generators/my_scaffold/templates/haml/_form.html.haml
55
+ - generators/my_scaffold/templates/haml/edit.html.haml
56
+ - generators/my_scaffold/templates/haml/index.html.haml
57
+ - generators/my_scaffold/templates/haml/layout.html.haml
58
+ - generators/my_scaffold/templates/haml/new.html.haml
59
+ - generators/my_scaffold/templates/haml/show.html.haml
60
+ - generators/my_scaffold/templates/helper.rb
61
+ - generators/my_scaffold/USAGE
62
+ - lib/my_scaffold.rb
63
+ - test/my_scaffold_test.rb
89
64
  - test/test_helper.rb
90
- - rails_generators/my_model/my_model_generator.rb
91
- - rails_generators/my_model/templates/factory.rb
92
- - rails_generators/my_model/templates/fixtures.yml
93
- - rails_generators/my_model/templates/migration.rb
94
- - rails_generators/my_model/templates/model.rb
95
- - rails_generators/my_model/templates/unit_test.rb
96
- - rails_generators/my_model/USAGE
97
- - rails_generators/my_scaffold/my_scaffold_generator.rb
98
- - rails_generators/my_scaffold/templates/blueprint/ie.css
99
- - rails_generators/my_scaffold/templates/blueprint/print.css
100
- - rails_generators/my_scaffold/templates/blueprint/screen.css
101
- - rails_generators/my_scaffold/templates/controller.rb
102
- - rails_generators/my_scaffold/templates/erb/_form.html.erb
103
- - rails_generators/my_scaffold/templates/erb/edit.html.erb
104
- - rails_generators/my_scaffold/templates/erb/index.html.erb
105
- - rails_generators/my_scaffold/templates/erb/layout.html.erb
106
- - rails_generators/my_scaffold/templates/erb/new.html.erb
107
- - rails_generators/my_scaffold/templates/erb/show.html.erb
108
- - rails_generators/my_scaffold/templates/functional_test/basic.rb
109
- - rails_generators/my_scaffold/templates/functional_test/should_be_restful.rb
110
- - rails_generators/my_scaffold/templates/haml/_form.html.haml
111
- - rails_generators/my_scaffold/templates/haml/edit.html.haml
112
- - rails_generators/my_scaffold/templates/haml/index.html.haml
113
- - rails_generators/my_scaffold/templates/haml/layout.html.haml
114
- - rails_generators/my_scaffold/templates/haml/new.html.haml
115
- - rails_generators/my_scaffold/templates/haml/show.html.haml
116
- - rails_generators/my_scaffold/templates/helper.rb
117
- - rails_generators/my_scaffold/USAGE
118
- has_rdoc: false
119
- homepage: http://github.com/stefanpenner/my_generator
65
+ has_rdoc: true
66
+ homepage: http://github.com/stefanpenner/my_scaffold
120
67
  post_install_message:
121
- rdoc_options: []
122
-
68
+ rdoc_options:
69
+ - --inline-source
70
+ - --charset=UTF-8
123
71
  require_paths:
124
72
  - lib
125
73
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -140,6 +88,6 @@ rubyforge_project:
140
88
  rubygems_version: 1.2.0
141
89
  signing_key:
142
90
  specification_version: 2
143
- summary: Generators which create tests using shoulda
91
+ summary: TODO
144
92
  test_files: []
145
93
 
data/LICENSE DELETED
@@ -1,20 +0,0 @@
1
- Copyright (c) 2008 Josh Nichols
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Manifest DELETED
@@ -1,32 +0,0 @@
1
- rails_generators/my_model/shoulda_model_generator.rb
2
- rails_generators/my_model/templates/factory.rb
3
- rails_generators/my_model/templates/fixtures.yml
4
- rails_generators/my_model/templates/migration.rb
5
- rails_generators/my_model/templates/model.rb
6
- rails_generators/my_model/templates/unit_test.rb
7
- rails_generators/my_model/USAGE
8
- rails_generators/my_scaffold/shoulda_scaffold_generator.rb
9
- rails_generators/my_scaffold/templates/blueprint/ie.css
10
- rails_generators/my_scaffold/templates/blueprint/print.css
11
- rails_generators/my_scaffold/templates/blueprint/screen.css
12
- rails_generators/my_scaffold/templates/controller.rb
13
- rails_generators/my_scaffold/templates/erb/_form.html.erb
14
- rails_generators/my_scaffold/templates/erb/edit.html.erb
15
- rails_generators/my_scaffold/templates/erb/index.html.erb
16
- rails_generators/my_scaffold/templates/erb/layout.html.erb
17
- rails_generators/my_scaffold/templates/erb/new.html.erb
18
- rails_generators/my_scaffold/templates/erb/show.html.erb
19
- rails_generators/my_scaffold/templates/functional_test/basic.rb
20
- rails_generators/my_scaffold/templates/functional_test/should_be_restful.rb
21
- rails_generators/my_scaffold/templates/haml/_form.html.haml
22
- rails_generators/my_scaffold/templates/haml/edit.html.haml
23
- rails_generators/my_scaffold/templates/haml/index.html.haml
24
- rails_generators/my_scaffold/templates/haml/layout.html.haml
25
- rails_generators/my_scaffold/templates/haml/new.html.haml
26
- rails_generators/my_scaffold/templates/haml/show.html.haml
27
- rails_generators/my_scaffold/templates/helper.rb
28
- rails_generators/my_scaffold/USAGE
29
- Rakefile
30
- README.markdown
31
- my_generator.gemspec
32
- Manifest
data/README.markdown DELETED
@@ -1,4 +0,0 @@
1
- # Custom rails Scaffold
2
- thx to technicalpickles for the original source
3
-
4
- I decided to seperate our two projects since i wanted a more personal customization
data/Rakefile DELETED
@@ -1,26 +0,0 @@
1
- require 'rake'
2
- require 'rake/testtask'
3
-
4
- begin
5
- require 'jeweler'
6
- Jeweler::Tasks.new do |s|
7
- s.name = "my_generator"
8
- s.summary = "Generators which create tests using shoulda"
9
- s.email = "stefan.penner@gmail.com"
10
- s.homepage = "http://github.com/stefanpenneri/shoulda_generator"
11
- s.description = "Generators which create tests using shoulda"
12
- s.authors = ["Josh Nichols","Stefan Penner"]
13
- s.files = FileList["[A-Z]*", "{generators,lib,test}/**/*"]
14
- end
15
- rescue LoadError
16
- puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
17
- end
18
-
19
- Rake::TestTask.new do |t|
20
- t.libs << 'lib'
21
- t.pattern = 'test/**/*_test.rb'
22
- t.verbose = false
23
- end
24
-
25
- desc 'Test by default'
26
- task :default => :test
@@ -1 +0,0 @@
1
- # an empty YAML file - any content in here seems to get parsed as a string
@@ -1 +0,0 @@
1
- # intentionally empty
@@ -1 +0,0 @@
1
- # intentionally empty
@@ -1,3 +0,0 @@
1
- class Zoo
2
- include ReptileHouse
3
- end
@@ -1,2 +0,0 @@
1
- module Zoo::ReptileHouse
2
- end
@@ -1 +0,0 @@
1
- $initialize_test_set_from_env = 'success'
@@ -1,2 +0,0 @@
1
- class WorkingGenerator < Rails::Generator::NamedBase
2
- end
@@ -1,4 +0,0 @@
1
- class AGenerator < Rails::Generator::Base
2
- def manifest
3
- end
4
- end
@@ -1 +0,0 @@
1
- raise 'This init.rb should not be evaluated because rails/init.rb exists'
@@ -1,2 +0,0 @@
1
- module Gemlike
2
- end
@@ -1,7 +0,0 @@
1
- # I have access to my directory and the Rails config.
2
- raise 'directory expected but undefined in init.rb' unless defined? directory
3
- raise 'config expected but undefined in init.rb' unless defined? config
4
-
5
- # My lib/ dir must be in the load path.
6
- require 'gemlike'
7
- raise 'missing mixin from my lib/ dir' unless defined? Gemlike
@@ -1,2 +0,0 @@
1
- author: Plugin Author
2
- version: 1.0.0
@@ -1,4 +0,0 @@
1
- class StubbyGenerator < Rails::Generator::Base
2
- def manifest
3
- end
4
- end
@@ -1,7 +0,0 @@
1
- # I have access to my directory and the Rails config.
2
- raise 'directory expected but undefined in init.rb' unless defined? directory
3
- raise 'config expected but undefined in init.rb' unless defined? config
4
-
5
- # My lib/ dir must be in the load path.
6
- require 'stubby_mixin'
7
- raise 'missing mixin from my lib/ dir' unless defined? StubbyMixin
@@ -1,2 +0,0 @@
1
- module StubbyMixin
2
- end
@@ -1 +0,0 @@
1
- # Logfile created on Tue Jan 06 15:03:00 -0600 2009 by /
@@ -1,39 +0,0 @@
1
- require File.join(File.dirname(__FILE__), '..', 'test_helper')
2
-
3
-
4
- class ShouldaModelGeneratorTest < GeneratorTestCase
5
- context "running the default generator" do
6
- setup do
7
- run_generator('shoulda_model', %w(Product name:string supplier_id:integer created_at:timestamp))
8
- end
9
-
10
- should_generate_model :product
11
- should_generate_factory :product
12
- should_generate_unit_test :product
13
- should_generate_migration :create_products
14
-
15
- should "generate migration" do
16
- assert_generated_migration :create_products do |t|
17
- assert_generated_column t, :name, :string
18
- assert_generated_column t, :supplier_id, :integer
19
- assert_generated_column t, :created_at, :timestamp
20
- end
21
- end
22
- end
23
-
24
- context "running the generator, when skipping factory and migration" do
25
- setup do
26
- run_generator('shoulda_model', %w(Product name:string supplier_id:integer created_at:timestamp --skip-factory))
27
- end
28
-
29
- should_generate_model :product
30
- should_not_generate_factory :product
31
- should_generate_unit_test :product
32
- should_generate_migration :create_products
33
-
34
- should "not generate migration" do
35
- assert_skipped_migration :create_products
36
- end
37
- end
38
-
39
- end
@@ -1,36 +0,0 @@
1
- class Test::Unit::TestCase
2
- class << self
3
- def should_generate_model(model)
4
- should "generate #{model} model" do
5
- assert_generated_model_for(model) do |body|
6
- yield body if block_given?
7
- end
8
- end
9
- end
10
-
11
- def should_generate_factory(model)
12
- should "generate #{model} factory" do
13
- assert_generated_factory_for(model)
14
- end
15
- end
16
-
17
- def should_generate_unit_test(model)
18
- should "generate #{model} unit test" do
19
- assert_generated_unit_test_for(model)
20
- end
21
- end
22
-
23
- def should_generate_migration(migration)
24
- should "generate a #{migration} migration" do
25
- assert_generated_migration migration
26
- end
27
- end
28
-
29
- def should_not_generate_factory(model)
30
- should "not generate #{model} factory" do
31
- deny_generated_factory_for(:product)
32
- end
33
- end
34
-
35
- end
36
- end
@@ -1,288 +0,0 @@
1
- require 'test/unit'
2
- require 'fileutils'
3
-
4
- # Mock out what we need from AR::Base
5
- module ActiveRecord
6
- class Base
7
- class << self
8
- attr_accessor :pluralize_table_names, :timestamped_migrations
9
- end
10
- self.pluralize_table_names = true
11
- self.timestamped_migrations = true
12
- end
13
-
14
- module ConnectionAdapters
15
- class Column
16
- attr_reader :name, :default, :type, :limit, :null, :sql_type, :precision, :scale
17
-
18
- def initialize(name, default, sql_type = nil)
19
- @name = name
20
- @default = default
21
- @type = @sql_type = sql_type
22
- end
23
-
24
- def human_name
25
- @name.humanize
26
- end
27
- end
28
- end
29
- end
30
-
31
- # Mock up necessities from ActionView
32
- module ActionView
33
- module Helpers
34
- module ActionRecordHelper; end
35
- class InstanceTag; end
36
- end
37
- end
38
-
39
- # Set RAILS_ROOT appropriately fixture generation
40
- tmp_dir = "#{File.dirname(__FILE__)}/fixtures/tmp"
41
-
42
- if defined? RAILS_ROOT
43
- RAILS_ROOT.replace tmp_dir
44
- else
45
- RAILS_ROOT = tmp_dir
46
- end
47
- FileUtils.mkdir_p RAILS_ROOT
48
-
49
- # $LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../../lib"
50
- require 'initializer'
51
-
52
- # Mocks out the configuration
53
- module Rails
54
- def self.configuration
55
- Rails::Configuration.new
56
- end
57
- end
58
-
59
- require 'rails_generator'
60
-
61
- class GeneratorTestCase < Test::Unit::TestCase
62
- include FileUtils
63
-
64
- def setup
65
- ActiveRecord::Base.pluralize_table_names = true
66
-
67
- mkdir_p "#{RAILS_ROOT}/app/views/layouts"
68
- mkdir_p "#{RAILS_ROOT}/config"
69
- mkdir_p "#{RAILS_ROOT}/db"
70
- mkdir_p "#{RAILS_ROOT}/test/fixtures"
71
- mkdir_p "#{RAILS_ROOT}/public/stylesheets"
72
-
73
- File.open("#{RAILS_ROOT}/config/routes.rb", 'w') do |f|
74
- f << "ActionController::Routing::Routes.draw do |map|\n\nend"
75
- end
76
- end
77
-
78
- def teardown
79
- rm_rf "#{RAILS_ROOT}/app"
80
- rm_rf "#{RAILS_ROOT}/test"
81
- rm_rf "#{RAILS_ROOT}/config"
82
- rm_rf "#{RAILS_ROOT}/db"
83
- rm_rf "#{RAILS_ROOT}/public"
84
- end
85
-
86
- def test_truth
87
- # don't complain, test/unit
88
- end
89
-
90
- # Instantiates the Generator.
91
- def build_generator(name, params)
92
- Rails::Generator::Base.instance(name, params)
93
- end
94
-
95
- # Runs the +create+ command (like the command line does).
96
- def run_generator(name, params)
97
- silence_generator do
98
- build_generator(name, params).command(:create).invoke!
99
- end
100
- end
101
-
102
- # Silences the logger temporarily and returns the output as a String.
103
- def silence_generator
104
- logger_original = Rails::Generator::Base.logger
105
- myout = StringIO.new
106
- Rails::Generator::Base.logger = Rails::Generator::SimpleLogger.new(myout)
107
- yield if block_given?
108
- Rails::Generator::Base.logger = logger_original
109
- myout.string
110
- end
111
-
112
- # Asserts that the given controller was generated.
113
- # It takes a name or symbol without the <tt>_controller</tt> part and an optional super class.
114
- # The contents of the class source file is passed to a block.
115
- def assert_generated_controller_for(name, parent = "ApplicationController")
116
- assert_generated_class "app/controllers/#{name.to_s.underscore}_controller", parent do |body|
117
- yield body if block_given?
118
- end
119
- end
120
-
121
- # Asserts that the given model was generated.
122
- # It takes a name or symbol and an optional super class.
123
- # The contents of the class source file is passed to a block.
124
- def assert_generated_model_for(name, parent = "ActiveRecord::Base")
125
- assert_generated_class "app/models/#{name.to_s.underscore}", parent do |body|
126
- yield body if block_given?
127
- end
128
- end
129
-
130
- # Asserts that the given helper was generated.
131
- # It takes a name or symbol without the <tt>_helper</tt> part.
132
- # The contents of the module source file is passed to a block.
133
- def assert_generated_helper_for(name)
134
- assert_generated_module "app/helpers/#{name.to_s.underscore}_helper" do |body|
135
- yield body if block_given?
136
- end
137
- end
138
-
139
- # Asserts that the given functional test was generated.
140
- # It takes a name or symbol without the <tt>_controller_test</tt> part and an optional super class.
141
- # The contents of the class source file is passed to a block.
142
- def assert_generated_functional_test_for(name, parent = "ActionController::TestCase")
143
- assert_generated_class "test/functional/#{name.to_s.underscore}_controller_test",parent do |body|
144
- yield body if block_given?
145
- end
146
- end
147
-
148
- # Asserts that the given unit test was generated.
149
- # It takes a name or symbol without the <tt>_test</tt> part and an optional super class.
150
- # The contents of the class source file is passed to a block.
151
- def assert_generated_unit_test_for(name, parent = "ActiveSupport::TestCase")
152
- assert_generated_class "test/unit/#{name.to_s.underscore}_test", parent do |body|
153
- yield body if block_given?
154
- end
155
- end
156
-
157
- # Asserts that the given file was generated.
158
- # The contents of the file is passed to a block.
159
- def assert_generated_file(path)
160
- assert_file_exists(path)
161
- File.open("#{RAILS_ROOT}/#{path}") do |f|
162
- yield f.read if block_given?
163
- end
164
- end
165
-
166
- # asserts that the given file exists
167
- def assert_file_exists(path)
168
- assert File.exist?("#{RAILS_ROOT}/#{path}"),
169
- "The file '#{RAILS_ROOT}/#{path}' should exist"
170
- end
171
-
172
- # Asserts that the given class source file was generated.
173
- # It takes a path without the <tt>.rb</tt> part and an optional super class.
174
- # The contents of the class source file is passed to a block.
175
- def assert_generated_class(path, parent = nil)
176
- # FIXME: Sucky way to detect namespaced classes
177
- if path.split('/').size > 3
178
- path =~ /\/?(\d+_)?(\w+)\/(\w+)$/
179
- class_name = "#{$2.camelize}::#{$3.camelize}"
180
- else
181
- path =~ /\/?(\d+_)?(\w+)$/
182
- class_name = $2.camelize
183
- end
184
-
185
- assert_generated_file("#{path}.rb") do |body|
186
- assert_match /class #{class_name}#{parent.nil? ? '':" < #{parent}"}/, body, "the file '#{path}.rb' should be a class"
187
- yield body if block_given?
188
- end
189
- end
190
-
191
- # Asserts that the given module source file was generated.
192
- # It takes a path without the <tt>.rb</tt> part.
193
- # The contents of the class source file is passed to a block.
194
- def assert_generated_module(path)
195
- # FIXME: Sucky way to detect namespaced modules
196
- if path.split('/').size > 3
197
- path =~ /\/?(\w+)\/(\w+)$/
198
- module_name = "#{$1.camelize}::#{$2.camelize}"
199
- else
200
- path =~ /\/?(\w+)$/
201
- module_name = $1.camelize
202
- end
203
-
204
- assert_generated_file("#{path}.rb") do |body|
205
- assert_match /module #{module_name}/, body, "the file '#{path}.rb' should be a module"
206
- yield body if block_given?
207
- end
208
- end
209
-
210
- # Asserts that the given CSS stylesheet file was generated.
211
- # It takes a path without the <tt>.css</tt> part.
212
- # The contents of the stylesheet source file is passed to a block.
213
- def assert_generated_stylesheet(path)
214
- assert_generated_file("public/stylesheets/#{path}.css") do |body|
215
- yield body if block_given?
216
- end
217
- end
218
-
219
- # Asserts that the given YAML file was generated.
220
- # It takes a path without the <tt>.yml</tt> part.
221
- # The parsed YAML tree is passed to a block.
222
- def assert_generated_yaml(path)
223
- assert_generated_file("#{path}.yml") do |body|
224
- yaml = YAML.load(body)
225
- assert yaml, 'YAML data missing'
226
- yield yaml if block_given?
227
- end
228
- end
229
-
230
- # Asserts that the given fixtures YAML file was generated.
231
- # It takes a fixture name without the <tt>.yml</tt> part.
232
- # The parsed YAML tree is passed to a block.
233
- def assert_generated_fixtures_for(name)
234
- assert_generated_yaml "test/fixtures/#{name.to_s.underscore}" do |yaml|
235
- yield yaml if block_given?
236
- end
237
- end
238
-
239
- # Asserts that the given views were generated.
240
- # It takes a controller name and a list of views (including extensions).
241
- # The body of each view is passed to a block.
242
- def assert_generated_views_for(name, *actions)
243
- actions.each do |action|
244
- assert_generated_file("app/views/#{name.to_s.underscore}/#{action}") do |body|
245
- yield body if block_given?
246
- end
247
- end
248
- end
249
-
250
- def assert_generated_migration(name, parent = "ActiveRecord::Migration")
251
- file = Dir.glob("#{RAILS_ROOT}/db/migrate/*_#{name.to_s.underscore}.rb").first
252
- file = file.match(/db\/migrate\/[0-9]+_\w+/).to_s
253
- assert_generated_class file, parent do |body|
254
- assert_match /timestamps/, body, "should have timestamps defined"
255
- yield body if block_given?
256
- end
257
- end
258
-
259
- # Asserts that the given migration file was not generated.
260
- # It takes the name of the migration as a parameter.
261
- def assert_skipped_migration(name)
262
- migration_file = "#{RAILS_ROOT}/db/migrate/001_#{name.to_s.underscore}.rb"
263
- assert !File.exist?(migration_file), "should not create migration #{migration_file}"
264
- end
265
-
266
- # Asserts that the given resource was added to the routes.
267
- def assert_added_route_for(name)
268
- assert_generated_file("config/routes.rb") do |body|
269
- assert_match /map.resources :#{name.to_s.underscore}/, body,
270
- "should add route for :#{name.to_s.underscore}"
271
- end
272
- end
273
-
274
- # Asserts that the given methods are defined in the body.
275
- # This does assume standard rails code conventions with regards to the source code.
276
- # The body of each individual method is passed to a block.
277
- def assert_has_method(body, *methods)
278
- methods.each do |name|
279
- assert body =~ /^ def #{name}(\(.+\))?\n((\n| .*\n)*) end/, "should have method #{name}"
280
- yield(name, $2) if block_given?
281
- end
282
- end
283
-
284
- # Asserts that the given column is defined in the migration.
285
- def assert_generated_column(body, name, type)
286
- assert_match /t\.#{type.to_s} :#{name.to_s}/, body, "should have column #{name.to_s} defined"
287
- end
288
- end