pickle 0.2.5 → 0.2.6

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/.gitignore CHANGED
@@ -1,3 +1,5 @@
1
1
  pkg
2
2
  doc/*
3
3
  .garlic
4
+ webrat*
5
+ cucumber_test_app
data/History.txt CHANGED
@@ -1,3 +1,10 @@
1
+ == 0.2.6 - 5 Apr 2010
2
+
3
+ * 2 improvements
4
+ * running specs is now doable without being in a rails app - just do 'rake spec'
5
+ * running features is more straightforward, 'rake cucumber' then follow the instructions
6
+
7
+
1
8
  == 0.2.5 - 17 Mar 2010
2
9
 
3
10
  * 2 improvements
data/README.rdoc CHANGED
@@ -45,18 +45,15 @@ It's tested against all stable branches of 2.x rails, and edge, with the latest
45
45
 
46
46
  == Run the tests
47
47
 
48
- You can run the test with <b>garlic</b> http://github.com/ianwhite/garlic, which tests against different versions of rails.
49
-
50
- Or, you can make a test rails app:
48
+ To run the specs do:
51
49
 
52
- cd ~/wherever_you_work
53
- rails pickle_test_project; cd pickle_test_project
54
- script/generate rspec
55
- script/generate cucumber --rspec
56
- script/plugin install git://github.com/ianwhite/pickle.git
57
- cd vendor/plugins/pickle
58
50
  rake spec
59
- cucumber features
51
+
52
+ To run the features do:
53
+
54
+ rake cucumber
55
+
56
+ The first time you do this, instructions will appear about how to set up a test rails app.
60
57
 
61
58
  == Contributors
62
59
 
data/Rakefile CHANGED
@@ -4,6 +4,7 @@ $LOAD_PATH.unshift(rspec_base) if File.exist?(rspec_base) and !$LOAD_PATH.includ
4
4
 
5
5
  require 'spec/rake/spectask'
6
6
  require 'spec/rake/verify_rcov'
7
+ require 'cucumber/rake/task'
7
8
 
8
9
  $LOAD_PATH.unshift File.dirname(__FILE__) + '/lib'
9
10
  require 'pickle/version'
@@ -29,61 +30,41 @@ end
29
30
  namespace :rcov do
30
31
  desc "Verify RCov threshold for #{PluginName}"
31
32
  RCov::VerifyTask.new(:verify => :rcov) do |t|
32
- t.threshold = 100.0
33
+ t.threshold = 99.23
33
34
  t.index_html = File.join(File.dirname(__FILE__), 'doc/coverage/index.html')
34
35
  end
35
36
  end
36
37
 
37
- # cucumber features require an enclosing rails app
38
- plugins_base = File.expand_path(File.join(File.dirname(__FILE__), '..'))
39
- cucumber_base = File.join(plugins_base, 'cucumber/lib')
40
- if File.exists?(cucumber_base) && plugins_base =~ /\/vendor\/plugins$/ # if we're in rails app
41
- $:.unshift(cucumber_base)
42
- require 'cucumber/rake/task'
43
-
44
- desc "Run features for #{PluginName} (progress)"
45
- Cucumber::Rake::Task.new(:features) do |t|
46
- t.fork = true
47
- t.cucumber_opts = ['--format', 'progress', '--require', 'features']
48
- end
49
-
50
- desc "Run features for #{PluginName} (full output)"
51
- namespace :features do
52
- Cucumber::Rake::Task.new(:full) do |t|
53
- t.cucumber_opts = ['--format', 'pretty', '--require', 'features']
54
- end
55
- end
38
+ desc "Run features for #{PluginName} (progress)"
39
+ Cucumber::Rake::Task.new(:cucumber => [:cucumber_test_app]) do |t|
40
+ t.cucumber_opts = ['--format', 'pretty', '--require', 'features']
56
41
  end
57
42
 
58
- # the following optional tasks are for CI, gems and doc building
59
- begin
60
- require 'hanna/rdoctask'
61
- require 'garlic/tasks'
62
- require 'grancher/task'
43
+ desc "setup a rails app for running cucumber"
44
+ file "cucumber_test_app" do
45
+ raise <<-EOD
46
+
47
+ ** Please setup a test rails app in cucumber_test_app **
48
+
49
+ Until this is automated, do something like:
63
50
 
64
- task :cruise => ['garlic:all', 'doc:publish']
51
+ (make sure cucumber, cucumber-rails, rspec, rspec-rails, machinist, and factory_girl are all installed as gems)
65
52
 
66
- Rake::RDocTask.new(:doc) do |d|
67
- d.options << '--all'
68
- d.rdoc_dir = 'doc'
69
- d.main = 'README.rdoc'
70
- d.title = "#{PluginName} API docs"
71
- d.rdoc_files.include('README.rdoc', 'History.txt', 'License.txt', 'Todo.txt', 'lib/**/*.rb')
72
- end
53
+ rails cucumber_test_app
54
+ cd cucumber_test_app
55
+ script/generate rspec
56
+ script/generate cucumber
57
+ cd vendor/plugins
58
+ ln -s ../../.. pickle
59
+ cd ../../..
60
+
61
+ Then run
73
62
 
