has_friendship 1.1.8 → 1.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e20071df795f101aa2094be0905f86da5ad60d054db8c53273d8aab2f2ae72e2
4
- data.tar.gz: dcabee55a10aa221ef939e4cb16c49e5d34dcbf8d42bfb1b3d671f95ce941291
3
+ metadata.gz: c88cce7cf824cf2d39d31e64367971f3bbbffd5bd7a26a48a93ed185070333b8
4
+ data.tar.gz: b70eead1df81b0bd3ef2bb66768c62b7f202a2a66bba6bf45da1132ff92cba94
5
5
  SHA512:
6
- metadata.gz: 181496a60ca7f54a628b21b1452433ab008b4233f08dabc67efbcd3db2b06b45a22efc48f392adab45168f8410bdb94770c7bdb741d227fb64b09907f75ff103
7
- data.tar.gz: 549f33d9e1511faaa528200985231efbc3f841fecb10fa2c604758b14e82b61648647b3479fee4cc47c2ed4ed24021fe83b79934f10fa18f535cc1bf60743ba0
6
+ metadata.gz: 441c8b09e56cad0b242dc8b0966ee9ff1b6eb452f5a2079cf680ebad68f19a9d2d7205e51f28c4cae8e42e4ccd99c098298b8cf2a4e4c8d37adf49ea47bcb57f
7
+ data.tar.gz: 27bb2c1c8e447ccd13afcda01ee7ecd833964bdd0b78e7d15c91df625c99c416fecf286dc077e46cb55e5d5658f3cb9e0c507d2842a8f34da9d65419127aa62e
@@ -10,7 +10,16 @@ AddUniqueIndexToFriendships.class_eval do
10
10
  def self.up
11
11
  return if index_exists?(:friendships, [:friendable_id, :friend_id])
12
12
 
13
- add_index :friendships, [:friendable_id, :friend_id], unique: true, algorithm: :concurrently
13
+ options = { unique: true }
14
+
15
+ adapter_name = connection.adapter_name.downcase
16
+ if adapter_name.include?('mysql') || adapter_name.include?('postgres')
17
+ adapter_name.include?('postgis')
18
+ # These are the only DB adapters that support an index algorithm.
19
+ options[:algorithm] = :concurrently
20
+ end
21
+
22
+ add_index :friendships, [:friendable_id, :friend_id], **options
14
23
  end
15
24
 
16
25
  def self.down
@@ -1,5 +1,27 @@
1
1
  module HasFriendship
2
2
  class Engine < ::Rails::Engine
3
+ # Don't bother with isolate_namespace; we're only working with
4
+ # one table here.
5
+ #
3
6
  # isolate_namespace HasFriendship
7
+
8
+ #
9
+ # NOTE ABOUT DATABASE MIGRATIONS
10
+ #
11
+ # This Gem uses the `has_friendship:install:migrations` Rake task,
12
+ # which is automatically provided by Rails::Engine. That Rake task
13
+ # will copy the migration files from the Gem's db/migrate/
14
+ # directory into the host app (with newly-generated timestamps).
15
+ #
16
+ # We use this `install:migrations` approach to provide developer
17
+ # control. The application developer must be allowed to inspect
18
+ # and modify the migration files (e.g. to change the foreign key
19
+ # type from INTEGER to a UUID) before running `db:migrate`.
20
+ #
21
+ # Do not use the Rails Engine's `initializer :append_migrations`
22
+ # feature in this Gem. Otherwise, the application developer would
23
+ # loose that control.
24
+ #
25
+
4
26
  end
5
27
  end
@@ -1,4 +1,6 @@
1
1
  module HasFriendship
2
+ FRIENDSHIP_ENUM_VALUES = { pending: 0, requested: 1, accepted: 2, blocked: 3 }
3
+
2
4
  class Friendship < ActiveRecord::Base
3
5
  validate :satisfy_custom_conditions
4
6
 
@@ -10,8 +12,20 @@ module HasFriendship
10
12
  friendable.try(:on_friendship_destroyed, record)
11
13
  end
12
14
 
13
- enum status: { pending: 0, requested: 1, accepted: 2, blocked: 3 } do
15
+ attr_reader :status_was
16
+
17
+ if Rails.gem_version >= Gem::Version.new('7.0')
18
+ stats_def = [ :status, FRIENDSHIP_ENUM_VALUES ]
19
+ else
20
+ stats_def = [ status: FRIENDSHIP_ENUM_VALUES ]
21
+ end
22
+
23
+ enum *stats_def do
14
24
  event :accept do
25
+ before do
26
+ @status_was = self.status
27
+ end
28
+
15
29
  transition [:pending, :requested] => :accepted
16
30
 
17
31
  after do
@@ -1,3 +1,3 @@
1
1
  module HasFriendship
2
- VERSION = "1.1.8"
2
+ VERSION = "1.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: has_friendship
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.8
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sung Won Cho
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2020-01-02 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: activesupport
@@ -17,9 +16,6 @@ dependencies:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
18
  version: 4.2.0
