remarkable_devise_invitable 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/Gemfile ADDED
@@ -0,0 +1,15 @@
1
+ source "http://rubygems.org"
2
+
3
+ gem "rspec", "~> 2.1.0"
4
+ gem "actionpack", "~> 3.0.0"
5
+ gem "activerecord", "~> 3.0.0"
6
+ gem "devise_invitable", "~> 0.3.5"
7
+ gem "remarkable_devise", "~> 1.0.0"
8
+
9
+ group :development do
10
+ gem "mocha", ">= 0"
11
+ gem "rspec", "~> 2.1.0"
12
+ gem "bundler", "~> 1.0.0"
13
+ gem "jeweler", "~> 1.5.1"
14
+ gem "rcov", ">= 0"
15
+ end
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2010 Vasily Reys
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.
@@ -0,0 +1,42 @@
1
+ # Remarkable devise_invitable
2
+
3
+ Remarkable RSpec matchers for
4
+ [devise_invitable](http://github.com/scambra/devise_invitable)
5
+ models. It should be used with
6
+ [remarkable_devise](http://github.com/vreys/remarkable_devise).
7
+
8
+ ## Install
9
+
10
+ Add to your Gemfile:
11
+
12
+ gem "remarkable_activerecord"
13
+ gem "remarkable_devise"
14
+ gem "remarkable_devise_invitable"
15
+
16
+ Add the require after the remarkabe/devise line in your spec_helper.rb:
17
+
18
+ require "remarkable/active_record"
19
+ require "remarkable/devise"
20
+ require "remarkable/devise/invitable"
21
+
22
+ ## Usage
23
+
24
+ Suppose that you have User model, wich should be an invitable. Specs
25
+ should look like this:
26
+
27
+ # spec/models/user_spec.rb
28
+ describe User do
29
+ it { should be_an_invitable(:invite_for => 2.weeks) }
30
+ end
31
+
32
+ ## Documentation
33
+
34
+ Coming soon
35
+
36
+ ## See also
37
+
38
+ * [http://github.com/scambra/devise_invitable](http://github.com/scambra/devise_invitable)
39
+ * [http://github.com/plataformatec/devise](http://github.com/plataformatec/devise)
40
+ * [http://github.com/rspec/rspec](http://github.com/rspec/rspec)
41
+ * [http://github.com/remarkable/remarkable](http://github.com/remarkable/remarkable)
42
+ * [http://github.com/vreys/remarkable_devise](http://github.com/vreys/remarkable_devise)
@@ -0,0 +1,47 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+ require 'rake'
11
+
12
+ require 'jeweler'
13
+ require './lib/remarkable/devise/invitable/version.rb'
14
+ Jeweler::Tasks.new do |gem|
15
+ gem.name = "remarkable_devise_invitable"
16
+ gem.homepage = "http://github.com/vreys/remarkable_devise_invitable"
17
+ gem.license = "MIT"
18
+ gem.summary = %Q{Remarkable RSpec matchers for devise_invitable models}
19
+ gem.description = %Q{Remarkable RSpec matchers for devise_invitable models. It should be used with remarkable_devise.}
20
+ gem.email = "reys.vasily@gmail.com"
21
+ gem.authors = ["Vasily Reys"]
22
+ gem.version = Remarkable::Devise::Invitable::Version::STRING
23
+ end
24
+ Jeweler::RubygemsDotOrgTasks.new
25
+
26
+ require 'rspec/core'
27
+ require 'rspec/core/rake_task'
28
+ RSpec::Core::RakeTask.new(:spec) do |spec|
29
+ spec.pattern = FileList['spec/**/*_spec.rb']
30
+ end
31
+
32
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
33
+ spec.pattern = 'spec/**/*_spec.rb'
34
+ spec.rcov = true
35
+ end
36
+
37
+ task :default => :spec
38
+
39
+ require 'rake/rdoctask'
40
+ Rake::RDocTask.new do |rdoc|
41
+ version = Remarkable::Devise::Invitable::Version::STRING
42
+
43
+ rdoc.rdoc_dir = 'rdoc'
44
+ rdoc.title = "remarkable_devise_invitable #{version}"
45
+ rdoc.rdoc_files.include('README*')
46
+ rdoc.rdoc_files.include('lib/**/*.rb')
47
+ end
@@ -0,0 +1,24 @@
1
+ # load raiks
2
+ require 'action_pack'
3
+ require 'active_record'
4
+ require 'action_controller'
5
+
6
+ # load remarkable_devise
7
+ require 'remarkable/core'
8
+ require 'remarkable/active_record'
9
+ require 'remarkable/devise'
10
+
11
+ # load devise
12
+ require 'devise'
13
+ require 'devise/orm/active_record'
14
+ require 'devise_invitable'
15
+
16
+ dir = File.dirname(__FILE__)
17
+
18
+ # Add default locale
19
+ Dir["#{dir}/../../../locale/*yml"].each {|f| Remarkable.add_locale(f) }
20
+
21
+ # Add matchers
22
+ require File.join(dir, 'matchers', 'be_an_invitable_matcher')
23
+
24
+ Remarkable.include_matchers!(Remarkable::Devise, RSpec::Core::ExampleGroup)
@@ -0,0 +1,14 @@
1
+ module Remarkable
2
+ module Devise
3
+ module Invitable
4
+ module Version
5
+ MAJOR = 1
6
+ MINOR = 0
7
+ PATCH = 0
8
+ BUILD = nil
9
+
10
+ STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.')
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,23 @@
1
+ module Remarkable
2
+ module Devise
3
+ module Matchers
4
+ class BeAnInvitableMatcher < Base
5
+ arguments
6
+
7
+ assertion :included?, :options_match?, :has_invitation_token_column?, :has_invitation_sent_at_column?
8
+
9
+ optionals :invite_for
10
+
11
+ protected
12
+
13
+ def included?
14
+ subject_class.ancestors.include?(::Devise::Models::Invitable)
15
+ end
16
+ end
17
+
18
+ def be_an_invitable(*args, &block)
19
+ BeAnInvitableMatcher.new(*args, &block).spec(self)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,13 @@
1
+ en:
2
+ remarkable:
3
+ devise:
4
+ be_an_invitable:
5
+ description: "be an invitable"
6
+ expectations:
7
+ included: "%{subject_name} to have Devise :invitable model"
8
+ has_invitation_token_column: "%{subject_name} to have invitation_token column"
9
+ has_invitation_sent_at_column: "%{subject_name} to have invitation_sent_at column"
10
+ options_match: "%{subject_name} to be an invitable with options %{options}, got %{actual}"
11
+ optionals:
12
+ invite_for:
13
+ positive: "for %{inspect}"
@@ -0,0 +1,88 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{remarkable_devise_invitable}
8
+ s.version = "1.0.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Vasily Reys"]
12
+ s.date = %q{2010-12-10}
13
+ s.description = %q{Remarkable RSpec matchers for devise_invitable models. It should be used with remarkable_devise.}
14
+ s.email = %q{reys.vasily@gmail.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.markdown"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".rspec",
22
+ "Gemfile",
23
+ "LICENSE.txt",
24
+ "README.markdown",
25
+ "Rakefile",
26
+ "lib/remarkable/devise/invitable.rb",
27
+ "lib/remarkable/devise/invitable/version.rb",
28
+ "lib/remarkable/devise/matchers/be_an_invitable_matcher.rb",
29
+ "locale/en.yml",
30
+ "remarkable_devise_invitable.gemspec",
31
+ "spec/example_models.rb",
32
+ "spec/matchers/be_an_invitable_matcher_spec.rb",
33
+ "spec/matchers_spec.rb",
34
+ "spec/spec_helper.rb"
35
+ ]
36
+ s.homepage = %q{http://github.com/vreys/remarkable_devise_invitable}
37
+ s.licenses = ["MIT"]
38
+ s.require_paths = ["lib"]
39
+ s.rubygems_version = %q{1.3.7}
40
+ s.summary = %q{Remarkable RSpec matchers for devise_invitable models}
41
+ s.test_files = [
42
+ "spec/example_models.rb",
43
+ "spec/matchers/be_an_invitable_matcher_spec.rb",
44
+ "spec/matchers_spec.rb",
45
+ "spec/spec_helper.rb"
46
+ ]
47
+
48
+ if s.respond_to? :specification_version then
49
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
50
+ s.specification_version = 3
51
+
52
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
53
+ s.add_runtime_dependency(%q<rspec>, ["~> 2.1.0"])
54
+ s.add_runtime_dependency(%q<actionpack>, ["~> 3.0.0"])
55
+ s.add_runtime_dependency(%q<activerecord>, ["~> 3.0.0"])
56
+ s.add_runtime_dependency(%q<devise_invitable>, ["~> 0.3.5"])
57
+ s.add_runtime_dependency(%q<remarkable_devise>, ["~> 1.0.0"])
58
+ s.add_development_dependency(%q<mocha>, [">= 0"])
59
+ s.add_development_dependency(%q<rspec>, ["~> 2.1.0"])
60
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
61
+ s.add_development_dependency(%q<jeweler>, ["~> 1.5.1"])
62
+ s.add_development_dependency(%q<rcov>, [">= 0"])
63
+ else
64
+ s.add_dependency(%q<rspec>, ["~> 2.1.0"])
65
+ s.add_dependency(%q<actionpack>, ["~> 3.0.0"])
66
+ s.add_dependency(%q<activerecord>, ["~> 3.0.0"])
67
+ s.add_dependency(%q<devise_invitable>, ["~> 0.3.5"])
68
+ s.add_dependency(%q<remarkable_devise>, ["~> 1.0.0"])
69
+ s.add_dependency(%q<mocha>, [">= 0"])
70
+ s.add_dependency(%q<rspec>, ["~> 2.1.0"])
71
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
72
+ s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
73
+ s.add_dependency(%q<rcov>, [">= 0"])
74
+ end
75
+ else
76
+ s.add_dependency(%q<rspec>, ["~> 2.1.0"])
77
+ s.add_dependency(%q<actionpack>, ["~> 3.0.0"])
78
+ s.add_dependency(%q<activerecord>, ["~> 3.0.0"])
79
+ s.add_dependency(%q<devise_invitable>, ["~> 0.3.5"])
80
+ s.add_dependency(%q<remarkable_devise>, ["~> 1.0.0"])
81
+ s.add_dependency(%q<mocha>, [">= 0"])
82
+ s.add_dependency(%q<rspec>, ["~> 2.1.0"])
83
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
84
+ s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
85
+ s.add_dependency(%q<rcov>, [">= 0"])
86
+ end
87
+ end
88
+
@@ -0,0 +1,7 @@
1
+ class User < ActiveRecord::Base
2
+ devise :invitable, :invite_for => 3.days
3
+ end
4
+
5
+ class FooUser < ActiveRecord::Base
6
+
7
+ end
@@ -0,0 +1,127 @@
1
+ require 'spec_helper'
2
+
3
+ describe Remarkable::Devise::Matchers::BeAnInvitableMatcher do
4
+ before do
5
+ @valid_columns = ['invitation_token', 'invitation_sent_at']
6
+
7
+ User.stubs(:column_names).returns(@valid_columns)
8
+ end
9
+
10
+ describe "validate inclusion of Devise::Models::Invitable" do
11
+ context "when module is included" do
12
+ it "should match" do
13
+ subject.matches?(User).should be_true
14
+ end
15
+ end
16
+
17
+ context "when module is not included" do
18
+ it "should not match" do
19
+ subject.matches?(FooUser).should be_false
20
+ end
21
+ end
22
+ end
23
+
24
+ describe "options validation" do
25
+ describe :invite_for do
26
+ context "when a model has expected :invite_for value" do
27
+ it "should match" do
28
+ subject.class.new(:invite_for => 3.days).matches?(User).should be_true
29
+ end
30
+ end
31
+
32
+ context "when a model hasn't expected :invite_for value" do
33
+ it "should not match" do
34
+ subject.class.new(:invite_for => 4.weeks).matches?(User).should be_false
35
+ end
36
+ end
37
+ end
38
+ end
39
+
40
+ describe "columns validation" do
41
+ describe :invitation_token do
42
+ context "when a model has invitation_token column" do
43
+ it "should match" do
44
+ subject.matches?(User).should be_true
45
+ end
46
+ end
47
+
48
+ context "when a model hasn't invitation token column" do
49
+ it "should not match" do
50
+ User.stubs(:column_names).returns(@valid_columns - ['invitation_token'])
51
+
52
+ subject.matches?(User).should be_false
53
+ end
54
+ end
55
+ end
56
+
57
+ describe :invitation_sent_at do
58
+ context "when a model has invitation_sent_at column" do
59
+ it "should match" do
60
+ subject.matches?(User).should be_true
61
+ end
62
+ end
63
+
64
+ context "when a model hasn't invitation_sent_at column" do
65
+ it "should not match" do
66
+ User.stubs(:column_names).returns(@valid_columns - ['invitation_sent_at'])
67
+
68
+ subject.matches?(User).should be_false
69
+ end
70
+ end
71
+ end
72
+ end
73
+
74
+ describe "description message" do
75
+ context "when matching without options" do
76
+ specify { subject.description.should eql("be an invitable") }
77
+ end
78
+
79
+ context "when matching with :invite_for option" do
80
+ before do
81
+ @matcher = subject.class.new(:invite_for => 3.days)
82
+ @matcher.matches?(User)
83
+ end
84
+
85
+ specify { @matcher.description.should eql("be an invitable for 3 days") }
86
+ end
87
+ end
88
+
89
+ describe "failure message" do
90
+ context "when Devise::Models::Invitable is not included" do
91
+ before do
92
+ subject.matches?(FooUser)
93
+ end
94
+
95
+ specify { subject.failure_message_for_should.should match("Foo user to have Devise :invitable model") }
96
+ end
97
+
98
+ context "when a model hasn't invitation_token column" do
99
+ before do
100
+ User.stubs(:column_names).returns(@valid_columns - ['invitation_token'])
101
+
102
+ subject.matches?(User)
103
+ end
104
+
105
+ specify { subject.failure_message_for_should.should match("User to have invitation_token column") }
106
+ end
107
+
108
+ context "when a model hasn't inbitation_sent_at column" do
109
+ before do
110
+ User.stubs(:column_names).returns(@valid_columns - ['invitation_sent_at'])
111
+
112
+ subject.matches?(User)
113
+ end
114
+
115
+ specify { subject.failure_message_for_should.should match("User to have invitation_sent_at column") }
116
+ end
117
+
118
+ context "when a model hasn't expected options" do
119
+ before do
120
+ @matcher = subject.class.new(:invite_for => 4.weeks)
121
+ @matcher.matches?(User)
122
+ end
123
+
124
+ specify { @matcher.failure_message_for_should.should match("User to be an invitable with options (.+), got (.+)") }
125
+ end
126
+ end
127
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+
3
+ describe Remarkable::Devise::Matchers do
4
+ describe "#be_an_invitable" do
5
+ it "should return an instance of Remarkable::Devise::Matchers::BeAnInvitableMatcher" do
6
+ be_an_invitable(:invite_for => 3.weeks).should be_an_instance_of(Remarkable::Devise::Matchers::BeAnInvitableMatcher)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ require 'mocha'
2
+
3
+ require File.join(File.dirname(__FILE__), '..', 'lib', 'remarkable', 'devise', 'invitable')
4
+
5
+ require 'example_models'
6
+
7
+ ActiveRecord::Base.establish_connection( :adapter => 'sqlite3',
8
+ :database => ':memory:' )
9
+
10
+
11
+ RSpec.configure do |config|
12
+ config.mock_with :mocha
13
+ end
metadata ADDED
@@ -0,0 +1,240 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: remarkable_devise_invitable
3
+ version: !ruby/object:Gem::Version
4
+ hash: 23
5
+ prerelease: false
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 0
10
+ version: 1.0.0
11
+ platform: ruby
12
+ authors:
13
+ - Vasily Reys
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-12-10 00:00:00 +06:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ prerelease: false
23
+ name: rspec
24
+ version_requirements: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ hash: 11
30
+ segments:
31
+ - 2
32
+ - 1
33
+ - 0
34
+ version: 2.1.0
35
+ requirement: *id001
36
+ type: :runtime
37
+ - !ruby/object:Gem::Dependency
38
+ prerelease: false
39
+ name: actionpack
40
+ version_requirements: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ hash: 7
46
+ segments:
47
+ - 3
48
+ - 0
49
+ - 0
50
+ version: 3.0.0
51
+ requirement: *id002
52
+ type: :runtime
53
+ - !ruby/object:Gem::Dependency
54
+ prerelease: false
55
+ name: activerecord
56
+ version_requirements: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ hash: 7
62
+ segments:
63
+ - 3
64
+ - 0
65
+ - 0
66
+ version: 3.0.0
67
+ requirement: *id003
68
+ type: :runtime
69
+ - !ruby/object:Gem::Dependency
70
+ prerelease: false
71
+ name: devise_invitable
72
+ version_requirements: &id004 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ hash: 25
78
+ segments:
79
+ - 0
80
+ - 3
81
+ - 5
82
+ version: 0.3.5
83
+ requirement: *id004
84
+ type: :runtime
85
+ - !ruby/object:Gem::Dependency
86
+ prerelease: false
87
+ name: remarkable_devise
88
+ version_requirements: &id005 !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ hash: 23
94
+ segments:
95
+ - 1
96
+ - 0
97
+ - 0
98
+ version: 1.0.0
99
+ requirement: *id005
100
+ type: :runtime
101
+ - !ruby/object:Gem::Dependency
102
+ prerelease: false
103
+ name: mocha
104
+ version_requirements: &id006 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ hash: 3
110
+ segments:
111
+ - 0
112
+ version: "0"
113
+ requirement: *id006
114
+ type: :development
115
+ - !ruby/object:Gem::Dependency
116
+ prerelease: false
117
+ name: rspec
118
+ version_requirements: &id007 !ruby/object:Gem::Requirement
119
+ none: false
120
+ requirements:
121
+ - - ~>
122
+ - !ruby/object:Gem::Version
123
+ hash: 11
124
+ segments:
125
+ - 2
126
+ - 1
127
+ - 0
128
+ version: 2.1.0
129
+ requirement: *id007
130
+ type: :development
131
+ - !ruby/object:Gem::Dependency
132
+ prerelease: false
133
+ name: bundler
134
+ version_requirements: &id008 !ruby/object:Gem::Requirement
135
+ none: false
136
+ requirements:
137
+ - - ~>
138
+ - !ruby/object:Gem::Version
139
+ hash: 23
140
+ segments:
141
+ - 1
142
+ - 0
143
+ - 0
144
+ version: 1.0.0
145
+ requirement: *id008
146
+ type: :development
147
+ - !ruby/object:Gem::Dependency
148
+ prerelease: false
149
+ name: jeweler
150
+ version_requirements: &id009 !ruby/object:Gem::Requirement
151
+ none: false
152
+ requirements:
153
+ - - ~>
154
+ - !ruby/object:Gem::Version
155
+ hash: 1
156
+ segments:
157
+ - 1
158
+ - 5
159
+ - 1
160
+ version: 1.5.1
161
+ requirement: *id009
162
+ type: :development
163
+ - !ruby/object:Gem::Dependency
164
+ prerelease: false
165
+ name: rcov
166
+ version_requirements: &id010 !ruby/object:Gem::Requirement
167
+ none: false
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ hash: 3
172
+ segments:
173
+ - 0
174
+ version: "0"
175
+ requirement: *id010
176
+ type: :development
177
+ description: Remarkable RSpec matchers for devise_invitable models. It should be used with remarkable_devise.
178
+ email: reys.vasily@gmail.com
179
+ executables: []
180
+
181
+ extensions: []
182
+
183
+ extra_rdoc_files:
184
+ - LICENSE.txt
185
+ - README.markdown
186
+ files:
187
+ - .document
188
+ - .rspec
189
+ - Gemfile
190
+ - LICENSE.txt
191
+ - README.markdown
192
+ - Rakefile
193
+ - lib/remarkable/devise/invitable.rb
194
+ - lib/remarkable/devise/invitable/version.rb
195
+ - lib/remarkable/devise/matchers/be_an_invitable_matcher.rb
196
+ - locale/en.yml
197
+ - remarkable_devise_invitable.gemspec
198
+ - spec/example_models.rb
199
+ - spec/matchers/be_an_invitable_matcher_spec.rb
200
+ - spec/matchers_spec.rb
201
+ - spec/spec_helper.rb
202
+ has_rdoc: true
203
+ homepage: http://github.com/vreys/remarkable_devise_invitable
204
+ licenses:
205
+ - MIT
206
+ post_install_message:
207
+ rdoc_options: []
208
+
209
+ require_paths:
210
+ - lib
211
+ required_ruby_version: !ruby/object:Gem::Requirement
212
+ none: false
213
+ requirements:
214
+ - - ">="
215
+ - !ruby/object:Gem::Version
216
+ hash: 3
217
+ segments:
218
+ - 0
219
+ version: "0"
220
+ required_rubygems_version: !ruby/object:Gem::Requirement
221
+ none: false
222
+ requirements:
223
+ - - ">="
224
+ - !ruby/object:Gem::Version
225
+ hash: 3
226
+ segments:
227
+ - 0
228
+ version: "0"
229
+ requirements: []
230
+
231
+ rubyforge_project:
232
+ rubygems_version: 1.3.7
233
+ signing_key:
234
+ specification_version: 3
235
+ summary: Remarkable RSpec matchers for devise_invitable models
236
+ test_files:
237
+ - spec/example_models.rb
238
+ - spec/matchers/be_an_invitable_matcher_spec.rb
239
+ - spec/matchers_spec.rb
240
+ - spec/spec_helper.rb