74
- namespace :doc do
75
- task :publish => :doc do
76
- Rake::Task['doc:push'].invoke unless uptodate?('.git/refs/heads/gh-pages', 'doc')
77
- end
78
-
79
- Grancher::Task.new(:push) do |g|
80
- g.keep_all
81
- g.directory 'doc', 'doc'
82
- g.branch = 'gh-pages'
83
- g.push_to = 'origin'
84
- end
85
- end
86
- rescue LoadError
63
+ rake cucumber
64
+
65
+ ** thanks! **
66
+
67
+ EOD
87
68
  end
88
69
 
89
70
  begin
data/Todo.txt CHANGED
@@ -1,4 +1,3 @@
1
1
  * add 'scope' steps see http://gist.github.com/239570
2
2
  * cleanup path_to_pickle and paths.rb (maybe have poly_pickle_path with same semantics as polymorphic_path, but accepting pickle refs)
3
- * fix problem with save_and_open_emails
4
3
  * Translations
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.5
1
+ 0.2.6
@@ -5,7 +5,7 @@
5
5
  # files.
6
6
 
7
7
  ENV["RAILS_ENV"] ||= "cucumber"
8
- require File.expand_path(File.dirname(__FILE__) + '/../../../../../config/environment')
8
+ require File.expand_path(File.dirname(__FILE__) + '/../../cucumber_test_app/config/environment')
9
9
 
10
10
  require 'cucumber/formatter/unicode' # Remove this line if you don't want Cucumber Unicode support
11
11
  require 'cucumber/rails/world'
@@ -11,10 +11,6 @@ module Pickle
11
11
  class Adapter
12
12
  attr_reader :name, :klass
13
13
 
14
- def self.factories
15
- raise NotImplementedError, "return an array of factory adapter objects"
16
- end
17
-
18
14
  def create(attrs = {})
19
15
  raise NotImplementedError, "create and return an object with the given attributes"
20
16
  end
@@ -22,12 +18,24 @@ module Pickle
22
18
  cattr_writer :model_classes
23
19
  self.model_classes = nil
24
20
 
25
- def self.model_classes
26
- # remove abstract, framework, and non-table classes
27
- @@model_classes ||= ::ActiveRecord::Base.send(:subclasses).reject do |klass|
28
- klass.abstract_class? || !klass.table_exists? ||
29
- (defined?(CGI::Session::ActiveRecordStore::Session) && klass == CGI::Session::ActiveRecordStore::Session) ||
30
- (defined?(::ActiveRecord::SessionStore::Session) && klass == ::ActiveRecord::SessionStore::Session)
21
+ class << self
22
+ def factories
23
+ raise NotImplementedError, "return an array of factory adapter objects"
24
+ end
25
+
26
+ def model_classes
27
+ @@model_classes ||= ::ActiveRecord::Base.send(:subclasses).select {|klass| suitable_for_pickle?(klass)}
28
+ end
29
+
30
+ # return true if a klass should be used by pickle
31
+ def suitable_for_pickle?(klass)
32
+ !klass.abstract_class? && klass.table_exists? && !framework_class?(klass)
33
+ end
34
+
35
+ # return true if the passed class is a special framework class
36
+ def framework_class?(klass)
37
+ ((defined?(CGI::Session::ActiveRecordStore::Session) && klass == CGI::Session::ActiveRecordStore::Session)) ||
38
+ ((defined?(::ActiveRecord::SessionStore::Session) && klass == ::ActiveRecord::SessionStore::Session))
31
39
  end
