generator-spec 0.4.5 → 0.4.7

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 (64) hide show
  1. data/README.markdown +58 -46
  2. data/VERSION +1 -1
  3. data/generator-spec.gemspec +83 -14
  4. data/lib/generator_spec/helpers/migration_helper.rb +2 -2
  5. data/lib/generator_spec/main.rb +5 -0
  6. data/lib/generator_spec/matchers/content/content_matcher.rb +84 -4
  7. data/lib/generator_spec/matchers/content/have_block.rb +24 -22
  8. data/lib/generator_spec/matchers/content/have_call.rb +21 -13
  9. data/lib/generator_spec/matchers/content/have_calls.rb +32 -26
  10. data/lib/generator_spec/matchers/content/have_class_self.rb +40 -0
  11. data/lib/generator_spec/matchers/content/have_method.rb +31 -24
  12. data/lib/generator_spec/matchers/content/have_module.rb +49 -19
  13. data/lib/generator_spec/matchers/content/have_region.rb +9 -10
  14. data/lib/generator_spec/matchers/content/have_subclass.rb +9 -15
  15. data/lib/generator_spec/matchers/content/include_module.rb +9 -10
  16. data/lib/generator_spec/matchers/content/inherit_from.rb +10 -10
  17. data/lib/generator_spec/matchers/file/generate_file.rb +4 -11
  18. data/lib/generator_spec/matchers/file/generate_migration.rb +1 -5
  19. data/lib/generator_spec/matchers/file/have_file.rb +115 -0
  20. data/lib/generator_spec/rails_helpers/rails_controller.rb +30 -32
  21. data/lib/generator_spec/rails_helpers/rails_model.rb +2 -1
  22. data/lib/generator_spec/rails_helpers/rails_view.rb +19 -3
  23. data/spec/generator_spec/{controller_generator_spec.rb → generators/controller_generator_spec.rb} +0 -0
  24. data/spec/generator_spec/{helper_generator_spec.rb → generators/helper_generator_spec.rb} +0 -0
  25. data/spec/generator_spec/{migration_generator_spec.rb → generators/migration_generator_spec.rb} +0 -0
  26. data/spec/generator_spec/{model_generator_spec.rb → generators/model_generator_spec.rb} +0 -0
  27. data/spec/generator_spec/{observer_generator_spec.rb → generators/observer_generator_spec.rb} +0 -0
  28. data/spec/generator_spec/{view_generator_spec.rb → generators/view_generator_spec.rb} +0 -0
  29. data/spec/generator_spec/matchers/content/class_self_spec.rb +32 -0
  30. data/spec/generator_spec/matchers/content/have_block_spec.rb +57 -0
  31. data/spec/generator_spec/matchers/content/have_call_spec.rb +39 -0
  32. data/spec/generator_spec/matchers/content/have_calls_spec.rb +50 -0
  33. data/spec/generator_spec/matchers/content/have_class_spec.rb +34 -0
  34. data/spec/generator_spec/matchers/content/have_method_spec.rb +52 -0
  35. data/spec/generator_spec/matchers/content/have_module_spec.rb +34 -0
  36. data/spec/generator_spec/matchers/content/have_region_spec.rb +56 -0
  37. data/spec/generator_spec/matchers/content/have_subclass_spec.rb +34 -0
  38. data/spec/generator_spec/matchers/content/include_module_spec.rb +36 -0
  39. data/spec/generator_spec/matchers/content/inherit_from_spec.rb +34 -0
  40. data/spec/generator_spec/matchers/file/directory_spec.rb +0 -0
  41. data/spec/generator_spec/matchers/file/file_spec.rb +0 -0
  42. data/spec/generator_spec/matchers/file/migration_spec.rb +0 -0
  43. data/spec/generator_spec/matchers/migration/have_column_spec.rb +0 -0
  44. data/spec/generator_spec/matchers/migration/have_index_spec.rb +0 -0
  45. data/spec/generator_spec/matchers/migration/have_table_spec.rb +0 -0
  46. data/spec/generator_spec/matchers/migration/have_tbl_column_spec.rb +0 -0
  47. data/spec/generator_spec/matchers/migration/have_up_down_spec.rb +0 -0
  48. data/spec/generator_spec/matchers/rails/controller_matcher_spec.rb +26 -0
  49. data/spec/generator_spec/matchers/rails/helper_matcher_spec.rb +26 -0
  50. data/spec/generator_spec/matchers/rails/mailer_matcher_spec.rb +24 -0
  51. data/spec/generator_spec/matchers/rails/model_matcher_spec.rb +31 -0
  52. data/spec/generator_spec/matchers/rails/observer_matcher_spec.rb +19 -0
  53. data/spec/generator_spec/matchers/rails/view_matcher_spec.rb +23 -0
  54. data/spec/generator_spec/rails_helpers/rails_app_spec.rb +0 -0
  55. data/spec/generator_spec/rails_helpers/rails_controller_spec.rb +0 -0
  56. data/spec/generator_spec/rails_helpers/rails_helper_spec.rb +0 -0
  57. data/spec/generator_spec/rails_helpers/rails_mailer_spec.rb +0 -0
  58. data/spec/generator_spec/rails_helpers/rails_migration_spec.rb +0 -0
  59. data/spec/generator_spec/rails_helpers/rails_model_spec.rb +0 -0
  60. data/spec/generator_spec/rails_helpers/rails_observer_spec.rb +0 -0
  61. data/spec/generator_spec/rails_helpers/rails_orm_spec.rb +0 -0
  62. data/spec/generator_spec/rails_helpers/rails_view_spec.rb +0 -0
  63. metadata +84 -15
  64. data/lib/generator_spec/matchers/content/have_class.rb +0 -53
