date_book 0.0.6 → 0.1.0
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.
- 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
|