32
40
  end
33
41
 
data/lib/pickle/email.rb CHANGED
@@ -34,7 +34,7 @@ module Pickle
34
34
  # web browser if on OS X. (depends on webrat)
35
35
  def save_and_open_emails
36
36
  emails_to_open = @emails || emails
37
- filename = "#{RAILS_ROOT}/tmp/webrat-email-#{Time.now.to_i}.html"
37
+ filename = "webrat-email-#{Time.now.to_i}.html"
38
38
  File.open(filename, "w") do |f|
39
39
  emails_to_open.each_with_index do |e, i|
40
40
  f.write "<h1>Email #{i+1}</h1><pre>#{e}</pre><hr />"
data/pickle.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{pickle}
8
- s.version = "0.2.5"
8
+ s.version = "0.2.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ian White"]
12
- s.date = %q{2010-03-17}
12
+ s.date = %q{2010-04-05}
13
13
  s.description = %q{Easy model creation and reference in your cucumber features}
14
14
  s.email = %q{ian.w.white@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -46,7 +46,6 @@ Gem::Specification.new do |s|
46
46
  "features/support/paths.rb",
47
47
  "features/support/pickle.rb",
48
48
  "features/support/pickle_app.rb",
49
- "garlic.rb",
50
49
  "init.rb",
51
50
  "lib/pickle.rb",
52
51
  "lib/pickle/adapter.rb",
@@ -69,15 +68,15 @@ Gem::Specification.new do |s|
69
68
  "rails_generators/pickle/templates/paths.rb",
70
69
  "rails_generators/pickle/templates/pickle.rb",
71
70
  "rails_generators/pickle/templates/pickle_steps.rb",
72
- "spec/lib/pickle_adapter_spec.rb",
73
- "spec/lib/pickle_config_spec.rb",
74
- "spec/lib/pickle_email_parser_spec.rb",
75
- "spec/lib/pickle_email_spec.rb",
76
- "spec/lib/pickle_parser_matchers_spec.rb",
77
- "spec/lib/pickle_parser_spec.rb",
78
- "spec/lib/pickle_path_spec.rb",
79
- "spec/lib/pickle_session_spec.rb",
80
- "spec/lib/pickle_spec.rb",
71
+ "spec/pickle/adapter_spec.rb",
72
+ "spec/pickle/config_spec.rb",
73
+ "spec/pickle/email/parser_spec.rb",
74
+ "spec/pickle/email_spec.rb",
75
+ "spec/pickle/parser/matchers_spec.rb",
76
+ "spec/pickle/parser_spec.rb",
77
+ "spec/pickle/path_spec.rb",
78
+ "spec/pickle/session_spec.rb",
79
+ "spec/pickle_spec.rb",
81
80
  "spec/spec_helper.rb"
82
81
  ]
83
82
  s.homepage = %q{http://github.com/ianwhite/pickle/tree}
@@ -86,15 +85,15 @@ Gem::Specification.new do |s|
86
85
  s.rubygems_version = %q{1.3.6}
87
86
  s.summary = %q{Easy model creation and reference in your cucumber features}
88
87
  s.test_files = [
89
- "spec/lib/pickle_adapter_spec.rb",
90
- "spec/lib/pickle_config_spec.rb",
91
- "spec/lib/pickle_email_parser_spec.rb",
92
- "spec/lib/pickle_email_spec.rb",
93
- "spec/lib/pickle_parser_matchers_spec.rb",
94
- "spec/lib/pickle_parser_spec.rb",
95
- "spec/lib/pickle_path_spec.rb",
96
- "spec/lib/pickle_session_spec.rb",
97
- "spec/lib/pickle_spec.rb",
88
+ "spec/pickle/adapter_spec.rb",
89
+ "spec/pickle/config_spec.rb",
90
+ "spec/pickle/email/parser_spec.rb",
91
+ "spec/pickle/email_spec.rb",
92
+ "spec/pickle/parser/matchers_spec.rb",
93
+ "spec/pickle/parser_spec.rb",
94
+ "spec/pickle/path_spec.rb",
95
+ "spec/pickle/session_spec.rb",
96
+ "spec/pickle_spec.rb",
98
97
  "spec/spec_helper.rb"
99
98
  ]
100
99
 
@@ -1,4 +1,8 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), '../spec_helper'))
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ require 'activerecord'
4
+ require 'factory_girl'
5
+ require 'machinist/active_record'
2
6
 