@@ -7,53 +7,60 @@
7
7
  #
8
8
  module RSpec::RubyContentMatchers
9
9
  class HaveMethod < RSpec::RubyContentMatcher
10
- attr_reader :method, :type
10
+ attr_reader :method, :type, :args
11
11
 
12
- def initialize(method, type=nil)
12
+ def initialize(method, type=nil, options = {})
13
13
  @method = method.to_s
14
+ super method
14
15
  @type = type
16
+ @args = options[:args]
15
17
  end
16
18
 
17
- def matches?(content)
18
- super
19
- match_res = case type
20
- when :class
21
- content =~ /def\s+self.#{method}#{args_expr}(.*?)#{end_expr}/m
22
- else
23
- content =~ /def\s+#{method}#{args_expr}(.*?)#{end_expr}/m
24
- end
25
- if block_given? && $2
26
- ruby_content = $2.strip.extend(RSpec::RubyContent::Helpers)
27
- ruby_content << "\nend" if !(ruby_content =~ /\nend$/)
28
- yield ruby_content
29
- end
30
- match_res
19
+ def index
20
+ 1
31
21
  end
32
22
 
33
23
  def failure_message
34
24
  super
35
- return "Expected there to be the class method #{method}, but there wasn't" if type == :class
36
- "Expected there to be the method #{method}, but there wasn't"
25
+ "Expected there to be the #{class_msg} method #{method}, but there wasn't"
37
26
  end
38
27
 
39
28
  def negative_failure_message
40
29
  super
41
- return "Did not expect there to be the class method #{method}, but there was" if type == :class
42
- "Did not expect there to be the method #{method}, but there was"
30
+ "Did not expect there to be the #{class_msg} method #{method}, but there was"
43
31
  end
44
32
 
45
33
  protected
46
34
 
35
+ def class_msg
36
+ (type == :class) ? 'class' : ''
37
+ end
38
+
39
+ def main_expr
40
+ 'def' + SPACES + "#{self_expr}#{method}#{args_expr}" + ANY_GROUP
41
+ end
42
+
47
43
  def args_expr
