generator-spec 0.4.1 → 0.4.2
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.
- data/VERSION +1 -1
- data/generator-spec.gemspec +1 -1
- data/lib/rspec_for_generators/generator_spec_helper.rb +6 -0
- data/lib/rspec_for_generators/matchers/content/have_block.rb +8 -6
- data/lib/rspec_for_generators/matchers/content/have_call.rb +8 -5
- data/lib/rspec_for_generators/matchers/content/have_calls.rb +5 -3
- data/lib/rspec_for_generators/matchers/content/have_class.rb +9 -7
- data/lib/rspec_for_generators/matchers/content/have_method.rb +8 -6
- data/lib/rspec_for_generators/matchers/content/have_module.rb +4 -1
- data/lib/rspec_for_generators/matchers/content/have_subclass.rb +5 -2
- data/lib/rspec_for_generators/matchers/content/include_module.rb +4 -1
- data/spec/rspec_for_generators/helper_generator_spec.rb +4 -4
- data/spec/rspec_for_generators/migration_generator_spec.rb +8 -5
- data/spec/spec_helper.rb +1 -1
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.2
|
data/generator-spec.gemspec
CHANGED
@@ -7,6 +7,12 @@ require 'rspec_for_generators/rails_spec_helper'
|
|
7
7
|
# Call configure to load the settings from
|
8
8
|
# Rails.application.config.generators to Rails::Generators
|
9
9
|
|
10
|
+
class Array
|
11
|
+
def args
|
12
|
+
flatten.map(&:to_s)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
10
16
|
# require the generators
|
11
17
|
def require_generators *generator_list
|
12
18
|
req = RSpec::Generator::Require
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module RSpec::RubyContentMatchers
|
2
2
|
class HaveBlock
|
3
|
-
attr_reader :name, :args, :block_args
|
3
|
+
attr_reader :name, :args, :block_args, :content
|
4
4
|
|
5
5
|
def initialize(name, options={})
|
6
6
|
@name = name.to_s
|
@@ -9,21 +9,23 @@ module RSpec::RubyContentMatchers
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def matches?(content)
|
12
|
-
|
12
|
+
@content = content
|
13
|
+
match_res = (content =~ /#{name}\s+#{args_expr}do\s+#{block_args_expr}(.*?)end/m) != nil
|
13
14
|
block_content = $1 || $3
|
14
15
|
if block_given? && block_content
|
15
16
|
ruby_content = block_content.strip.extend(RSpec::RubyContent::Helpers)
|
16
17
|
yield ruby_content
|
17
|
-
else
|
18
|
-
match_res
|
19
18
|
end
|
19
|
+
match_res
|
20
20
|
end
|
21
21
|
|
22
|
-
def failure_message
|
22
|
+
def failure_message
|
23
|
+
puts "Content: #{content}" if RSpec::Generator.debug?
|
23
24
|
return "Expected there to be a block #{name} with arguments #{args}, but there wasn't"
|
24
25
|
end
|
25
26
|
|
26
|
-
def negative_failure_message
|
27
|
+
def negative_failure_message
|
28
|
+
puts "Content: #{content}" if RSpec::Generator.debug?
|
27
29
|
return "Did not expect there to be a block #{name} with arguments #{args}, but there was"
|
28
30
|
end
|
29
31
|
|
@@ -7,7 +7,7 @@
|
|
7
7
|
#
|
8
8
|
module RSpec::RubyContentMatchers
|
9
9
|
class HaveCall
|
10
|
-
attr_reader :method, :args
|
10
|
+
attr_reader :method, :args, :content
|
11
11
|
|
12
12
|
def initialize(method, args = nil)
|
13
13
|
@method = method.to_s
|
@@ -15,15 +15,18 @@ module RSpec::RubyContentMatchers
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def matches?(content)
|
18
|
-
content
|
18
|
+
@content = content
|
19
|
+
(content =~ /#{method}#{args_expr}/m) != nil
|
19
20
|
end
|
20
21
|
|
21
22
|
def failure_message
|
23
|
+
puts "Content: #{content}" if RSpec::Generator.debug?
|
22
24
|
return "Expected there to be a call to #{method} with args #{args}, but there wasn't" if args
|
23
|
-
"Expected there to be a call to #{method}, but there wasn't"
|
25
|
+
"Expected there to be a call to #{method}, but there wasn't"
|
24
26
|
end
|
25
27
|
|
26
|
-
def negative_failure_message
|
28
|
+
def negative_failure_message
|
29
|
+
puts "Content: #{content}" if RSpec::Generator.debug?
|
27
30
|
return "Did not expect there to be a call to #{method} with args #{args}, but there was" if args
|
28
31
|
"Did not expect there to be a call to #{method}, but there was"
|
29
32
|
end
|
@@ -31,7 +34,7 @@ module RSpec::RubyContentMatchers
|
|
31
34
|
protected
|
32
35
|
|
33
36
|
def args_expr
|
34
|
-
args ? "(\()?\s*#{args}\s*(\))?" : ''
|
37
|
+
args ? "\s+(\()?\s*#{args}\s*(\))?" : ''
|
35
38
|
end
|
36
39
|
|
37
40
|
end
|
@@ -1,13 +1,13 @@
|
|
1
1
|
module RSpec::RubyContentMatchers
|
2
2
|
class HaveCalls
|
3
|
-
attr_reader :calls
|
4
|
-
attr_accessor :method, :args
|
3
|
+
attr_reader :calls, :method, :args, :content
|
5
4
|
|
6
5
|
def initialize(calls)
|
7
6
|
@calls = calls
|
8
7
|
end
|
9
8
|
|
10
9
|
def matches?(content)
|
10
|
+
@content = content
|
11
11
|
calls.each_pair do |method, args|
|
12
12
|
@method = method.to_s
|
13
13
|
@args = args
|
@@ -17,11 +17,13 @@ module RSpec::RubyContentMatchers
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def failure_message
|
20
|
+
puts "Content: #{content}" if RSpec::Generator.debug?
|
20
21
|
return "Expected there to be a call to #{method} with args #{args}, but there wasn't" if args
|
21
22
|
"Expected there to be a call to #{method}, but there wasn't"
|
22
23
|
end
|
23
24
|
|
24
|
-
def negative_failure_message
|
25
|
+
def negative_failure_message
|
26
|
+
puts "Content: #{content}" if RSpec::Generator.debug?
|
25
27
|
return "Did not expect there to be a call to #{method} with args #{args}, but there was" if args
|
26
28
|
"Did not expect there to be a call to #{method}, but there was"
|
27
29
|
end
|
@@ -1,27 +1,29 @@
|
|
1
1
|
module RSpec::RubyContentMatchers
|
2
2
|
class HaveClass
|
3
|
-
attr_reader :klass, :type
|
3
|
+
attr_reader :klass, :type, :content
|
4
4
|
|
5
5
|
def initialize(klass, type=nil)
|
6
6
|
@klass = klass.to_s.camelize
|
7
7
|
@type = type.to_s.camelize if type
|
8
8
|
end
|
9
9
|
|
10
|
-
def matches?(content)
|
10
|
+
def matches?(content)
|
11
|
+
@content = content
|
11
12
|
match_res = (content =~ /class\s+#{klass}#{type}\s+(.*)end/m)
|
12
13
|
if block_given? && $1
|
13
14
|
ruby_content = $1.strip.extend(RSpec::RubyContent::Helpers)
|
14
|
-
yield ruby_content
|
15
|
-
else
|
16
|
-
match_res
|
15
|
+
yield ruby_content
|
17
16
|
end
|
17
|
+
match_res
|
18
18
|
end
|
19
19
|
|
20
|
-
def failure_message
|
20
|
+
def failure_message
|
21
|
+
puts "Content: #{content}" if RSpec::Generator.debug?
|
21
22
|
"Expected there to be the class #{klass}"
|
22
23
|
end
|
23
24
|
|
24
|
-
def negative_failure_message
|
25
|
+
def negative_failure_message
|
26
|
+
puts "Content: #{content}" if RSpec::Generator.debug?
|
25
27
|
"Did no expected there to be the class #{klass}"
|
26
28
|
end
|
27
29
|
|
@@ -7,14 +7,15 @@
|
|
7
7
|
#
|
8
8
|
module RSpec::RubyContentMatchers
|
9
9
|
class HaveMethod
|
10
|
-
attr_reader :method, :type
|
10
|
+
attr_reader :method, :type, :content
|
11
11
|
|
12
12
|
def initialize(method, type=nil)
|
13
13
|
@method = method.to_s
|
14
14
|
@type = type
|
15
15
|
end
|
16
16
|
|
17
|
-
def matches?(content)
|
17
|
+
def matches?(content)
|
18
|
+
@content = content
|
18
19
|
match_res = case type
|
19
20
|
when :class
|
20
21
|
content =~ /def\s+self.#{method}\s*(\(.+\))?(.*?)(def|end)/m
|
@@ -24,19 +25,20 @@ module RSpec::RubyContentMatchers
|
|
24
25
|
if block_given? && $2
|
25
26
|
ruby_content = $2.strip.extend(RSpec::RubyContent::Helpers)
|
26
27
|
ruby_content << "\nend" if !(ruby_content =~ /\nend$/)
|
27
|
-
yield ruby_content
|
28
|
-
else
|
29
|
-
match_res
|
28
|
+
yield ruby_content
|
30
29
|
end
|
30
|
+
match_res
|
31
31
|
end
|
32
32
|
|
33
33
|
def failure_message
|
34
|
+
puts "Content: #{content}" if RSpec::Generator.debug?
|
34
35
|
return "Expected there to be the class method #{method}, but there wasn't" if type == :class
|
35
36
|
"Expected there to be the method #{method}, but there wasn't"
|
36
37
|
end
|
37
38
|
|
38
39
|
def negative_failure_message
|
39
|
-
|
40
|
+
puts "Content: #{content}" if RSpec::Generator.debug?
|
41
|
+
return "Did not expect there to be the class method #{method}, but there was" if type == :class
|
40
42
|
"Did not expect there to be the method #{method}, but there was"
|
41
43
|
end
|
42
44
|
|
@@ -1,12 +1,13 @@
|
|
1
1
|
module RSpec::RubyContentMatchers
|
2
2
|
class HaveModule
|
3
|
-
attr_reader :module_name
|
3
|
+
attr_reader :module_name, :content
|
4
4
|
|
5
5
|
def initialize(module_name)
|
6
6
|
@module_name = module_name.to_s.camelize
|
7
7
|
end
|
8
8
|
|
9
9
|
def matches?(content)
|
10
|
+
@content = content
|
10
11
|
match_res =~ /module\s+#{module_name}\s+(.*)end/m
|
11
12
|
if block_given? && match_res
|
12
13
|
ruby_content = $2.strip.extend(RSpec::RubyContent::Helpers)
|
@@ -17,10 +18,12 @@ module RSpec::RubyContentMatchers
|
|
17
18
|
end
|
18
19
|
|
19
20
|
def failure_message
|
21
|
+
puts "Content: #{content}" if RSpec::Generator.debug?
|
20
22
|
"Expected there to be the module #{module_name}"
|
21
23
|
end
|
22
24
|
|
23
25
|
def negative_failure_message
|
26
|
+
puts "Content: #{content}" if RSpec::Generator.debug?
|
24
27
|
"Did no expected there to be the module #{module_name}"
|
25
28
|
end
|
26
29
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module RSpec::RubyContentMatchers
|
2
2
|
class HaveSubclass
|
3
|
-
attr_reader :klass, :superclass, :type
|
3
|
+
attr_reader :klass, :superclass, :type, :content
|
4
4
|
|
5
5
|
def initialize(klass, superclass, type=nil)
|
6
6
|
@klass = klass.to_s.camelize
|
@@ -9,6 +9,7 @@ module RSpec::RubyContentMatchers
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def matches?(content)
|
12
|
+
@content = content
|
12
13
|
match_res = (content =~ /class\s+#{klass}#{type}\s+<\s+#{superclass}(.*)end$/m)
|
13
14
|
if block_given? && $1
|
14
15
|
ruby_content = $1.strip.extend(RSpec::RubyContent::Helpers)
|
@@ -18,11 +19,13 @@ module RSpec::RubyContentMatchers
|
|
18
19
|
end
|
19
20
|
end
|
20
21
|
|
21
|
-
def failure_message
|
22
|
+
def failure_message
|
23
|
+
puts "Content: #{content}" if RSpec::Generator.debug?
|
22
24
|
"Expected there to be the subclass #{klass} of #{superclass}"
|
23
25
|
end
|
24
26
|
|
25
27
|
def negative_failure_message
|
28
|
+
puts "Content: #{content}" if RSpec::Generator.debug?
|
26
29
|
"Did no expected there to be the subclass #{klass} of #{superclass}"
|
27
30
|
end
|
28
31
|
end
|
@@ -1,12 +1,13 @@
|
|
1
1
|
module RSpec::RubyContentMatchers
|
2
2
|
class IncludeModule
|
3
|
-
attr_reader :module_name
|
3
|
+
attr_reader :module_name, :content
|
4
4
|
|
5
5
|
def initialize module_name
|
6
6
|
@module_name = module_name.to_s.camelize
|
7
7
|
end
|
8
8
|
|
9
9
|
def matches?(content)
|
10
|
+
@content = content
|
10
11
|
match_res = (content =~ /include\s+#{module_name}/)
|
11
12
|
if block_given? && match_res
|
12
13
|
ruby_content = content.extend(RSpec::RubyContent::Helpers)
|
@@ -17,10 +18,12 @@ module RSpec::RubyContentMatchers
|
|
17
18
|
end
|
18
19
|
|
19
20
|
def failure_message
|
21
|
+
puts "Content: #{content}" if RSpec::Generator.debug?
|
20
22
|
"Expected there to be an inclusion of module #{module_name}"
|
21
23
|
end
|
22
24
|
|
23
25
|
def negative_failure_message
|
26
|
+
puts "Content: #{content}" if RSpec::Generator.debug?
|
24
27
|
"Did not expect there to be an inclusion of module #{module_name}"
|
25
28
|
end
|
26
29
|
|
@@ -32,12 +32,12 @@ describe 'helper_generator' do
|
|
32
32
|
|
33
33
|
it "should decorate an existing Account helper file with a 'help_me' method" do
|
34
34
|
with_generator do |g|
|
35
|
-
name =
|
36
|
-
create_helper
|
35
|
+
name = :account
|
36
|
+
create_helper :account do
|
37
37
|
'# helper content'
|
38
38
|
end
|
39
|
-
g.run_generator [
|
40
|
-
g.should generate_helper
|
39
|
+
g.run_generator [:account].args
|
40
|
+
g.should generate_helper :account do |content|
|
41
41
|
content.should have_helper_class name do |klass|
|
42
42
|
klass.should have_method :help_me
|
43
43
|
end
|
@@ -1,4 +1,7 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
RSpec::Generator.debug = true
|
4
|
+
|
2
5
|
require_generator :migration
|
3
6
|
|
4
7
|
describe 'migration_generator' do
|
@@ -16,14 +19,14 @@ describe 'migration_generator' do
|
|
16
19
|
|
17
20
|
it "should generate create_user migration" do
|
18
21
|
with_generator do |g|
|
19
|
-
|
20
|
-
|
21
|
-
g.
|
22
|
-
|
23
|
-
content.should have_migration name do |klass|
|
22
|
+
# remove_migration :create_users
|
23
|
+
# g.run_generator [:create_users].args
|
24
|
+
g.should generate_migration :create_users do |content|
|
25
|
+
content.should have_migration :create_users do |klass|
|
24
26
|
klass.should have_up do |up|
|
25
27
|
up.should have_create_table :users do |user_tbl|
|
26
28
|
user_tbl.should have_columns :name => :string, :age => :string
|
29
|
+
user_tbl.should have_timestamps
|
27
30
|
end
|
28
31
|
end
|
29
32
|
|
data/spec/spec_helper.rb
CHANGED