3
7
  describe Pickle::Adapter do
4
8
  it ".factories should raise NotImplementedError" do
@@ -9,32 +13,47 @@ describe Pickle::Adapter do
9
13
  lambda{ Pickle::Adapter.new.create }.should raise_error(NotImplementedError)
10
14
  end
11
15
 
12
- describe ".model_classes" do
16
+ describe ".suitable_for_pickle?(klass)" do
17
+ let :klass do
18
+ mock('Class', :abstract_class? => false, :table_exists? => true)
19
+ end
20
+
13
21
  before do
14
- Pickle::Adapter.model_classes = nil
22
+ Pickle::Adapter.stub!(:framework_class?).and_return(false)
15
23
  end
16
24
 
17
- if defined?(CGI::Session::ActiveRecordStore::Session)
18
- it "should not include CGI::Session::ActiveRecordStore::Session" do
19
- Pickle::Adapter.model_classes.should_not include(CGI::Session::ActiveRecordStore)
20
- end
25
+ it "a non abstract class that has a table, and is not a framework class, is suitable_for_pickle" do
26
+ Pickle::Adapter.should be_suitable_for_pickle(klass)
21
27
  end
22
-
23
- if defined?(ActiveRecord::SessionStore::Session)
24
- it "should not include ActiveRecord::SessionStore::Session" do
25
- Pickle::Adapter.model_classes.should_not include(ActiveRecord::SessionStore::Session)
26
- end
28
+
29
+ it "an abtract_class is not suitable_for_pickle" do
30
+ klass.stub!(:abstract_class?).and_return(true)
31
+ Pickle::Adapter.should_not be_suitable_for_pickle(klass)
27
32
  end
33
+
34
+ it "a class with no table is not suitable_for_pickle" do
35
+ klass.stub!(:table_exists?).and_return(false)
36
+ Pickle::Adapter.should_not be_suitable_for_pickle(klass)
37
+ end
38
+
39
+ it "an frame_work class is not suitable_for_pickle" do
40
+ Pickle::Adapter.should_receive(:framework_class?).with(klass).and_return(true)
41
+ Pickle::Adapter.should_not be_suitable_for_pickle(klass)
42
+ end
43
+ end
28
44
 
29
- it "should not include classes without a table" do
30
- klass = Class.new(ActiveRecord::Base)
31
- Pickle::Adapter.model_classes.should_not include(klass)
45
+ describe ".model_classes" do
46
+ before do
47
+ Pickle::Adapter.model_classes = nil
32
48
  end
33
-
34
- it "should not include abstract classes without a table" do
35
- klass = Class.new(ActiveRecord::Base)
36
- klass.abstract_class = true
37
- Pickle::Adapter.model_classes.should_not include(klass)
49
+
50
+ it "should only include #suitable_for_pickle classes" do
51
+ klass1 = Class.new(ActiveRecord::Base)
52
+ klass2 = Class.new(ActiveRecord::Base)
53
+ Pickle::Adapter.should_receive(:suitable_for_pickle?).with(klass1).and_return(true)
54
+ Pickle::Adapter.should_receive(:suitable_for_pickle?).with(klass2).and_return(false)
55
+ Pickle::Adapter.model_classes.should include(klass1)
56
+ Pickle::Adapter.model_classes.should_not include(klass2)
38
57
  end
39
58
  end
40
59
 
@@ -1,4 +1,4 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), '../spec_helper'))
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
2
 
3
3
  describe Pickle::Config do
4
4
  before do