48
- '\s*(\(.+\))?'
44
+ return super if args
45
+ any_args_expr
49
46
  end
50
-
51
- def end_expr
52
- "(def|end|# #{method})"
47
+
48
+ def self_expr
49
+ type == :class ? 'self.' : ''
53
50
  end
51
+
52
+ def alt_end
53
+ 'def'
54
+ end
55
+
54
56
  end
55
57
 
56
58
  def have_method(method, type = nil)
57
59
  HaveMethod.new(method, type)
58
60
  end
61
+
62
+ def have_args_method(method, options = {})
63
+ HaveMethod.new(method, options[:type], options)
64
+ end
65
+
59
66
  end
@@ -1,36 +1,66 @@
1
1
  module RSpec::RubyContentMatchers
2
2
  class HaveModule < RSpec::RubyContentMatcher
3
- attr_reader :module_name
3
+ attr_reader :name, :type, :postfix
4
4
 
5
- def initialize(module_name)
6
- @module_name = module_name.to_s.camelize
5
+ def initialize(name, postfix=nil)
6
+ @name = name.to_s.camelize
7
+ super @name
8
+ @postfix = postfix.to_s.camelize if postfix
9
+ @type = :module
7
10
  end
8
-
9
- def matches?(content)
10
- super
11
- match_res =~ /module\s+#{module_name}\s+(.*)end/m
12
- if block_given? && match_res
13
- ruby_content = $2.strip.extend(RSpec::RubyContent::Helpers)
14
- yield ruby_content
15
- else
16
- match_res
17
- end
18
- end
19
11
 
20
12
  def failure_message
21
13
  super
22
- "Expected there to be the module #{module_name}"
14
+ "Expected there to be the #{type} #{name}"
23
15
  end
24
16
 
25
17
  def negative_failure_message
26
18
  super
27
- "Did no expected there to be the module #{module_name}"
19
+ "Did not expected there to be the #{type} #{name}"
20
+ end
21
+
22
+ protected
23
+
24
+ def main_expr
25
+ "#{type}" + SPACES + "#{name}#{postfix}" + SPACES + ANY_GROUP
28
26
  end
29
-
27
+
28
+ def alt_end
29
+ type
30
+ end
31
+ end
32
+
33
+ class HaveClass < HaveModule
34
+
35
+ def initialize(name, postfix)
36
+ super name, postfix
37
+ @type = :class
38
+ end
30
39
  end
31
40
 
32
- def have_module(module_name)
33
- HaveModule.new(module_name)
41
+ def have_module(module_name, postfix=nil)
42
+ HaveModule.new(module_name, postfix)
34
43
  end
35
44
  alias_method :be_module, :have_module
45
+
46
+ def have_class(module_name)
47
+ HaveModule.new(module_name, :class)
48
+ end
49
+
50
+ def have_class(klass, postfix = nil)
51
+ HaveClass.new(klass, postfix)
52
+ end
53
+ alias_method :be_class, :have_class
54
+
55
+ def have_helper_class(klass)
56
+ HaveClass.new(klass, :helper)
57
+ end
58
+ alias_method :be_helper_class, :have_helper_class
59
+
60
+
61
+ def have_controller_class(klass)
62
+ HaveClass.new(klass, :controller)
63
+ end
64
+ alias_method :be_controller_class, :have_controller_class
65
+
36
66
  end
@@ -4,17 +4,8 @@ module RSpec::RubyContentMatchers
4
4
 
5
5
  def initialize(region)
6
6
  @region = region.to_s
7
+ super @region
7
8
  end
