invitation 0.6.0 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9328677bd2e812aa2989652555faf6c7c4387b4c010c3de3b0c23f2ef6a0a820
4
- data.tar.gz: 65172c70d01f9b7ccce2f282c4353490780f01b420f7a3cbf79242582dd0fdbb
3
+ metadata.gz: 7004e218adeff494276542ea6f2ba7827274af8668808d8621a239230e865527
4
+ data.tar.gz: d8f6097e1d66783c5c45cee8bf1df512fe323e4ccdcd72596f87253ff6f1af49
5
5
  SHA512:
6
- metadata.gz: 43ce4389d83c9a23363c7e1853be9785ff9ac752aae44415e1593a08fdf2691f55a930b4af8712fb51630d2b463a9d21b79597b39c84c0a7e81514de86d41614
7
- data.tar.gz: '08a3670c9ee7c5fca90c98a6e48991c1ef6188a1615054b7f6bc513e8ea6086b7d4f69be346a6165e09c6f71dc5fd55bc3061a677fafc0eadfacb55fdd30e7be'
6
+ metadata.gz: 9b38a8db6689536d0021cc41c712e0d0b5b468b30f9c8d49089fd8af3a75a6d5783b0fd7a9279cb2c277ea3d243ccf56ec60911d38ab1ee1806b7ebcda0de37d
7
+ data.tar.gz: 592918a6380483e92ed9a9119d03585d249bb2975168d8506b52b95cef3bb14b8933f67e21489211d6c344fd47da22f345c3085d7bae0348485b292909232778
@@ -0,0 +1,144 @@
1
+ # Invitation Changelog
2
+
3
+
4
+ ## [0.6.1] - October 1, 2019
5
+
6
+ ### Fix: generator support for rails 6.0
7
+ - fixed migration_version in generators to support rails 5 and above
8
+ - Appraisal entry and gemfile for Rails 6.0.0
9
+ - bumped gemspec to include rails 6.0.0
10
+ - switched from factory_girl to factory_bot
11
+
12
+ [0.6.0]: https://github.com/tomichj/invitation/compare/0.6.0...0.6.1
13
+
14
+
15
+ ## [0.6.0] - May 1, 2019
16
+
17
+ ### Feature: support for rails 6.0
18
+ - added Appraisal entry and gemfile for 6.0.0rc1
19
+ - bumped gemspec to include rails 6.0.0rc1
20
+ - bumped version
21
+
22
+ [0.6.0]: https://github.com/tomichj/invitation/compare/0.5.1...0.6.0
23
+
24
+
25
+ ## [0.5.1] - June 7, 2018
26
+
27
+ ### Feature: support for rails 5.2
28
+ - added Appraisal entry and gemfile for 5.2
29
+ - added rakefile tasks for build and release
30
+ - bumped gemspec to include rails 5.2
31
+ - bumped version
32
+ - added sqlite3.represent_boolean_as_integer = true to dummy app for specs
33
+ - specs now test for http status 201 instead of :success and :created,
34
+ :success was deprecated, switched to 201 for brevity and longevity of test
35
+
36
+ [0.5.1]: https://github.com/tomichj/invitation/compare/0.5.0...0.5.1
37
+
38
+
39
+ ## [0.5.0] - March 12, 2018
40
+
41
+ ### API change
42
+ - `InviteForm` extracted from invites_controller.rb, added at `app/forms/invitation/invite_form.rb`
43
+ - `controllers_generator.rb` now has three targets: `create_controllers`, `create_mailers`, and `create_forms`
44
+ - deleted empty `lib/tasks/invitation_tasks.rake`
45
+
46
+ [0.5.0]: https://github.com/tomichj/invitation/compare/0.4.5...0.5.0
47
+
48
+
49
+ ## [0.4.5] - March 9, 2018
50
+
51
+ ### Bugfix:
52
+ - migration versioned for Rails >= 5
53
+
54
+ [0.4.5]: https://github.com/tomichj/invitation/compare/0.4.4...0.4.5
55
+
56
+
57
+ ## [0.4.4] - September 30, 2017
58
+ - recipient association optional for Rails >= 5
59
+
60
+ [0.4.4]: https://github.com/tomichj/invitation/compare/0.4.3...0.4.4
61
+
62
+
63
+ ## [0.4.3] - July 1, 2017
64
+
65
+ ### API change
66
+ - configuration.user_model now accepts the user class (with a warning), or the user class name (a String)
67
+
68
+ [0.4.3]: https://github.com/tomichj/invitation/compare/0.4.2...0.4.3
69
+
70
+
71
+ ## [0.4.2] - July 1, 2017
72
+
73
+ ### API change
74
+ - accept a string for configuration.user_model and constantize it
75
+
76
+ [0.4.2]: https://github.com/tomichj/invitation/compare/0.4.1...0.4.2
77
+
78
+
79
+ ## [0.4.1] - April 26, 2017
80
+
81
+ ### Bugfix:
82
+ - added case_insensitive_email to template used by install generator
83
+
84
+ [0.4.1]: https://github.com/tomichj/invitation/compare/0.4...0.4.1
85
+
86
+
87
+ ## [0.4] - April 26, 2017
88
+
89
+ ### Feature:
90
+ - added case_sensitive_email configuration option.
91
+
92
+ [0.4]: https://github.com/tomichj/invitation/compare/0.3...0.4
93
+
94
+
95
+ ## [0.3] - March 26, 2017
96
+
97
+ ### Feature:
98
+ - Added support for Rails 5.1
99
+
100
+ [0.3]: https://github.com/tomichj/invitation/compare/0.2...0.3
101
+
102
+
103
+ ## [0.2] - October 17, 2016
104
+
105
+ ### Feature:
106
+ - adding pt-BR locale file and fixing an init bug.
107
+
108
+ [0.2]: https://github.com/tomichj/invitation/compare/0.1.1...0.2
109
+
110
+
111
+ ## [0.1.1] - April 21, 2016
112
+
113
+ ### Internal changes:
114
+ - invites controller now users a Form object, form accepts :email or :emails, builds one invite per email address.
115
+
116
+ [0.1.1]: https://github.com/tomichj/invitation/compare/0.1.0...0.1.1
117
+
118
+
119
+ ## [0.1.0] - April 18, 2016
120
+
121
+ * `invites#create` supports :email or emails:[] in request, via html or json.
122
+ * `invites#create` error message reports emails it failed to invite
123
+ * `invites#create` invite_issued or invite_error messages now 'count' sensitive, e.g. "Invitation issued" vs "Invitations issued"
124
+ * removed after_invite_url from config, after invite user is redirected to invitable's show action
125
+ * added config.routes, set to true by default.
126
+ * fixed invitation view generator packaging
127
+ * significantly more tests
128
+
129
+ [0.1.0]: https://github.com/tomichj/invitation/compare/0.0.2...0.1.0
130
+
131
+
132
+ ## [0.0.2] - April 11, 2016
133
+
134
+ * invites#create supports html or json. Redirects to invitable with html, returns invite (minus token) as json.
135
+ * gemspec dependencies cleaned up
136
+ * documentation updated
137
+
138
+ [0.0.2]: https://github.com/tomichj/invitation/compare/0.0.1...0.0.2
139
+
140
+
141
+ ## 0.0.1 - April 9, 2016
142
+
143
+ Initial release.
144
+
@@ -0,0 +1,59 @@
1
+ # Contributing
2
+
3
+ I love pull requests. I'm trying to keep it as easy as possible to contribute changes. There
4
+ are just a couple of guidelines to follow to help me stay on top of things.
5
+
6
+
7
+ ## Let's talk
8
+
9
+ Whether you're fixing a bug or adding a feature, feel free to talk to me first on
10
+ [twitter](https://twitter.com/JustinTomich). We can make sure the change isn't already
11
+ underway somewhere else.
12
+
13
+
14
+ ## Getting started
15
+
16
+ * Make sure you have a [GitHub account](https://github.com/signup/free)
17
+ * Open a [New Issue](https://github.com/tomichj/invitation/issues) on github for your change,
18
+ assuming one does not already exist. If one already exists, join the conversation.
19
+ * Fork the repository on GitHub.
20
+
21
+ ## Setup
22
+
23
+ Clone the repo:
24
+
25
+ `git clone https://github.com/<your-username>/invitation`
26
+
27
+ CD into your clone and run bundler install:
28
+
29
+ `cd invitation && bundle install`
30
+
31
+ Make sure the tests pass:
32
+
33
+ `rake`
34
+
35
+ Make your change. Add tests for your change. Make sure the tests pass:
36
+
37
+ `rake`
38
+
39
+ I use `rubocop` to maintain ruby coding style. Install and run it like so:
40
+
41
+ ```sh
42
+ gem install rubocop
43
+ rubocop
44
+ ```
45
+
46
+ Once you resolve any issues rubocop finds, you're ready to go. Push your fork and
47
+ [submit a pull request](https://github.com/tomichj/invitation/compare/).
48
+
49
+ The ball is now in my court. I'll try to comment on your pull request within a couple of business days
50
+ (hopefully the same day).
51
+
52
+ Things you can do to increase the speed of acceptance:
53
+
54
+ * talk to me ahead of time
55
+ * write tests
56
+ * follow the [ruby style guide](https://github.com/bbatsov/ruby-style-guide)
57
+ * write a good [commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
58
+
59
+ Thanks very much!
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2016 Justin Tomich
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,378 @@
1
+ # Invitation
2
+
3
+ A Rails gem to issue scoped invitations.
4
+
5
+ Please see the [CHANGELOG] for information on the latest changes.
6
+
7
+ Please use [GitHub Issues] to report bugs. You can contact me directly on twitter at
8
+ [@JustinTomich](https://twitter.com/justintomich).
9
+
10
+ [![Gem Version](https://badge.fury.io/rb/invitation.svg)](https://badge.fury.io/rb/invitation) ![Build status](https://travis-ci.org/tomichj/invitation.svg?branch=master) ![Code Climate](https://codeclimate.com/github/tomichj/invitation/badges/gpa.svg)
11
+
12
+
13
+ ## Overview
14
+
15
+ Allow users to invite others to join an organization or resource. Plenty of gems can issue a 'system-wide' invitation,
16
+ but few offer 'scoped' invitations, giving an invited user access to a particular invitable organization or resource.
17
+
18
+ Invitations are issued via email. You can invite users new to join the system while giving them permissions to
19
+ a resource, or invite existing users by giving them access to a new resource.
20
+
21
+ * a user can invite someone to join an invitable by providing an email address to invite
22
+ * if the user already exists, that user is granted access to the invitable, and a notification email is sent
23
+ * if the user does not exist, sends an email with a link to sign up. When the new user signs up,
24
+ they are added to the invitable resource/organization.
25
+ * the invite grants the invited user access to ONLY the invitable organization they were invited to.
26
+
27
+
28
+ ## Prerequisites
29
+
30
+ * An authentication system with a User model and current_user helper, e.g. https://github.com/tomichj/authenticate
31
+ * Your user model must include an :email attribute.
32
+ * Additional model classes that are resources or organizations you wish to invite users to join, usually with a
33
+ many-to-many relationship to your user model.
34
+ * You probably also want an authorization system to restrict who can issue invitations to particular resources
35
+
36
+ A example user-to-organization system you might be familiar with: Basecamp's concepts of accounts and
37
+ projects (invitables) and users.
38
+
39
+
40
+ ## Install
41
+
42
+ To get started, add Invitation to your `Gemfile` and run `bundle install` to install it:
43
+
44
+ ```ruby
45
+ gem 'invitation'
46
+ ```
47
+
48
+ Then run the invitation install generator:
49
+
50
+ ```sh
51
+ rails generate invitation:install
52
+ ```
53
+
54
+ If your user model is not User, you can optionally specify one: `rails generate invitation:install --model Profile`.
55
+
56
+ The install generator does the following:
57
+
58
+ * Add an initializer at `config/initializers/invitation.rb`, see [Configure](#configure) below.
59
+ * Insert `include Invitation::User` into your `User` model.
60
+ * Create a migration for the Invite class.
61
+
62
+
63
+ Then run the migration that Invitation just generated.
64
+
65
+ ```sh
66
+ rake db:migrate
67
+ ```
68
+
69
+
70
+ ## Configure
71
+
72
+ Override any of these defaults in your application `config/initializers/invitation.rb`.
73
+
74
+ ```ruby
75
+ Invitation.configure do |config|
76
+ config.user_model = '::User'
77
+ config.user_registration_url = ->(params) { Rails.application.routes.url_helpers.sign_up_url(params) }
78
+ config.mailer_sender = 'reply@example.com'
79
+ config.routes = true
80
+ config.case_sensitive_email = true
81
+ end
82
+ ```
83
+
84
+ Configuration parameters are described in detail here: [configuration]
85
+
86
+
87
+ ### Invitable
88
+
89
+ You'll need to configure one or more model classes as `invitables`. Invitables are resources or organizations that
90
+ can be joined with an invite.
91
+
92
+ An `invitable` must have some sort of name for Invitation to use in views and mailers. An invitable needs to
93
+ call a class method, `invitable`, with one of the following options:
94
+ * `named: "String"`
95
+ * `named_by: :some_method_name`.
96
+
97
+ Example: a Company model that users can be invited to join. The companies are identified in invitation emails by
98
+ their `name` attribute:
99
+
100
+ ```ruby
101
+ class Company < ActiveRecord::Base
102
+ invitable named_by: :name
103
+ end
104
+ ```
105
+
106
+
107
+ ### User Registration Controller
108
+
109
+ Your user registration controller must `include Invitation::UserRegistration`. You'll want to invoke `set_invite_token`
110
+ before you execute your `new` action, and `process_invite_token` after your `create` action.
111
+
112
+ If you're using [Authenticate](https://github.com/tomichj/authenticate), for example:
113
+ ```ruby
114
+ class UsersController < Authenticate::UsersController
115
+ include Invitation::UserRegistration
116
+ before_action :set_invite_token, only: [:new]
117
+ after_action :process_invite_token, only: [:create]
118
+ end
119
+ ```
120
+ To pass the invite token on signup, add `invite_token` as a hidden field in your signup form.
121
+
122
+ ## Usage
123
+
124
+ Invitation adds routes to create invitations (GET new_invite and POST invites). Once you've configured
125
+ Invitation and set up an invitable, add a link to new_invite, specifying the the invitable id and type in the link:
126
+
127
+ ```erb
128
+ <%= link_to 'invite a friend',
129
+ new_invite_path(invite: { invitable_id: account.id, invitable_type: 'Account' } ) %>
130
+ ```
131
+
132
+ Invitation includes a simple `invitations#new` view which accepts an email address for a user to invite.
133
+
134
+ When the form is submitted, [invites#create](app/controllers/invitation/invites_controller.rb) will create
135
+ an [invite](app/models/invite.rb) to track the invitation. An email is then sent:
136
+
137
+ * a new user is emailed a link to your user registration page as set in [configuration], with a secure
138
+ invitation link that will be used to 'claim' the invitation when the new user registers
139
+
140
+ * an existing user is emailed a notification to tell them that they've been added to the resource
141
+
142
+
143
+ ### JSON Invitation
144
+
145
+ You can send a JSON request to [invites#create](app/controllers/invitation/invites_controller.rb).
146
+
147
+ * request:
148
+ ```javascript
149
+ invite:
150
+ {
151
+ "email": String,
152
+ "invitable_id": Number,
153
+ "invitable_type": String
154
+ }
155
+ ```
156
+
157
+ or, with an array of multiple `emails`:
158
+
159
+ ```javascript
160
+ invite:
161
+ {
162
+ "emails": [String],
163
+ "invitable_id": Number,
164
+ "invitable_type": String
165
+ }
166
+ ```
167
+
168
+ * response:
169
+ ```javascript
170
+ {
171
+ "id": Number,
172
+ "email": String,
173
+ "sender_id": Number,
174
+ "recipient_id": Number (optional),
175
+ "invitable_id": Number,
176
+ "invitable_type": String,
177
+ }
178
+ ```
179
+
180
+ or, with multiple emails requested, an array of responses:
181
+
182
+ ```javascript
183
+ [{
184
+ "id": Number,
185
+ "email": String,
186
+ "sender_id": Number,
187
+ "recipient_id": Number (optional),
188
+ "invitable_id": Number,
189
+ "invitable_type": String,
190
+ },
191
+ {
192
+ "id": Number,
193
+ "email": String,
194
+ "sender_id": Number,
195
+ "recipient_id": Number (optional),
196
+ "invitable_id": Number,
197
+ "invitable_type": String,
198
+ }]
199
+ ```
200
+
201
+ ## Security
202
+
203
+ Many systems require authorization to issue invitations to a resource. `Invitation` does not handle authorization,
204
+ but is intended to be a simple, easily extended framework upon which you can impose any required authorization scheme.
205
+
206
+ Most implementations will require extending the `InvitationsController`. [See below](#controllers) to read more
207
+ about extending InvitationController.
208
+
209
+ A common use case:
210
+ * every invitable resource has authorization requirements exposed via a method, we'll call it `can_invite?(user)`
211
+ * the current user must be authorized before issuing invitations
212
+
213
+ To implement: extend `InvitesController` and add a before_action to authorize access to the resource or resources. A
214
+ real implementation would probably do something more than just `raise 'unauthorized'`.
215
+
216
+ ```ruby
217
+ # app/controllers/invites_controller.rb
218
+ class InvitesController < Invitation::InvitesController
219
+ before_action :authorize
220
+
221
+ private
222
+
223
+ def authorize
224
+ invitable = load_invitable
225
+ invitable.can_invite?(current_user) or raise 'unauthorized'
226
+ end
227
+
228
+ def load_invitable
229
+ invite_params[:invitable_type].classify.constantize.find(invite_params[:invitable_id])
230
+ end
231
+ end
232
+ ```
233
+
234
+
235
+ ## Overriding Invitation
236
+
237
+
238
+ ### Views
239
+
240
+ You can quickly get started with a rails application using the built-in views. See [app/views](/app/views) for
241
+ the default views. When you want to customize an Invitation view, create your own copy of it in your app.
242
+
243
+ You can use the Invitation view generator to copy the default views and translations
244
+ (see [translations](#translations) below) into your application:
245
+
246
+ ```sh
247
+ $ rails generate invitation:views
248
+ ```
249
+
250
+
251
+ ### Routes
252
+
253
+ Invitation adds routes to your application. See [config/routes.rb](/config/routes.rb) for the default routes.
254
+
255
+ If you want to control and customize the routes, you can turn off the built-in routes in
256
+ the Invitation [configuration] with `config.routes = false` and dump a copy of the default routes into your
257
+ application for modification.
258
+
259
+ To turn off Invitation's built-in routes:
260
+
261
+ ```ruby
262
+ Invitation.configure do |config|
263
+ config.routes = false
264
+ end
265
+ ```
266
+
267
+ You can run a generator to dump a copy of the default routes into your application for modification. The generator
268
+ will also switch off the routes by setting `config.routes = false` in your [configuration].
269
+
270
+ ```sh
271
+ $ rails generate invitation:routes
272
+ ```
273
+
274
+
275
+ ### Controllers
276
+
277
+ You can customize the `invites_controller.rb` and the `invites_mailer.rb`. See [app/controllers](/app/controllers)
278
+ for the controller, and [app/mailers](/app/mailers) for the mailer.
279
+
280
+ To override `invites_controller.rb`, subclass the controller and update your routes to point to your implementation.
281
+
282
+ * subclass the controller:
283
+
284
+ ```ruby
285
+ # app/controllers/invites_controller.rb
286
+ class InvitesController < Invitation::InvitesController
287
+ # render invite screen
288
+ def new
289
+ # ...
290
+ end
291
+ ...
292
+ end
293
+ ```
294
+
295
+ * update your routes to use your new controller.
296
+
297
+ Start by dumping a copy of Invitation's routes to your `config/routes.rb`:
298
+
299
+ ```sh
300
+ $ rails generate invitation:routes
301
+ ```
302
+
303
+ Now update `config/routes.rb`, changing the controller entry so it now points to your `invites` controller instead
304
+ of `invitation/invites`:
305
+
306
+ ```ruby
307
+ resources :invites, controller: 'invites', only: [:new, :create]
308
+ ```
309
+
310
+ You can also use the Invitation controller generator to copy the default controller and mailer into
311
+ your application if you would prefer to more heavily modify the controller.
312
+
313
+ ```sh
314
+ $ rails generate invitation:controllers
315
+ ```
316
+
317
+
318
+ ### Layout
319
+
320
+ Invitation uses your application's default layout. If you would like to change the layout Invitation uses when
321
+ rendering views, you can either deploy copies of the controllers and customize them, or you can specify
322
+ the layout in an initializer. This should be done in a to_prepare callback in `config/application.rb`
323
+ because it's executed once in production and before each request in development.
324
+
325
+ You can specify the layout per-controller:
326
+
327
+ ```ruby
328
+ config.to_prepare do
329
+ Invitation::InvitesController.layout 'my_invites_layout'
330
+ end
331
+ ```
332
+
333
+
334
+ ### Translations
335
+
336
+ All flash messages and email subject lines are stored in [i18n translations](http://guides.rubyonrails.org/i18n.html).
337
+ Override them like any other i18n translation.
338
+
339
+ See [config/locales/invitation.en.yml](/config/locales/invitation.en.yml) for the default messages.
340
+
341
+
342
+ ## Thanks
343
+
344
+ This gem was inspired by and draws heavily from:
345
+ * https://gist.github.com/jlegosama/9026919
346
+
347
+ With additional inspiration from:
348
+ * https://github.com/scambra/devise_invitable
349
+
350
+ ## Contributors
351
+
352
+ Many thanks to:
353
+
354
+ * [augustocbx](https://github.com/augustocbx) added pt-BR locale file and fixed an init bug
355
+ * [vincentwoo](https://github.com/vincentwoo/) raising the security bar, & bumping Invitation to rails 5.1
356
+ * [conarro](https://github.com/conarro) added case_sensitive_email configuration option
357
+ * [itkin](https://github.com/itkin) bugfix, stringified configuration.user_model
358
+ * [thesubr00t](https://github.com/thesubr00t) made recipient association optional for rails 5+
359
+
360
+ ## Future changes
361
+
362
+ Possible future changes, some of which may be breaking:
363
+
364
+ * accepted flag, so we can scope invites by accepted vs not yet accepted
365
+ * expiration date - invites expire, scope expired by not expired
366
+ * move all view text to locale
367
+ * issue many invitations at once?
368
+ * dynamic user name lookup? requires JS, CSS
369
+ * add JS support to invites#create
370
+
371
+ ## License
372
+
373
+ This project rocks and uses MIT-LICENSE.
374
+
375
+
376
+ [configuration]: lib/invitation/configuration.rb
377
+ [CHANGELOG]: CHANGELOG.md
378
+ [GitHub Issues]: https://github.com/tomichj/invitation/issues
@@ -69,9 +69,13 @@ module Invitation
69
69
  end.join('::')
70
70
  end
71
71
 
72
+ def rails5_and_up?
73
+ Rails::VERSION::MAJOR >= 5
74
+ end
75
+
72
76
  def migration_version
73
- if Rails.version.start_with? '5'
74
- "[#{ActiveRecord::Migration.current_version}]"
77
+ if rails5_and_up?
78
+ "[#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}]"
75
79
  end
76
80
  end
77
81
  end
@@ -14,7 +14,7 @@ module Invitation
14
14
  class Engine < ::Rails::Engine
15
15
  config.generators do |g|
16
16
  g.test_framework :rspec
17
- g.fixture_replacement :factory_girl, dir: 'spec/factories'
17
+ g.fixture_replacement :factory_bot, dir: 'spec/factories'
18
18
  end
19
19
  end
20
20
  end
@@ -1,3 +1,3 @@
1
1
  module Invitation
2
- VERSION = '0.6.0'.freeze
2
+ VERSION = '0.6.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: invitation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Tomich
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-01 00:00:00.000000000 Z
11
+ date: 2019-10-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -17,9 +17,6 @@ dependencies:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '4.0'
20
- - - "<="
21
- - !ruby/object:Gem::Version
22
- version: '6.0'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
@@ -27,23 +24,20 @@ dependencies:
27
24
  - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: '4.0'
30
- - - "<="
31
- - !ruby/object:Gem::Version
32
- version: '6.0'
33
27
  - !ruby/object:Gem::Dependency
34
- name: factory_girl
28
+ name: factory_bot
35
29
  requirement: !ruby/object:Gem::Requirement
36
30
  requirements:
37
31
  - - "~>"
38
32
  - !ruby/object:Gem::Version
39
- version: '4.8'
33
+ version: 4.11.1
40
34
  type: :development
41
35
  prerelease: false
42
36
  version_requirements: !ruby/object:Gem::Requirement
43
37
  requirements:
44
38
  - - "~>"
45
39
  - !ruby/object:Gem::Version
46
- version: '4.8'
40
+ version: 4.11.1
47
41
  - !ruby/object:Gem::Dependency
48
42
  name: rspec-rails
49
43
  requirement: !ruby/object:Gem::Requirement
@@ -205,6 +199,10 @@ executables: []
205
199
  extensions: []
206
200
  extra_rdoc_files: []
207
201
  files:
202
+ - CHANGELOG.md
203
+ - CONTRIBUTING.md
204
+ - LICENSE
205
+ - README.md
208
206
  - Rakefile
209
207
  - app/controllers/invitation/invites_controller.rb
210
208
  - app/forms/invitation/invite_form.rb