@@ -1,4 +1,6 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), '../spec_helper'))
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ require 'pickle/email/parser'
2
4
 
3
5
  describe Pickle::Email::Parser do
4
6
  include Pickle::Parser::Matchers
@@ -46,4 +48,4 @@ describe Pickle::Email::Parser do
46
48
  match[1].should == 'last'
47
49
  end
48
50
  end
49
- end
51
+ end
@@ -1,4 +1,8 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), '../spec_helper'))
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ require 'pickle/email'
4
+ require 'pickle/email/parser'
5
+ require 'actionmailer'
2
6
 
3
7
  describe Pickle::Email do
4
8
  include Pickle::Session
@@ -120,11 +124,11 @@ describe Pickle::Email do
120
124
 
121
125
  it "should create a file in Rails/tmp with the emails in it" do
122
126
  save_and_open_emails
123
- File.read("#{RAILS_ROOT}/tmp/webrat-email-#{@now.to_i}.html").should == "<h1>Email 1</h1><pre>Contents of Email 1</pre><hr />"
127
+ File.read("webrat-email-#{@now.to_i}.html").should == "<h1>Email 1</h1><pre>Contents of Email 1</pre><hr />"
124
128
  end
125
129
 
126
130
  it "should call open_in_browser on created tmp file" do
127
- should_receive(:open_in_browser).with("#{RAILS_ROOT}/tmp/webrat-email-#{@now.to_i}.html")
131
+ should_receive(:open_in_browser).with("webrat-email-#{@now.to_i}.html")
128
132
  save_and_open_emails
129
133
  end
130
134
  end
@@ -150,4 +154,4 @@ describe Pickle::Email do
150
154
  click_first_link_in_email(@email1)
151
155
  end
152
156
  end
153
- end
157
+ end
@@ -1,4 +1,4 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), '../spec_helper'))
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
2
 
3
3
  describe Pickle::Parser::Matchers do
4
4
  include Pickle::Parser::Matchers
