date_book 0.0.6 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +9 -1
- data/.rubocop_todo.yml +2 -1
- data/.travis.yml +3 -0
- data/Gemfile +16 -4
- data/Gemfile.lock +14 -2
- data/VERSION +1 -1
- data/app/assets/javascripts/date_book/calendar_events.js +3 -3
- data/app/assets/stylesheets/date_book.css.scss +31 -2
- data/app/controllers/date_book/calendars_controller.rb +30 -19
- data/app/controllers/date_book/date_book_controller.rb +1 -1
- data/app/controllers/date_book/events_controller.rb +60 -62
- data/app/controllers/date_book/graphql_controller.rb +10 -11
- data/app/graphql/date_book_schema.rb +4 -4
- data/app/graphql/types/calendar_type.rb +4 -2
- data/app/graphql/types/date_time_type.rb +9 -5
- data/app/graphql/types/event_occurrence_type.rb +4 -2
- data/app/graphql/types/event_type.rb +4 -2
- data/app/graphql/types/mutation_type.rb +3 -1
- data/app/graphql/types/query_type.rb +12 -26
- data/app/helpers/date_book/application_helper.rb +4 -7
- data/app/helpers/date_book/events_helper.rb +43 -23
- data/app/views/date_book/application/_date_range.html.haml +3 -3
- data/app/views/date_book/calendars/index.html.haml +19 -3
- data/app/views/date_book/calendars/show.html.haml +29 -4
- data/app/views/date_book/events/_event.json.jbuilder +3 -1
- data/app/views/date_book/events/_form.html.haml +4 -4
- data/app/views/date_book/events/_occurrence_dates.html.haml +3 -3
- data/app/views/date_book/events/fields/_date.html.haml +1 -1
- data/app/views/date_book/events/fields/_day.html.haml +1 -1
- data/app/views/date_book/events/fields/_day_of_week.html.haml +3 -3
- data/app/views/date_book/events/fields/_duration.html.haml +3 -3
- data/app/views/date_book/events/fields/_interval.html.haml +1 -1
- data/app/views/date_book/events/fields/_time.html.haml +1 -1
- data/app/views/date_book/events/index.html.haml +1 -1
- data/app/views/date_book/events/rules/_daily.html.haml +3 -3
- data/app/views/date_book/events/rules/_monthly.html.haml +4 -4
- data/app/views/date_book/events/rules/_singular.html.haml +3 -3
- data/app/views/date_book/events/rules/_weekly.html.haml +4 -4
- data/app/views/date_book/events/show.html.haml +1 -1
- data/app/views/layouts/_date_book_scripts.html.haml +2 -4
- data/config/locales/en.yml +2 -0
- data/config/routes.rb +1 -1
- data/date_book.gemspec +25 -22
- data/db/migrate/20170807133845_create_calendars.rb +3 -0
- data/db/migrate/20170807133846_create_events.rb +3 -0
- data/db/migrate/20170807133847_create_schedules.rb +9 -6
- data/db/migrate/20170807133848_add_fields_to_schedule.rb +3 -0
- data/db/migrate/20170807133849_create_event_occurrences.rb +4 -3
- data/db/migrate/20170807133850_add_fields_to_event_occurrences.rb +3 -0
- data/lib/date_book.rb +11 -2
- data/lib/date_book/concerns/ability.rb +9 -12
- data/lib/date_book/concerns/acts_as_calendar.rb +5 -6
- data/lib/date_book/concerns/acts_as_event.rb +30 -9
- data/lib/date_book/concerns/acts_as_event_occurrence.rb +21 -9
- data/lib/date_book/concerns/acts_as_ownable.rb +9 -3
- data/lib/date_book/concerns/acts_as_owner.rb +5 -6
- data/lib/date_book/concerns/acts_as_schedule.rb +14 -7
- data/lib/date_book/configuration.rb +14 -11
- data/lib/date_book/engine.rb +7 -5
- data/lib/date_book/version.rb +2 -0
- data/lib/generators/date_book/install/install_generator.rb +27 -29
- data/lib/generators/date_book/install/templates/app/models/calendar.rb +4 -1
- data/lib/generators/date_book/install/templates/app/models/event.rb +4 -1
- data/lib/generators/date_book/install/templates/app/models/event_occurrence.rb +4 -1
- data/lib/generators/date_book/install/templates/app/models/schedule.rb +4 -1
- data/spec/abilities/event_spec.rb +1 -1
- data/spec/controllers/date_book/calendars_controller_spec.rb +48 -20
- data/spec/controllers/date_book/events_controller_spec.rb +145 -39
- data/spec/dummy/app/models/calendar.rb +3 -1
- data/spec/dummy/app/models/event.rb +3 -1
- data/spec/dummy/app/models/event_occurrence.rb +3 -1
- data/spec/dummy/app/models/role.rb +7 -5
- data/spec/dummy/app/models/schedule.rb +3 -1
- data/spec/dummy/app/models/user.rb +3 -3
- data/spec/dummy/config/initializers/devise.rb +61 -40
- data/spec/dummy/config/initializers/high_voltage.rb +2 -0
- data/spec/dummy/config/initializers/rolify.rb +5 -2
- data/spec/dummy/config/routes.rb +6 -9
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/20170728171103_create_users_table.rb +2 -0
- data/spec/dummy/db/migrate/20170807134122_add_devise_to_users.rb +4 -3
- data/spec/dummy/db/migrate/20170807134128_rolify_create_roles.rb +6 -4
- data/spec/dummy/db/migrate/{20170808150915_create_calendars.date_book.rb → 20170808200808_create_calendars.date_book.rb} +3 -0
- data/spec/dummy/db/migrate/{20170808150916_create_events.date_book.rb → 20170808200809_create_events.date_book.rb} +3 -0
- data/spec/dummy/db/migrate/{20170808150917_create_schedules.date_book.rb → 20170808200810_create_schedules.date_book.rb} +9 -6
- data/spec/dummy/db/migrate/{20170808150918_add_fields_to_schedule.date_book.rb → 20170808200811_add_fields_to_schedule.date_book.rb} +3 -0
- data/spec/dummy/db/migrate/{20170808150919_create_event_occurrences.date_book.rb → 20170808200812_create_event_occurrences.date_book.rb} +4 -3
- data/spec/dummy/db/migrate/{20170808150920_add_fields_to_event_occurrences.date_book.rb → 20170808200813_add_fields_to_event_occurrences.date_book.rb} +3 -0
- data/spec/dummy/db/schema.rb +1 -1
- data/spec/dummy/db/seeds/calendars.seeds.rb +2 -1
- data/spec/dummy/db/seeds/events.seeds.rb +5 -5
- data/spec/dummy/db/seeds/users.seeds.rb +3 -1
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/lib/basic_benchmark.rb +2 -0
- data/spec/factories/calendars.rb +2 -0
- data/spec/factories/events.rb +2 -0
- data/spec/factories/roles.rb +2 -1
- data/spec/factories/users.rb +2 -0
- data/spec/features/calendars_spec.rb +47 -5
- data/spec/features/events_spec.rb +35 -9
- data/spec/helpers/date_book/application_helper_spec.rb +32 -0
- data/spec/helpers/date_book/events_helper_spec.rb +181 -13
- data/spec/models/calendar_spec.rb +3 -1
- data/spec/models/event_spec.rb +3 -1
- data/spec/models/role_spec.rb +1 -0
- data/spec/rails_helper.rb +6 -1
- data/spec/requests/date_book/api_spec.rb +76 -0
- data/spec/routing/date_book/calendars_routing_spec.rb +4 -2
- data/spec/routing/date_book/events_routing_spec.rb +48 -11
- data/spec/support/controller_behaviors.rb +2 -0
- data/spec/support/controller_macros.rb +3 -1
- data/spec/support/factory_girl.rb +2 -0
- data/spec/support/feature_behaviors.rb +9 -9
- data/spec/support/loaded_site.rb +2 -0
- data/spec/support/loaded_site/calendars.rb +2 -0
- data/spec/support/loaded_site/events.rb +3 -1
- data/spec/support/loaded_site/users.rb +2 -0
- data/spec/support/request_behaviors.rb +12 -63
- data/spec/support/shared_connection.rb +2 -0
- data/spec/support/utilities.rb +6 -5
- metadata +79 -42
- data/app/graphql/types/profile_type.rb +0 -7
- data/app/helpers/date_book/calendar_helper.rb +0 -4
- data/app/views/date_book/application/_all_day_checkbox.html.haml +0 -1
- data/bin/rails +0 -15
- data/spec/helpers/date_book/calendar_helper_spec.rb +0 -17
- data/spec/requests/date_book/events_spec.rb +0 -56
@@ -1,13 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
class Role < ApplicationRecord
|
2
|
-
has_and_belongs_to_many :users, :
|
4
|
+
has_and_belongs_to_many :users, join_table: :users_roles
|
3
5
|
|
4
6
|
belongs_to :resource,
|
5
|
-
:
|
6
|
-
:
|
7
|
+
polymorphic: true,
|
8
|
+
optional: true
|
7
9
|
|
8
10
|
validates :resource_type,
|
9
|
-
:
|
10
|
-
:
|
11
|
+
inclusion: { in: Rolify.resource_types },
|
12
|
+
allow_nil: true
|
11
13
|
|
12
14
|
scopify
|
13
15
|
end
|
@@ -1,9 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
class User < ApplicationRecord
|
2
4
|
rolify
|
3
5
|
acts_as_owner
|
4
|
-
|
5
|
-
|
6
|
-
|
6
|
+
|
7
7
|
# Include default devise modules. Others available are:
|
8
8
|
# :confirmable, :lockable, :timeoutable and :omniauthable
|
9
9
|
devise :database_authenticatable, :registerable,
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Use this hook to configure devise mailer, warden hooks and so forth.
|
2
4
|
# Many of these configuration options can be set straight in your model.
|
3
5
|
Devise.setup do |config|
|
@@ -6,13 +8,15 @@ Devise.setup do |config|
|
|
6
8
|
# confirmation, reset password and unlock tokens in the database.
|
7
9
|
# Devise will use the `secret_key_base` as its `secret_key`
|
8
10
|
# by default. You can change it below and use your own secret key.
|
9
|
-
# config.secret_key = '
|
11
|
+
# config.secret_key = '73c6ea90df6ed7a951ee087c5ba6a194eb9fb783bc54b40f2700b'\
|
12
|
+
# 'bc94b489dbcb3e47a92de64e192ab166c81bc5e31f754049f99d0'\
|
13
|
+
# 'd592c7b1f103ca4b213866'
|
10
14
|
|
11
15
|
# ==> Mailer Configuration
|
12
16
|
# Configure the e-mail address which will be shown in Devise::Mailer,
|
13
17
|
# note that it will be overwritten if you use your own mailer class
|
14
18
|
# with default "from" parameter.
|
15
|
-
config.mailer_sender = '
|
19
|
+
config.mailer_sender = 'do-not-reply@gemvein.com'
|
16
20
|
|
17
21
|
# Configure the class responsible to send e-mails.
|
18
22
|
# config.mailer = 'Devise::Mailer'
|
@@ -31,16 +35,18 @@ Devise.setup do |config|
|
|
31
35
|
# just :email. You can configure it to use [:username, :subdomain], so for
|
32
36
|
# authenticating a user, both parameters are required. Remember that those
|
33
37
|
# parameters are used only when authenticating and not when retrieving from
|
34
|
-
# session. If you need permissions, you should implement that in a before
|
38
|
+
# session. If you need permissions, you should implement that in a before
|
39
|
+
# filter.
|
35
40
|
# You can also supply a hash where the value is a boolean determining whether
|
36
41
|
# or not authentication should be aborted when the value is not present.
|
37
42
|
# config.authentication_keys = [:email]
|
38
43
|
|
39
|
-
# Configure parameters from the request object used for authentication. Each
|
40
|
-
# given should be a request method and it will automatically be passed
|
41
|
-
# find_for_authentication method and considered in your model lookup.
|
42
|
-
# if you set :request_keys to [:subdomain], :subdomain will be
|
43
|
-
# The same considerations mentioned for
|
44
|
+
# Configure parameters from the request object used for authentication. Each
|
45
|
+
# entry given should be a request method and it will automatically be passed
|
46
|
+
# to the find_for_authentication method and considered in your model lookup.
|
47
|
+
# For instance, if you set :request_keys to [:subdomain], :subdomain will be
|
48
|
+
# used on authentication. The same considerations mentioned for
|
49
|
+
# authentication_keys also apply to request_keys.
|
44
50
|
# config.request_keys = []
|
45
51
|
|
46
52
|
# Configure which authentication keys should be case-insensitive.
|
@@ -50,20 +56,24 @@ Devise.setup do |config|
|
|
50
56
|
|
51
57
|
# Configure which authentication keys should have whitespace stripped.
|
52
58
|
# These keys will have whitespace before and after removed upon creating or
|
53
|
-
# modifying a user and when used to authenticate or find a user. Default is
|
59
|
+
# modifying a user and when used to authenticate or find a user. Default is
|
60
|
+
# :email.
|
54
61
|
config.strip_whitespace_keys = [:email]
|
55
62
|
|
56
63
|
# Tell if authentication through request.params is enabled. True by default.
|
57
|
-
# It can be set to an array that will enable params authentication only for
|
58
|
-
# given strategies, for example,
|
59
|
-
# enable it only for
|
64
|
+
# It can be set to an array that will enable params authentication only for
|
65
|
+
# the given strategies, for example,
|
66
|
+
# `config.params_authenticatable = [:database]` will enable it only for
|
67
|
+
# database (email + password) authentication.
|
60
68
|
# config.params_authenticatable = true
|
61
69
|
|
62
70
|
# Tell if authentication through HTTP Auth is enabled. False by default.
|
63
71
|
# It can be set to an array that will enable http authentication only for the
|
64
|
-
# given strategies, for example, `config.http_authenticatable = [:database]`
|
65
|
-
# enable it only for database authentication. The supported strategies
|
66
|
-
# :
|
72
|
+
# given strategies, for example, `config.http_authenticatable = [:database]`
|
73
|
+
# will enable it only for database authentication. The supported strategies
|
74
|
+
# are:
|
75
|
+
# :database = Support basic authentication with authentication key +
|
76
|
+
# password
|
67
77
|
# config.http_authenticatable = false
|
68
78
|
|
69
79
|
# If 401 status code should be returned for AJAX requests. True by default.
|
@@ -98,17 +108,21 @@ Devise.setup do |config|
|
|
98
108
|
|
99
109
|
# ==> Configuration for :database_authenticatable
|
100
110
|
# For bcrypt, this is the cost for hashing the password and defaults to 11. If
|
101
|
-
# using other algorithms, it sets how many times you want the password to be
|
111
|
+
# using other algorithms, it sets how many times you want the password to be
|
112
|
+
# hashed.
|
102
113
|
#
|
103
|
-
# Limiting the stretches to just one in testing will increase the performance
|
104
|
-
# your test suite dramatically. However, it is STRONGLY RECOMMENDED to not
|
105
|
-
# a value less than 10 in other environments. Note that, for bcrypt (the
|
106
|
-
# algorithm), the cost increases exponentially with the number of
|
107
|
-
# a value of 20 is already extremely slow: approx. 60 seconds
|
114
|
+
# Limiting the stretches to just one in testing will increase the performance
|
115
|
+
# of your test suite dramatically. However, it is STRONGLY RECOMMENDED to not
|
116
|
+
# use a value less than 10 in other environments. Note that, for bcrypt (the
|
117
|
+
# default algorithm), the cost increases exponentially with the number of
|
118
|
+
# stretches (e.g. a value of 20 is already extremely slow: approx. 60 seconds
|
119
|
+
# for 1 calculation).
|
108
120
|
config.stretches = Rails.env.test? ? 1 : 11
|
109
121
|
|
110
122
|
# Set up a pepper to generate the hashed password.
|
111
|
-
# config.pepper = '
|
123
|
+
# config.pepper = 'e5d2d762bb03e0c932343fc3afcd844388592b27c8802a056e8162083'\
|
124
|
+
# '8e4f3a7bc3f246da13999c3f5993761132732443d87b302c8acc3b38a'\
|
125
|
+
# 'e784c1921f660e'
|
112
126
|
|
113
127
|
# Send a notification to the original email when the user's email is changed.
|
114
128
|
# config.send_email_changed_notification = false
|
@@ -133,9 +147,10 @@ Devise.setup do |config|
|
|
133
147
|
# config.confirm_within = 3.days
|
134
148
|
|
135
149
|
# If true, requires any email changes to be confirmed (exactly the same way as
|
136
|
-
# initial account confirmation) to be applied. Requires additional
|
137
|
-
# db field (see migrations). Until confirmed, new email is
|
138
|
-
# unconfirmed_email column, and copied to email column on successful
|
150
|
+
# initial account confirmation) to be applied. Requires additional
|
151
|
+
# unconfirmed_email db field (see migrations). Until confirmed, new email is
|
152
|
+
# stored in unconfirmed_email column, and copied to email column on successful
|
153
|
+
# confirmation.
|
139
154
|
config.reconfirmable = true
|
140
155
|
|
141
156
|
# Defines which key will be used when confirming an account
|
@@ -171,7 +186,8 @@ Devise.setup do |config|
|
|
171
186
|
|
172
187
|
# ==> Configuration for :lockable
|
173
188
|
# Defines which strategy will be used to lock an account.
|
174
|
-
# :failed_attempts = Locks an account after a number of failed attempts to
|
189
|
+
# :failed_attempts = Locks an account after a number of failed attempts to
|
190
|
+
# sign in.
|
175
191
|
# :none = No lock strategy. You should handle locking by yourself.
|
176
192
|
# config.lock_strategy = :failed_attempts
|
177
193
|
|
@@ -180,7 +196,8 @@ Devise.setup do |config|
|
|
180
196
|
|
181
197
|
# Defines which strategy will be used to unlock an account.
|
182
198
|
# :email = Sends an unlock link to the user email
|
183
|
-
# :time = Re-enables login after a certain amount of time (see :unlock_in
|
199
|
+
# :time = Re-enables login after a certain amount of time (see :unlock_in
|
200
|
+
# below)
|
184
201
|
# :both = Enables both strategies
|
185
202
|
# :none = No unlock strategy. You should handle unlocking by yourself.
|
186
203
|
# config.unlock_strategy = :both
|
@@ -205,24 +222,26 @@ Devise.setup do |config|
|
|
205
222
|
# change their passwords.
|
206
223
|
config.reset_password_within = 6.hours
|
207
224
|
|
208
|
-
# When set to false, does not sign a user in automatically after their
|
209
|
-
# reset. Defaults to true, so a user is signed in automatically
|
225
|
+
# When set to false, does not sign a user in automatically after their
|
226
|
+
# password is reset. Defaults to true, so a user is signed in automatically
|
227
|
+
# after a reset.
|
210
228
|
# config.sign_in_after_reset_password = true
|
211
229
|
|
212
230
|
# ==> Configuration for :encryptable
|
213
|
-
# Allow you to use another hashing or encryption algorithm besides bcrypt
|
231
|
+
# Allow you to use another hashing or encryption algorithm besides bcrypt
|
232
|
+
# (default).
|
214
233
|
# You can use :sha1, :sha512 or algorithms from others authentication tools as
|
215
|
-
# :clearance_sha1, :authlogic_sha512 (then you should set stretches above to
|
216
|
-
# for default behavior) and :restful_authentication_sha1 (then you should
|
217
|
-
# stretches to 10, and copy REST_AUTH_SITE_KEY to pepper).
|
234
|
+
# :clearance_sha1, :authlogic_sha512 (then you should set stretches above to
|
235
|
+
# 20 for default behavior) and :restful_authentication_sha1 (then you should
|
236
|
+
# set stretches to 10, and copy REST_AUTH_SITE_KEY to pepper).
|
218
237
|
#
|
219
238
|
# Require the `devise-encryptable` gem when using anything other than bcrypt
|
220
239
|
# config.encryptor = :sha512
|
221
240
|
|
222
241
|
# ==> Scopes configuration
|
223
|
-
# Turn scoped views on. Before rendering "sessions/new", it will first check
|
224
|
-
# "users/sessions/new". It's turned off by default because it's slower if
|
225
|
-
# are using only default views.
|
242
|
+
# Turn scoped views on. Before rendering "sessions/new", it will first check
|
243
|
+
# for "users/sessions/new". It's turned off by default because it's slower if
|
244
|
+
# you are using only default views.
|
226
245
|
# config.scoped_views = false
|
227
246
|
|
228
247
|
# Configure the default scope given to Warden. By default it's the first
|
@@ -254,7 +273,8 @@ Devise.setup do |config|
|
|
254
273
|
|
255
274
|
# ==> Warden configuration
|
256
275
|
# If you want to use other strategies, that are not supported by Devise, or
|
257
|
-
# change the failure app, you can configure them inside the config.warden
|
276
|
+
# change the failure app, you can configure them inside the config.warden
|
277
|
+
# block.
|
258
278
|
#
|
259
279
|
# config.warden do |manager|
|
260
280
|
# manager.intercept_401 = false
|
@@ -262,9 +282,10 @@ Devise.setup do |config|
|
|
262
282
|
# end
|
263
283
|
|
264
284
|
# ==> Mountable engine configurations
|
265
|
-
# When using Devise inside an engine, let's call it `MyEngine`, and this
|
266
|
-
# is mountable, there are some extra configurations to be taken into
|
267
|
-
# The following options are available, assuming the engine is mounted
|
285
|
+
# When using Devise inside an engine, let's call it `MyEngine`, and this
|
286
|
+
# engine is mountable, there are some extra configurations to be taken into
|
287
|
+
# account. The following options are available, assuming the engine is mounted
|
288
|
+
# as:
|
268
289
|
#
|
269
290
|
# mount MyEngine, at: '/my_engine'
|
270
291
|
#
|
@@ -1,7 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
Rolify.configure do |config|
|
2
4
|
# By default ORM adapter is ActiveRecord. uncomment to use mongoid
|
3
5
|
# config.use_mongoid
|
4
6
|
|
5
|
-
# Dynamic shortcuts for User class (user.is_admin? like methods).
|
7
|
+
# Dynamic shortcuts for User class (user.is_admin? like methods).
|
8
|
+
# Default is: false
|
6
9
|
# config.use_dynamic_shortcuts
|
7
|
-
end
|
10
|
+
end
|
data/spec/dummy/config/routes.rb
CHANGED
@@ -1,17 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
Rails.application.routes.draw do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
4
|
mount DateBook::Engine => '/date_book', as: 'date_book'
|
10
5
|
if Rails.env.development?
|
11
|
-
mount
|
6
|
+
mount(
|
7
|
+
GraphiQL::Rails::Engine,
|
8
|
+
at: '/graphiql',
|
9
|
+
graphql_path: '/date_book/api'
|
10
|
+
)
|
12
11
|
end
|
13
|
-
|
14
|
-
|
12
|
+
|
15
13
|
devise_for :users
|
16
|
-
|
17
14
|
end
|
Binary file
|
@@ -1,9 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
class AddDeviseToUsers < ActiveRecord::Migration[5.1]
|
2
4
|
def self.up
|
3
5
|
change_table :users do |t|
|
4
6
|
## Database authenticatable
|
5
|
-
t.string :email, null: false, default:
|
6
|
-
t.string :encrypted_password, null: false, default:
|
7
|
+
t.string :email, null: false, default: ''
|
8
|
+
t.string :encrypted_password, null: false, default: ''
|
7
9
|
|
8
10
|
## Recoverable
|
9
11
|
t.string :reset_password_token
|
@@ -30,7 +32,6 @@ class AddDeviseToUsers < ActiveRecord::Migration[5.1]
|
|
30
32
|
# t.string :unlock_token # Only if unlock strategy is :email or :both
|
31
33
|
# t.datetime :locked_at
|
32
34
|
|
33
|
-
|
34
35
|
# Uncomment below if timestamps were not included in your original model.
|
35
36
|
# t.timestamps null: false
|
36
37
|
end
|
@@ -1,19 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
class RolifyCreateRoles < ActiveRecord::Migration[5.1]
|
2
4
|
def change
|
3
5
|
create_table(:roles) do |t|
|
4
6
|
t.string :name
|
5
|
-
t.references :resource, :
|
7
|
+
t.references :resource, polymorphic: true
|
6
8
|
|
7
9
|
t.timestamps
|
8
10
|
end
|
9
11
|
|
10
|
-
create_table(:users_roles, :
|
12
|
+
create_table(:users_roles, id: false) do |t|
|
11
13
|
t.references :user
|
12
14
|
t.references :role
|
13
15
|
end
|
14
16
|
|
15
17
|
add_index(:roles, :name)
|
16
|
-
add_index(:roles, [
|
17
|
-
add_index(:users_roles, [
|
18
|
+
add_index(:roles, %i[name resource_type resource_id])
|
19
|
+
add_index(:users_roles, %i[user_id role_id])
|
18
20
|
end
|
19
21
|
end
|
@@ -1,21 +1,24 @@
|
|
1
1
|
# This migration comes from date_book (originally 20170807133847)
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
# Migration to create the `schedules` table used by Schedulable
|
2
5
|
class CreateSchedules < ActiveRecord::Migration[5.1]
|
3
6
|
def self.up
|
4
7
|
create_table :schedules do |t|
|
5
8
|
t.references :schedulable, polymorphic: true
|
6
|
-
|
9
|
+
|
7
10
|
t.date :date
|
8
11
|
t.time :time
|
9
|
-
|
12
|
+
|
10
13
|
t.string :rule
|
11
14
|
t.string :interval
|
12
|
-
|
15
|
+
|
13
16
|
t.text :day
|
14
17
|
t.text :day_of_week
|
15
|
-
|
18
|
+
|
16
19
|
t.datetime :until
|
17
20
|
t.integer :count
|
18
|
-
|
21
|
+
|
19
22
|
t.timestamps
|
20
23
|
end
|
21
24
|
end
|
@@ -23,4 +26,4 @@ class CreateSchedules < ActiveRecord::Migration[5.1]
|
|
23
26
|
def self.down
|
24
27
|
drop_table :schedules
|
25
28
|
end
|
26
|
-
end
|
29
|
+
end
|
@@ -1,4 +1,7 @@
|
|
1
1
|
# This migration comes from date_book (originally 20170807133848)
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
# Migration to add our fields to schedule
|
2
5
|
class AddFieldsToSchedule < ActiveRecord::Migration[5.1]
|
3
6
|
def change
|
4
7
|
add_column :schedules, :duration, :integer, default: 3600
|
@@ -1,17 +1,18 @@
|
|
1
1
|
# This migration comes from date_book (originally 20170807133849)
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
# Migration to add `event_occurrences` table, used by Schedulable
|
2
5
|
class CreateEventOccurrences < ActiveRecord::Migration[5.1]
|
3
6
|
def self.up
|
4
7
|
create_table :event_occurrences do |t|
|
5
|
-
|
6
8
|
t.references :schedulable, polymorphic: true
|
7
9
|
t.datetime :date
|
8
10
|
|
9
11
|
t.timestamps
|
10
|
-
|
11
12
|
end
|
12
13
|
end
|
13
14
|
|
14
15
|
def self.down
|
15
16
|
drop_table :event_occurrences
|
16
17
|
end
|
17
|
-
end
|
18
|
+
end
|