8
-
9
- def matches?(content)
10
- super
11
- match_res = (content =~ /#{region}(.*)#{end_epxr}/m)
12
- if block_given? && $1
13
- ruby_content = $1.strip.extend(RSpec::RubyContent::Helpers)
14
- yield ruby_content
15
- end
16
- match_res
17
- end
18
9
 
19
10
  def failure_message
20
11
  super
@@ -27,11 +18,19 @@ module RSpec::RubyContentMatchers
27
18
  end
28
19
 
29
20
  protected
21
+
22
+ def main_expr
23
+ "#{region}" + ANY_GROUP
24
+ end
30
25
 
31
26
  def end_expr
32
27
  '(private|protected|public|$)'
33
28
  end
34
29
  end
30
+
31
+ def have_region name
32
+ HaveRegion.new name
33
+ end
35
34
 
36
35
  def have_public
37
36
  HaveRegion.new :public
@@ -3,22 +3,12 @@ module RSpec::RubyContentMatchers
3
3
  attr_reader :klass, :superclass, :type
4
4
 
5
5
  def initialize(klass, superclass, type=nil)
6
- @klass = klass.to_s.camelize
6
+ @klass = klass.to_s.camelize
7
+ super @klass
7
8
  @superclass = superclass.to_s.camelize
8
9
  @type = type.to_s.camelize if type
9
10
  end
10
11
 
11
- def matches?(content)
12
- super
13
- match_res = (content =~ /class\s+#{klass}#{type}\s+<\s+#{superclass}(.*)#{end_expr}/m)
14
- if block_given? && $1
15
- ruby_content = $1.strip.extend(RSpec::RubyContent::Helpers)
16
- yield ruby_content
17
- else
18
- match_res
19
- end
20
- end
21
-
22
12
  def failure_message
23
13
  super
24
14
  "Expected there to be the subclass #{klass} of #{superclass}"
@@ -29,10 +19,14 @@ module RSpec::RubyContentMatchers
29
19
  "Did no expected there to be the subclass #{klass} of #{superclass}"
30
20
  end
31
21
 
32
- protected
22
+ protected
23
+
24
+ def main_expr
25
+ 'class' + SPACES + "#{klass}#{type}" + OPT_SPACES + '<' + OPT_SPACES + "#{superclass}" + ANY_GROUP
26
+ end
33
27
 
34
- def end_expr
35
- "(end$|# #{klass})"
28
+ def alt_end
29
+ 'class'
36
30
  end
37
31
 
38
32
  end
@@ -1,20 +1,15 @@
1
1
  module RSpec::RubyContentMatchers
2
2
  class IncludeModule < RSpec::RubyContentMatcher
3
- attr_reader :module_name
3
+ attr_reader :module_name, :type
4
4
 
5
- def initialize module_name
5
+ def initialize module_name, type=nil
6
6
  @module_name = module_name.to_s.camelize
7
+ @type = type || :include
7
8
  end
8
9
 
9
10
  def matches?(content)
10
- super
11
- match_res = (content =~ /include\s+#{module_name}/)
12
- if block_given? && match_res
13
- ruby_content = content.extend(RSpec::RubyContent::Helpers)
14
- yield ruby_content
15
- else
16
- match_res
17
- end
11
+ @content = content
12
+ (content =~ /#{type}\s+#{module_name}/)
18
13
  end
19
14
 
20
15
  def failure_message
@@ -33,6 +28,10 @@ module RSpec::RubyContentMatchers
33
28
  IncludeModule.new(module_name)
34
29
  end
35
30
 
31
+ def extend_module(module_name)
32
+ IncludeModule.new(module_name, :extend)
33
+ end
34
+
36
35
  def be_dm_resource
37
36
  IncludeModule.new 'DataMapper::Resource'
38
37
  end
@@ -4,18 +4,12 @@ module RSpec::RubyContentMatchers
4
4
 
5
5
  def initialize klass
6
6
  @klass = klass.to_s.camelize
7
+ super @klass
7
8
  end
8
9
 
9
- def matches?(content)
10
- super
11
- match_res =~ /class\s+(.*?)<\s+#{klass}(.*)end/
12
- if block_given? && match_res
13
- ruby_content = $2.strip.extend(RSpec::RubyContent::Helpers)
14
- yield ruby_content
15
- else
16
- match_res
17
- end
18
- end
10
+ def index
11
+ 1
12
+ end
19
13
 
20
14
  def failure_message
21
15
  super
@@ -26,6 +20,12 @@ module RSpec::RubyContentMatchers
26
20
  super
27
21
  "Did not expect the class to inherit from #{klass}"
28
22
  end
23
+
24
+ protected
25
+
26
+ def main_expr
27
+ 'class' + SPACES + Q_ANY_GROUP + '<' + OPT_SPACES + "#{klass}" + ANY_GROUP
28
+ end
29
29
  end
30
30
 
31
31
  def inherit_from(klass)
@@ -5,15 +5,15 @@
5
5
  #
6
6
 
7
7
  module RSpec::FileMatchers
8
- class GenerateFile
9
-
8
+ class GenerateFile
10
9
  attr_accessor :relative_path
11
10
 
12
11
  def initialize(relative_path, type = nil)
13
12
  @relative_path = relative_rails_file(relative_path, type)
14
13
  end
15
14
 
16
- def matches?(generator, &block)
15
+ def matches?(generator, &block)
16
+ puts "relative_path"
17
17
  file = File.expand_path(relative_path, generator.class.destination_root)
18
18
  file_exists = File.exists?(file)
19
19
  if block && file_exists
@@ -80,32 +80,25 @@ module RSpec::FileMatchers
80
80
  def generate_file(relative, type = nil)
81
81
  GenerateFile.new(relative, type)
82
82
  end
83
- alias_method :have_file, :generate_file
84
83
 
85
84
  def generate_model(relative)
86
85
  GenerateFile.new(relative, :model)
87
86
  end
88
- alias_method :have_model, :generate_model
89
87
 
90
88
  def generate_controller(relative)
91
- puts "Generate controller: #{relative}"
92
89
  GenerateFile.new(relative, :controller)
93
90
  end
94
- alias_method :have_controller, :generate_controller
95
91
 
96
92
  def generate_helper(relative)
97
93
  GenerateFile.new(relative, :helper)
98
94
  end
99
- alias_method :have_helper, :generate_helper
100
95
 
101
96
  def generate_view(relative, action, ext)
102
97
  GenerateFile.new("#{relative}/#{action}.#{ext}", :view)
103
98
  end
104
- alias_method :have_view, :generate_view
105
99
 
106
100
  def generate_observer(relative)
107
101
  GenerateFile.new(relative, :observer)
108
- end
109
- alias_method :have_observer, :generate_observer
102
+ end
110
103
  end
111
104
 
@@ -41,11 +41,7 @@ module RSpec
41
41
  dirname = migration_dir
42
42
  file_name = relative.sub(/\.rb$/, '')
43
43
  migrations = Dir.glob("#{dirname}/[0-9]*_*.rb")
44
- if !migrations.empty?
45
- migrations.grep(/\d+_#{file_name}\.rb$/).first
46
- else
47
- false
48
- end
44
+ !migrations.empty? ? migrations.grep(/\d+_#{file_name}\.rb$/).first : false
49
45
  end
50
46
 
51
47
  end
@@ -0,0 +1,115 @@
1
+ # Asserts a given file exists. You need to supply an absolute path or a path relative
2
+ # to the configured destination:
3
+ #
4
+ # generator.should have_generated_file "app/controller/products_controller.rb"
5
+ #
6
+
7
+ module RSpec::FileMatchers
8
+ class HaveFile
9
+ attr_accessor :relative_path
10
+
11
+ def initialize(relative_path, type = nil)
12
+ @relative_path = relative_rails_file(relative_path, type)
13
+ end
14
+
15
+ def matches?(generator, &block)
16
+ file = File.expand_path(relative_path, Rails.root)
17
+ file_exists = File.exists?(file)
18
+ if block && file_exists
19
+ read = File.read(file)
20
+ ruby_content = read.extend(RSpec::RubyContent::Helpers)
21
+ yield ruby_content
22
+ else
23
+ file_exists
24
+ end
25
+ end
26
+
27
+ def failure_message
28
+ "Expected file #{relative_path} to have been generated, but it was not"
29
+ end
30
+
31
+ def negative_failure_message
32
+ "Did not expected file #{relative_path} to have been generated, but it was"
33
+ end
34
+
35
+ protected
36
+
37
+ def relative_rails_file path, type = nil
38
+ path = path.to_s
39
+ f_name = file_name(path, type)
40
+ return File.join(::Rails.root, base_dir(type), folder(type), f_name) if type
41
+ File.join(::Rails.root, path)
42
+ end
43
+
44
+ def file_name path, type
45
+ return "#{path}#{postfix(type)}.rb" if !path.include? '.'
46
+ path
47
+ end
48
+
49
+
50
+ def postfix type
51
+ "_#{type}" if [:helper, :controller, :observer].include?(type)
52
+ end
53
+
54
+ def folder type
55
+ case type
56
+ when :observer
57
+ 'models'
58
+ else
59
+ type.to_s.pluralize
60
+ end
61
+ end
62
+
63
+ def base_dir type
64
+ case type
65
+ when :model, :controller, :view, :helper, :observer, :mailer
66
+ 'app'
67
+ when :migration
68
+ 'db'
69
+ when :javascript, :stylesheet
70
+ 'public'
71
+ when :initializer, :locale
72
+ 'config'
73
+ else
74
+ ''
75
+ end
76
+ end
77
+ end
78
+
79
+ def have_file(relative, type = nil)
80
+ HaveFile.new(relative, type)
81
+ end
82
+ alias_method :contain_file, :have_file
83
+
84
+ def have_model(relative)
85
+ HaveFile.new(relative, :model)
86
+ end
87
+ alias_method :contain_model, :have_model
88
+
89
+ def have_controller(relative)
90
+ HaveFile.new(relative, :controller)
91
+ end
92
+ alias_method :contain_controller, :have_controller
93
+
94
+ def have_helper(relative)
95
+ HaveFile.new(relative, :helper)
96
+ end
97
+ alias_method :contain_helper, :have_helper
98
+
99
+ def have_view(relative, action, ext='html.erb')
100
+ HaveFile.new("#{relative}/#{action}.#{ext}", :view)
101
+ end
102
+ alias_method :contain_view, :have_view
103
+
104
+ def have_observer(relative)
105
+ HaveFile.new(relative, :observer)
106
+ end
107
+ alias_method :contain_observer, :have_observer
108
+
109
+ def have_mailer(relative)
110
+ HaveFile.new(relative, :mailer)
111
+ end
112
+ alias_method :contain_mailer, :have_mailer
113
+
114
+ end
115
+
@@ -1,38 +1,36 @@
1
- module RSpec
2
- module Rails
3
- module Controller
4
- include RSpec::Rails::App
5
-
6
- def create_controller name, content=nil
7
- file = controller_file_name(name)
8
- unless File.exist?(file)
9
- FileUtils.mkdir_p File.dirname(file)
10
- content ||= yield if block_given?
11
- File.open(file, 'w') do |f|
12
- f.puts controller_content(name, content)
13
- end
1
+ module RSpec::Rails
2
+ module Controller
3
+ include RSpec::Rails::App
4
+
5
+ def create_controller name, content=nil
6
+ file = controller_file_name(name)
7
+ unless File.exist?(file)
8
+ FileUtils.mkdir_p File.dirname(file)
9
+ content ||= yield if block_given?
10
+ File.open(file, 'w') do |f|
11
+ f.puts controller_content(name, content)
14
12
  end
15
- end
16
-
17
- def controller_content name, content=nil
18
- %Q{class #{name.to_s.camelize}Controller < ActionController::Base
19
- #{content}
20
- end}
21
13
  end
14
+ end
22
15
 
23
- def remove_controller name
24
- file = controller_file_name(name)
25
- FileUtils.rm_f(file) if File.exist?(file)
26
- end
16
+ def controller_content name, content=nil
17
+ %Q{class #{name.to_s.camelize}Controller < ActionController::Base
18
+ #{content}
19
+ end}
20
+ end
27
21
 
28
- def remove_controllers *names
29
- names.each{|name| remove_controller name }
30
- end
31
-
32
- def controller_file_name name
33
- File.join(controller_dir, "#{name}_controller.rb")
34
- end
35
-
22
+ def remove_controller name
23
+ file = controller_file_name(name)
24
+ FileUtils.rm_f(file) if File.exist?(file)
36
25
  end
26
+
27
+ def remove_controllers *names
28
+ names.each{|name| remove_controller name }
29
+ end
30
+
31
+ def controller_file_name name
32
+ File.join(controller_dir, "#{name}_controller.rb")
33
+ end
34
+
37
35
  end
38
- end
36
+ end
@@ -6,7 +6,8 @@ module RSpec::Rails
6
6
  file = model_file_name(name)
7
7
  unless File.exist?(file)
8
8
  FileUtils.mkdir_p File.dirname(file)
9
- File.open(file, 'w') do |f|
9
+ File.open(file, 'w') do |f|
10
+ raise "You must include an ORM helper in your model spec, fx: include RSpec::Rails::Orm::ActiveRecord" if !respond_to? :file_content
10
11
  f.puts file_content(name, type)
11
12
  yield f if block_given?
12
13
  end
@@ -2,7 +2,8 @@ module RSpec::Rails
2
2
  module View
3
3
  include RSpec::Rails::App
4
4
 
5
- def create_view name, action, type, content=nil
5
+ def create_view name, action='show', *args
6
+ type, content = parse_args(*args)
6
7
  file = view_file_name(name, action, type)
7
8
  unless File.exist?(file)
8
9
  FileUtils.mkdir_p File.dirname(file)
@@ -14,12 +15,27 @@ module RSpec::Rails
14
15
  end
15
16
  end
16
17
 
17
- def remove_view name, action, type
18
+ def parse_args *args
19
+ type='html.erb'
20
+ content=nil
21
+ if args && args[0]
22
+ case args[0]
23
+ when String
24
+ content = args[0]
25
+ when Symbol
26
+ type = args[0]
27
+ content = args[1] if args.size > 1
28
+ end
29
+ end
30
+ [type, content]
31
+ end
32
+
33
+ def remove_view name, action='show', type='html.erb'
18
34
  file = view_file_name(name, action, type)
19
35
  FileUtils.rm_f(file) if File.exist?(file)
20
36
  end
21
37
 
22
- def view_file_name name, action, type
38
+ def view_file_name name, action='show', type='html.erb'
23
39
  File.join(view_dir, name.to_s, "#{action}.#{type}")
24
40
  end
25
41
 
@@ -0,0 +1,32 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
+
3
+ describe 'class_self matcher' do
4
+ context "content without class << self" do
5
+ not_class_self = %q{
6
+ def hello
7
+ end}
8
+
9
+ it "should not have class << self" do
10
+ not_class_self.should_not have_class_self do |content|
11
+ puts content
12
+ end
13
+ end
14
+ end
15
+
16
+ context "content with class << self" do
17
+ class_self = %q{
18
+ class << self
19
+ def hello
20
+ end
21
+ end # class self}
22
+
23
+ it "should have class << self" do
24
+ class_self.should have_class_self do |content|
25
+ puts "content: #{content}"
26
+ end
27
+ end
28
+ end
29
+ end
30
+
31
+
32
+