@@ -0,0 +1,161 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe Pickle::Parser do
4
+ before do
5
+ @parser = Pickle::Parser.new(:config => Pickle::Config.new)
6
+ end
7
+
8
+ it "should raise error when created with no config" do
9
+ lambda{ Pickle::Parser.new }.should raise_error(ArgumentError)
10
+ end
11
+
12
+ describe "when a 'user' factory exists in config" do
13
+ before do
14
+ @parser.config.stub(:factories).and_return('user' => mock('User'))
15
+ end
16
+
17
+ describe 'misc regexps' do
18
+ describe '/^#{capture_model} exists/' do
19
+ before do
20
+ @regexp = /^(#{@parser.capture_model}) exists$/
21
+ end
22
+
23
+ it "should match 'a user exists'" do
24
+ 'a user exists'.should match(@regexp)
25
+ end
26
+
27
+ it "should caputure 'a user' from 'a user exists'" do
28
+ 'a user exists'.match(@regexp)[1].should == 'a user'
29
+ end
30
+ end
31
+ end
32
+
33
+ describe '#parse_field' do
34
+ it "should return {'a' => 'b'} for 'a: \"b\"'" do
35
+ @parser.parse_field('a: "b"').should == {'a' => 'b'}
36
+ end
37
+
38
+ it "should raise error for invalid field 'a : b'" do
39
+ lambda { @parser.parse_field('a : b') }.should raise_error(ArgumentError)
40
+ end
41
+ end
42
+
43
+ describe '#parse_fields' do
44
+ it 'should return {} for blank argument' do
45
+ @parser.parse_fields(nil).should == {}
46
+ @parser.parse_fields('').should == {}
47
+ end
48
+
49
+ it 'should raise error for invalid argument' do
50
+ lambda { @parser.parse_fields('foo foo') }.should raise_error(ArgumentError)
51
+ end
52
+
53
+ it '(\'foo: "bar"\') should == { "foo" => "bar"}' do
54
+ @parser.parse_fields('foo: "bar"').should == { "foo" => "bar"}
55
+ end
56
+
57
+ it '("bool: true") should == { "bool" => true}' do
58
+ @parser.parse_fields('bool: true').should == {"bool" => true}
59
+ end
60
+
61
+ it '("bool: false") should == { "bool" => false}' do
62
+ @parser.parse_fields('bool: false').should == {"bool" => false}
63
+ end
64
+
65
+ it '("int: 10") should == { "int" => 10 }' do
66
+ @parser.parse_fields('int: 10').should == {"int" => 10}
67
+ end
68
+
69
+ it '("float: 10.1") should == { "float" => 10.1 }' do
70
+ @parser.parse_fields('float: 10.1').should == {"float" => 10.1}
71
+ end
72
+
73
+ it '(\'foo: "bar", bar_man: "wonga wonga", gump: 123\') should == {"foo" => "bar", "bar_man" => "wonga wonga", "gump" => 123}' do
74
+ @parser.parse_fields('foo: "bar", bar_man: "wonga wonga", gump: 123').should == {"foo" => "bar", "bar_man" => "wonga wonga", "gump" => 123}
75
+ end
76
+ end
77
+
78
+ describe '#parse_model' do
79
+ it '("a user") should == ["user", ""]' do
80
+ @parser.parse_model("a user").should == ["user", ""]
81
+ end
82
+
83
+ it '("the user") should == ["user", ""]' do
84
+ @parser.parse_model("the user").should == ["user", ""]
85
+ end
86
+
87
+ it '("1 user") should == ["user", ""]' do
88
+ @parser.parse_model("1 user").should == ["user", ""]
89
+ end
90
+
91
+ it '(\'an user: "jim jones"\') should == ["user", "jim_jones"]' do
92
+ @parser.parse_model('an user: "jim jones"').should == ["user", "jim_jones"]
93
+ end
94
+
95
+ it '(\'that user: "herbie"\') should == ["user", "herbie"]' do
96
+ @parser.parse_model('that user: "herbie"').should == ["user", "herbie"]
97
+ end
98
+
99
+ it '(\'the 12th user\') should == ["user", 11]' do
100
+ @parser.parse_model('the 12th user').should == ["user", 11]
101
+ end
102
+
103
+ it '(\'the last user\') should == ["user", -1]' do
104
+ @parser.parse_model('the last user').should == ["user", -1]
105
+ end
106
+
107
+ it '("the first user") should == ["user", 0]' do
108
+ @parser.parse_model('the first user').should == ["user", 0]
109
+ end
110
+
111
+ it '("the 1st user") should == ["user", 0]' do
112
+ @parser.parse_model('the 1st user').should == ["user", 0]
113
+ end
114
+ end
115
+
116
+ describe "#parse_index" do
117
+ it '("1st") should == 0' do
118
+ @parser.parse_index("1st").should == 0
119
+ end
120
+
121
+ it '("24th") should == 23' do
122
+ @parser.parse_index("24th").should == 23
123
+ end
124
+ it '("first") should == 0' do
125
+ @parser.parse_index("first").should == 0
126
+ end
127
+
128
+ it '("last") should == -1' do
129
+ @parser.parse_index("last").should == -1
130
+ end
131
+ end
132
+ end
133
+
134
+ describe "customised mappings" do
135
+ describe "config maps 'I|myself' to 'user: \"me\"'" do
136
+ before do
137
+ @config = Pickle::Config.new do |c|
138
+ c.map 'I', 'myself', :to => 'user: "me"'
139
+ end
140
+ @parser = Pickle::Parser.new(:config => @config)
141
+ @parser.config.stub(:factories).and_return('user' => mock('User'))
142
+ end
143
+
144
+ it "'I' should match /\#{match_model}/" do
145
+ 'I'.should match(/#{@parser.match_model}/)
146
+ end
147
+
148
+ it "'myself' should match /\#{match_model}/" do
149
+ 'myself'.should match(/#{@parser.match_model}/)
150
+ end
151
+
152
+ it "parse_model('I') should == ['user', 'me']" do
153
+ @parser.parse_model('I').should == ["user", "me"]
154
+ end
155
+
156
+ it "parse_model('myself') should == ['user', 'me']" do
157
+ @parser.parse_model('myself').should == ["user", "me"]
158
+ end
159
+ end
160
+ end
161
+ end