20
- - - "<"
21
- - !ruby/object:Gem::Version
22
- version: '6.1'
23
19
  type: :runtime
24
20
  prerelease: false
25
21
  version_requirements: !ruby/object:Gem::Requirement
@@ -27,9 +23,6 @@ dependencies:
27
23
  - - ">="
28
24
  - !ruby/object:Gem::Version
29
25
  version: 4.2.0
30
- - - "<"
31
- - !ruby/object:Gem::Version
32
- version: '6.1'
33
26
  - !ruby/object:Gem::Dependency
34
27
  name: activemodel
35
28
  requirement: !ruby/object:Gem::Requirement
@@ -37,9 +30,6 @@ dependencies:
37
30
  - - ">="
38
31
  - !ruby/object:Gem::Version
39
32
  version: 4.2.0
40
- - - "<"
41
- - !ruby/object:Gem::Version
42
- version: '6.1'
43
33
  type: :runtime
44
34
  prerelease: false
45
35
  version_requirements: !ruby/object:Gem::Requirement
@@ -47,9 +37,6 @@ dependencies:
47
37
  - - ">="
48
38
  - !ruby/object:Gem::Version
49
39
  version: 4.2.0
50
- - - "<"
51
- - !ruby/object:Gem::Version
52
- version: '6.1'
53
40
  - !ruby/object:Gem::Dependency
54
41
  name: activerecord
55
42
  requirement: !ruby/object:Gem::Requirement
@@ -57,9 +44,6 @@ dependencies:
57
44
  - - ">="
58
45
  - !ruby/object:Gem::Version
59
46
  version: 4.2.0
60
- - - "<"
61
- - !ruby/object:Gem::Version
62
- version: '6.1'
63
47
  type: :runtime
64
48
  prerelease: false
65
49
  version_requirements: !ruby/object:Gem::Requirement
@@ -67,9 +51,6 @@ dependencies:
67
51
  - - ">="
68
52
  - !ruby/object:Gem::Version
69
53
  version: 4.2.0
70
- - - "<"
71
- - !ruby/object:Gem::Version
72
- version: '6.1'
73
54
  - !ruby/object:Gem::Dependency
74
55
  name: stateful_enum
75
56
  requirement: !ruby/object:Gem::Requirement
@@ -155,7 +136,7 @@ dependencies:
155
136
  - !ruby/object:Gem::Version
156
137
  version: '0'
157
138
  - !ruby/object:Gem::Dependency
158
- name: coveralls
139
+ name: coveralls_reborn
159
140
  requirement: !ruby/object:Gem::Requirement
160
141
  requirements:
161
142
  - - ">="
@@ -196,7 +177,76 @@ dependencies:
196
177
  - - ">="
197
178
  - !ruby/object:Gem::Version
198
179
  version: '0'
199
- description:
180
+ - !ruby/object:Gem::Dependency
181
+ name: base64
182
+ requirement: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
187
+ type: :development
188
+ prerelease: false
189
+ version_requirements: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
194
+ - !ruby/object:Gem::Dependency
195
+ name: drb
196
+ requirement: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
201
+ type: :development
202
+ prerelease: false
203
+ version_requirements: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
208
+ - !ruby/object:Gem::Dependency
209
+ name: mutex_m
210
+ requirement: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
215
+ type: :development
216
+ prerelease: false
217
+ version_requirements: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
222
+ - !ruby/object:Gem::Dependency
223
+ name: benchmark
224
+ requirement: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - ">="
227
+ - !ruby/object:Gem::Version
228
+ version: '0'
229
+ type: :development
230
+ prerelease: false
231
+ version_requirements: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - ">="
234
+ - !ruby/object:Gem::Version
235
+ version: '0'
236
+ - !ruby/object:Gem::Dependency
237
+ name: appraisal
238
+ requirement: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - ">="
241
+ - !ruby/object:Gem::Version
242
+ version: '0'
243
+ type: :development
244
+ prerelease: false
245
+ version_requirements: !ruby/object:Gem::Requirement
246
+ requirements:
247
+ - - ">="
248
+ - !ruby/object:Gem::Version
249
+ version: '0'
200
250
  email:
201
251
  - mikeswcho@gmail.com
202
252
  executables: []
@@ -219,7 +269,6 @@ homepage: https://github.com/sungwoncho/has_friendship
219
269
  licenses:
220
270
  - MIT
221
271
  metadata: {}
222
- post_install_message:
223
272
  rdoc_options: []
224
273
  require_paths:
225
274
  - lib
@@ -234,8 +283,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
234
283
  - !ruby/object:Gem::Version
235
284
  version: '0'
236
285
  requirements: []
237
- rubygems_version: 3.0.3
238
- signing_key:
286
+ rubygems_version: 3.6.9
239
287
  specification_version: 4
240
288
  summary: Add social network friendship features to your Active Record models.
241
289
  test_files: []