active_record-json_associations 0.6.11 → 0.7.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
- SHA1:
3
- metadata.gz: 46ecbfb0c93b2de000a895224b44d50f497c4f68
4
- data.tar.gz: 8edb3dd23c27de5896e9733485ebbee48d53592a
2
+ SHA256:
3
+ metadata.gz: da40cb0d7c64c3ae4fc7e90333a9ceb5687ed65676435f68edc66563e13f609c
4
+ data.tar.gz: 77cd9023e9877aa3709162fbcfc1ac08c4ea5c7c581264fff450e20af58b6e2e
5
5
  SHA512:
6
- metadata.gz: e09431602e770d422d4f28e409e1f366e5df6c0ce2934ee8ec4a9c5e1d831146091edc0d211f7aaf4b59077340a03007aa327f146976ceb4d3ec21d3a05737dc
7
- data.tar.gz: c09f9d5f8c10bc767f5b62ce334979fa850ae9c2d83d19e1a1cbe4993bff6fd715d031ec0966d56accc2eba8ce0b6fa2923e578a70fb335a21f8d9f7519f826b
6
+ metadata.gz: e219263a6d06ff6bc97dd86df3a289c82642f6b3c333779e107e8f21ae07c75fcad39f110cd84f7ef25303f752b43ee81b51c78a0d9f12591877cafddf861657
7
+ data.tar.gz: 705383f050a1e3b84524c5a6dcc74e8e30027a3d663cd944e616da033527afd63f13bf4872c6b4c8175385939b240ceb6a0e4d4265622e53efa52e299831b3e2
data/.gitignore CHANGED
@@ -6,6 +6,7 @@
6
6
  .ruby-version
7
7
  .ruby-gemset
8
8
  Gemfile.lock
9
+ gemfiles/*.lock
9
10
  InstalledFiles
10
11
  _yardoc
11
12
  coverage
@@ -1,10 +1,18 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.2.2
4
- - 2.3.3
5
- - 2.4.0
3
+ - 2.4
4
+ - 2.5
5
+ - 2.6
6
+ - 2.7
6
7
  gemfile:
7
8
  - gemfiles/rails_5.0.gemfile
8
9
  - gemfiles/rails_5.1.gemfile
9
10
  - gemfiles/rails_5.2.gemfile
11
+ - gemfiles/rails_6.0.gemfile
12
+ jobs:
13
+ exclude:
14
+ - rvm: 2.4
15
+ gemfile: gemfiles/rails_6.0.gemfile
16
+ before_install:
17
+ - gem install bundler -v"~>1.17"
10
18
 
data/Appraisals CHANGED
@@ -1,5 +1,6 @@
1
1
  appraise "rails-5.0" do
2
2
  gem "rails", "~>5.0.0"
3
+ gem "sqlite3", "~>1.3.13" # 1.4 seems to break rails 5.0?
3
4
  end
4
5
 
5
6
  appraise "rails-5.1" do
@@ -10,3 +11,7 @@ appraise "rails-5.2" do
10
11
  gem "rails", "~>5.2.0"
11
12
  end
12
13
 
14
+ appraise "rails-6.0" do
15
+ gem "rails", "~>6.0.0"
16
+ end
17
+
data/README.md CHANGED
@@ -37,6 +37,12 @@ parent.child_ids #=> [1,2]
37
37
  parent.children? #=> true
38
38
  ```
39
39
 
40
+ And a scope method for finding records assocatied with an id:
41
+
42
+ ```ruby
43
+ Parent.child_ids_including(2) # => [<Parent child_ids: [1,2,3]>]
44
+ ```
45
+
40
46
  It also adds an `json_foreign_key` option to `has_many` for specifying that the foreign keys are in a json array.
41
47
 
42
48
  ```ruby
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_dependency "activerecord"
22
22
 
23
- spec.add_development_dependency "bundler", "~> 1.6"
23
+ spec.add_development_dependency "bundler"
24
24
  spec.add_development_dependency "appraisal"
25
25
  spec.add_development_dependency "rake"
26
26
  spec.add_development_dependency "rspec"
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -3,5 +3,6 @@
3
3
  source "https://rubygems.org"
4
4
 
5
5
  gem "rails", "~>5.0.0"
6
+ gem "sqlite3", "~>1.3.13"
6
7
 
7
8
  gemspec path: "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~>6.0.0"
6
+
7
+ gemspec path: "../"
@@ -3,6 +3,14 @@ require "json"
3
3
 
4
4
  module ActiveRecord
5
5
  module JsonAssociations
6
+ FIELD_INCLUDE_SCOPE_BUILDER_PROC = proc do |context, field, id|
7
+ context.where("#{field}='[#{id}]'").or(
8
+ context.where("#{field} LIKE '[#{id},%'")).or(
9
+ context.where("#{field} LIKE '%,#{id},%'")).or(
10
+ context.where("#{field} LIKE '%,#{id}]'"))
11
+ end
12
+ private_constant :FIELD_INCLUDE_SCOPE_BUILDER_PROC
13
+
6
14
  def belongs_to_many(many, class_name: nil)
7
15
  one = many.to_s.singularize
8
16
  one_ids = :"#{one}_ids"
@@ -14,6 +22,13 @@ module ActiveRecord
14
22
 
15
23
  serialize one_ids, JSON
16
24
 
25
+ extend Module.new {
26
+ define_method :"#{one_ids}_including" do |id|
27
+ raise "can't query for a record that does not have an id!" if id.blank?
28
+ FIELD_INCLUDE_SCOPE_BUILDER_PROC.call(self, one_ids, id)
29
+ end
30
+ }
31
+
17
32
  include Module.new {
18
33
  define_method one_ids do
19
34
  super().tap do |value|
@@ -83,10 +98,7 @@ module ActiveRecord
83
98
 
84
99
  define_method many do
85
100
  klass = class_name.constantize
86
- klass.where("#{foreign_key} LIKE '[#{id}]'").or(
87
- klass.where("#{foreign_key} LIKE '[#{id},%'")).or(
88
- klass.where("#{foreign_key} LIKE '%,#{id},%'")).or(
89
- klass.where("#{foreign_key} LIKE '%,#{id}]'"))
101
+ FIELD_INCLUDE_SCOPE_BUILDER_PROC.call(klass, foreign_key, id)
90
102
  end
91
103
 
92
104
  define_method many_equals do |collection|
@@ -1,5 +1,5 @@
1
1
  module ActiveRecord
2
2
  module JsonAssociations
3
- VERSION = "0.6.11"
3
+ VERSION = "0.7.0"
4
4
  end
5
5
  end
@@ -39,6 +39,32 @@ describe ActiveRecord::JsonAssociations do
39
39
  describe ".belongs_to_many :children" do
40
40
  subject { Parent.new }
41
41
 
42
+ describe ".child_ids_including" do
43
+ context "finds records with the specified id" do
44
+ let(:child) { Child.create! }
45
+
46
+ it "as the whole json array" do
47
+ parent = Parent.create(children: [child])
48
+ expect(Parent.child_ids_including(child.id)).to eq [parent]
49
+ end
50
+
51
+ it "at the beginning of the json array" do
52
+ parent = Parent.create(children: [child, Child.create!])
53
+ expect(Parent.child_ids_including(child.id)).to eq [parent]
54
+ end
55
+
56
+ it "in the middle of the json array" do
57
+ parent = Parent.create(children: [Child.create!, child, Child.create!])
58
+ expect(Parent.child_ids_including(child.id)).to eq [parent]
59
+ end
60
+
61
+ it "at the end of the json array" do
62
+ parent = Parent.create(children: [Child.create!, child])
63
+ expect(Parent.child_ids_including(child.id)).to eq [parent]
64
+ end
65
+ end
66
+ end
67
+
42
68
  describe "#child_ids" do
43
69
  it "is empty by default" do
44
70
  expect(subject.child_ids).to eq []
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_record-json_associations
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.11
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Micah Geisel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-24 00:00:00.000000000 Z
11
+ date: 2020-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -28,16 +28,16 @@ dependencies:
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '1.6'
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '1.6'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: appraisal
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -111,7 +111,8 @@ dependencies:
111
111
  description: Instead of a many-to-many join table, serialize the ids into a JSON array.
112
112
  email:
113
113
  - micah@botandrose.com
114
- executables: []
114
+ executables:
115
+ - setup
115
116
  extensions: []
116
117
  extra_rdoc_files: []
117
118
  files:
@@ -124,12 +125,11 @@ files:
124
125
  - README.md
125
126
  - Rakefile
126
127
  - active_record-json_associations.gemspec
128
+ - bin/setup
127
129
  - gemfiles/rails_5.0.gemfile
128
- - gemfiles/rails_5.0.gemfile.lock
129
130
  - gemfiles/rails_5.1.gemfile
130
- - gemfiles/rails_5.1.gemfile.lock
131
131
  - gemfiles/rails_5.2.gemfile
132
- - gemfiles/rails_5.2.gemfile.lock
132
+ - gemfiles/rails_6.0.gemfile
133
133
  - lib/active_record/json_associations.rb
134
134
  - lib/active_record/json_associations/version.rb
135
135
  - spec/json_associations_spec.rb
@@ -153,8 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
153
153
  - !ruby/object:Gem::Version
154
154
  version: '0'
155
155
  requirements: []
156
- rubyforge_project:
157
- rubygems_version: 2.4.8
156
+ rubygems_version: 3.0.3
158
157
  signing_key:
159
158
  specification_version: 4
160
159
  summary: Instead of a many-to-many join table, serialize the ids into a JSON array.
@@ -1,144 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- active_record-json_associations (0.6.10)
5
- activerecord
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- actioncable (5.0.7)
11
- actionpack (= 5.0.7)
12
- nio4r (>= 1.2, < 3.0)
13
- websocket-driver (~> 0.6.1)
14
- actionmailer (5.0.7)
15
- actionpack (= 5.0.7)
16
- actionview (= 5.0.7)
17
- activejob (= 5.0.7)
18
- mail (~> 2.5, >= 2.5.4)
19
- rails-dom-testing (~> 2.0)
20
- actionpack (5.0.7)
21
- actionview (= 5.0.7)
22
- activesupport (= 5.0.7)
23
- rack (~> 2.0)
24
- rack-test (~> 0.6.3)
25
- rails-dom-testing (~> 2.0)
26
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
27
- actionview (5.0.7)
28
- activesupport (= 5.0.7)
29
- builder (~> 3.1)
30
- erubis (~> 2.7.0)
31
- rails-dom-testing (~> 2.0)
32
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
33
- activejob (5.0.7)
34
- activesupport (= 5.0.7)
35
- globalid (>= 0.3.6)
36
- activemodel (5.0.7)
37
- activesupport (= 5.0.7)
38
- activerecord (5.0.7)
39
- activemodel (= 5.0.7)
40
- activesupport (= 5.0.7)
41
- arel (~> 7.0)
42
- activesupport (5.0.7)
43
- concurrent-ruby (~> 1.0, >= 1.0.2)
44
- i18n (>= 0.7, < 2)
45
- minitest (~> 5.1)
46
- tzinfo (~> 1.1)
47
- appraisal (2.2.0)
48
- bundler
49
- rake
50
- thor (>= 0.14.0)
51
- arel (7.1.4)
52
- builder (3.2.3)
53
- byebug (10.0.2)
54
- concurrent-ruby (1.0.5)
55
- crass (1.0.4)
56
- diff-lcs (1.3)
57
- erubis (2.7.0)
58
- globalid (0.4.1)
59
- activesupport (>= 4.2.0)
60
- i18n (1.1.0)
61
- concurrent-ruby (~> 1.0)
62
- loofah (2.2.2)
63
- crass (~> 1.0.2)
64
- nokogiri (>= 1.5.9)
65
- mail (2.7.0)
66
- mini_mime (>= 0.1.1)
67
- method_source (0.9.0)
68
- mini_mime (1.0.1)
69
- mini_portile2 (2.3.0)
70
- minitest (5.11.3)
71
- nio4r (2.3.1)
72
- nokogiri (1.8.4)
73
- mini_portile2 (~> 2.3.0)
74
- rack (2.0.5)
75
- rack-test (0.6.3)
76
- rack (>= 1.0)
77
- rails (5.0.7)
78
- actioncable (= 5.0.7)
79
- actionmailer (= 5.0.7)
80
- actionpack (= 5.0.7)
81
- actionview (= 5.0.7)
82
- activejob (= 5.0.7)
83
- activemodel (= 5.0.7)
84
- activerecord (= 5.0.7)
85
- activesupport (= 5.0.7)
86
- bundler (>= 1.3.0)
87
- railties (= 5.0.7)
88
- sprockets-rails (>= 2.0.0)
89
- rails-dom-testing (2.0.3)
90
- activesupport (>= 4.2.0)
91
- nokogiri (>= 1.6)
92
- rails-html-sanitizer (1.0.4)
93
- loofah (~> 2.2, >= 2.2.2)
94
- railties (5.0.7)
95
- actionpack (= 5.0.7)
96
- activesupport (= 5.0.7)
97
- method_source
98
- rake (>= 0.8.7)
99
- thor (>= 0.18.1, < 2.0)
100
- rake (12.3.1)
101
- rspec (3.8.0)
102
- rspec-core (~> 3.8.0)
103
- rspec-expectations (~> 3.8.0)
104
- rspec-mocks (~> 3.8.0)
105
- rspec-core (3.8.0)
106
- rspec-support (~> 3.8.0)
107
- rspec-expectations (3.8.1)
108
- diff-lcs (>= 1.2.0, < 2.0)
109
- rspec-support (~> 3.8.0)
110
- rspec-mocks (3.8.0)
111
- diff-lcs (>= 1.2.0, < 2.0)
112
- rspec-support (~> 3.8.0)
113
- rspec-support (3.8.0)
114
- sprockets (3.7.2)
115
- concurrent-ruby (~> 1.0)
116
- rack (> 1, < 3)
117
- sprockets-rails (3.2.1)
118
- actionpack (>= 4.0)
119
- activesupport (>= 4.0)
120
- sprockets (>= 3.0.0)
121
- sqlite3 (1.3.13)
122
- thor (0.20.0)
123
- thread_safe (0.3.6)
124
- tzinfo (1.2.5)
125
- thread_safe (~> 0.1)
126
- websocket-driver (0.6.5)
127
- websocket-extensions (>= 0.1.0)
128
- websocket-extensions (0.1.3)
129
-
130
- PLATFORMS
131
- ruby
132
-
133
- DEPENDENCIES
134
- active_record-json_associations!
135
- appraisal
136
- bundler (~> 1.6)
137
- byebug
138
- rails (~> 5.0.0)
139
- rake
140
- rspec
141
- sqlite3
142
-
143
- BUNDLED WITH
144
- 1.14.4
@@ -1,144 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- active_record-json_associations (0.6.10)
5
- activerecord
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- actioncable (5.1.6)
11
- actionpack (= 5.1.6)
12
- nio4r (~> 2.0)
13
- websocket-driver (~> 0.6.1)
14
- actionmailer (5.1.6)
15
- actionpack (= 5.1.6)
16
- actionview (= 5.1.6)
17
- activejob (= 5.1.6)
18
- mail (~> 2.5, >= 2.5.4)
19
- rails-dom-testing (~> 2.0)
20
- actionpack (5.1.6)
21
- actionview (= 5.1.6)
22
- activesupport (= 5.1.6)
23
- rack (~> 2.0)
24
- rack-test (>= 0.6.3)
25
- rails-dom-testing (~> 2.0)
26
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
27
- actionview (5.1.6)
28
- activesupport (= 5.1.6)
29
- builder (~> 3.1)
30
- erubi (~> 1.4)
31
- rails-dom-testing (~> 2.0)
32
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
33
- activejob (5.1.6)
34
- activesupport (= 5.1.6)
35
- globalid (>= 0.3.6)
36
- activemodel (5.1.6)
37
- activesupport (= 5.1.6)
38
- activerecord (5.1.6)
39
- activemodel (= 5.1.6)
40
- activesupport (= 5.1.6)
41
- arel (~> 8.0)
42
- activesupport (5.1.6)
43
- concurrent-ruby (~> 1.0, >= 1.0.2)
44
- i18n (>= 0.7, < 2)
45
- minitest (~> 5.1)
46
- tzinfo (~> 1.1)
47
- appraisal (2.2.0)
48
- bundler
49
- rake
50
- thor (>= 0.14.0)
51
- arel (8.0.0)
52
- builder (3.2.3)
53
- byebug (10.0.2)
54
- concurrent-ruby (1.0.5)
55
- crass (1.0.4)
56
- diff-lcs (1.3)
57
- erubi (1.7.1)
58
- globalid (0.4.1)
59
- activesupport (>= 4.2.0)
60
- i18n (1.1.0)
61
- concurrent-ruby (~> 1.0)
62
- loofah (2.2.2)
63
- crass (~> 1.0.2)
64
- nokogiri (>= 1.5.9)
65
- mail (2.7.0)
66
- mini_mime (>= 0.1.1)
67
- method_source (0.9.0)
68
- mini_mime (1.0.1)
69
- mini_portile2 (2.3.0)
70
- minitest (5.11.3)
71
- nio4r (2.3.1)
72
- nokogiri (1.8.4)
73
- mini_portile2 (~> 2.3.0)
74
- rack (2.0.5)
75
- rack-test (1.1.0)
76
- rack (>= 1.0, < 3)
77
- rails (5.1.6)
78
- actioncable (= 5.1.6)
79
- actionmailer (= 5.1.6)
80
- actionpack (= 5.1.6)
81
- actionview (= 5.1.6)
82
- activejob (= 5.1.6)
83
- activemodel (= 5.1.6)
84
- activerecord (= 5.1.6)
85
- activesupport (= 5.1.6)
86
- bundler (>= 1.3.0)
87
- railties (= 5.1.6)
88
- sprockets-rails (>= 2.0.0)
89
- rails-dom-testing (2.0.3)
90
- activesupport (>= 4.2.0)
91
- nokogiri (>= 1.6)
92
- rails-html-sanitizer (1.0.4)
93
- loofah (~> 2.2, >= 2.2.2)
94
- railties (5.1.6)
95
- actionpack (= 5.1.6)
96
- activesupport (= 5.1.6)
97
- method_source
98
- rake (>= 0.8.7)
99
- thor (>= 0.18.1, < 2.0)
100
- rake (12.3.1)
101
- rspec (3.8.0)
102
- rspec-core (~> 3.8.0)
103
- rspec-expectations (~> 3.8.0)
104
- rspec-mocks (~> 3.8.0)
105
- rspec-core (3.8.0)
106
- rspec-support (~> 3.8.0)
107
- rspec-expectations (3.8.1)
108
- diff-lcs (>= 1.2.0, < 2.0)
109
- rspec-support (~> 3.8.0)
110
- rspec-mocks (3.8.0)
111
- diff-lcs (>= 1.2.0, < 2.0)
112
- rspec-support (~> 3.8.0)
113
- rspec-support (3.8.0)
114
- sprockets (3.7.2)
115
- concurrent-ruby (~> 1.0)
116
- rack (> 1, < 3)
117
- sprockets-rails (3.2.1)
118
- actionpack (>= 4.0)
119
- activesupport (>= 4.0)
120
- sprockets (>= 3.0.0)
121
- sqlite3 (1.3.13)
122
- thor (0.20.0)
123
- thread_safe (0.3.6)
124
- tzinfo (1.2.5)
125
- thread_safe (~> 0.1)
126
- websocket-driver (0.6.5)
127
- websocket-extensions (>= 0.1.0)
128
- websocket-extensions (0.1.3)
129
-
130
- PLATFORMS
131
- ruby
132
-
133
- DEPENDENCIES
134
- active_record-json_associations!
135
- appraisal
136
- bundler (~> 1.6)
137
- byebug
138
- rails (~> 5.1.0)
139
- rake
140
- rspec
141
- sqlite3
142
-
143
- BUNDLED WITH
144
- 1.14.4
@@ -1,152 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- active_record-json_associations (0.6.10)
5
- activerecord
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- actioncable (5.2.1)
11
- actionpack (= 5.2.1)
12
- nio4r (~> 2.0)
13
- websocket-driver (>= 0.6.1)
14
- actionmailer (5.2.1)
15
- actionpack (= 5.2.1)
16
- actionview (= 5.2.1)
17
- activejob (= 5.2.1)
18
- mail (~> 2.5, >= 2.5.4)
19
- rails-dom-testing (~> 2.0)
20
- actionpack (5.2.1)
21
- actionview (= 5.2.1)
22
- activesupport (= 5.2.1)
23
- rack (~> 2.0)
24
- rack-test (>= 0.6.3)
25
- rails-dom-testing (~> 2.0)
26
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
27
- actionview (5.2.1)
28
- activesupport (= 5.2.1)
29
- builder (~> 3.1)
30
- erubi (~> 1.4)
31
- rails-dom-testing (~> 2.0)
32
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
33
- activejob (5.2.1)
34
- activesupport (= 5.2.1)
35
- globalid (>= 0.3.6)
36
- activemodel (5.2.1)
37
- activesupport (= 5.2.1)
38
- activerecord (5.2.1)
39
- activemodel (= 5.2.1)
40
- activesupport (= 5.2.1)
41
- arel (>= 9.0)
42
- activestorage (5.2.1)
43
- actionpack (= 5.2.1)
44
- activerecord (= 5.2.1)
45
- marcel (~> 0.3.1)
46
- activesupport (5.2.1)
47
- concurrent-ruby (~> 1.0, >= 1.0.2)
48
- i18n (>= 0.7, < 2)
49
- minitest (~> 5.1)
50
- tzinfo (~> 1.1)
51
- appraisal (2.2.0)
52
- bundler
53
- rake
54
- thor (>= 0.14.0)
55
- arel (9.0.0)
56
- builder (3.2.3)
57
- byebug (10.0.2)
58
- concurrent-ruby (1.0.5)
59
- crass (1.0.4)
60
- diff-lcs (1.3)
61
- erubi (1.7.1)
62
- globalid (0.4.1)
63
- activesupport (>= 4.2.0)
64
- i18n (1.1.0)
65
- concurrent-ruby (~> 1.0)
66
- loofah (2.2.2)
67
- crass (~> 1.0.2)
68
- nokogiri (>= 1.5.9)
69
- mail (2.7.0)
70
- mini_mime (>= 0.1.1)
71
- marcel (0.3.3)
72
- mimemagic (~> 0.3.2)
73
- method_source (0.9.0)
74
- mimemagic (0.3.2)
75
- mini_mime (1.0.1)
76
- mini_portile2 (2.3.0)
77
- minitest (5.11.3)
78
- nio4r (2.3.1)
79
- nokogiri (1.8.4)
80
- mini_portile2 (~> 2.3.0)
81
- rack (2.0.5)
82
- rack-test (1.1.0)
83
- rack (>= 1.0, < 3)
84
- rails (5.2.1)
85
- actioncable (= 5.2.1)
86
- actionmailer (= 5.2.1)
87
- actionpack (= 5.2.1)
88
- actionview (= 5.2.1)
89
- activejob (= 5.2.1)
90
- activemodel (= 5.2.1)
91
- activerecord (= 5.2.1)
92
- activestorage (= 5.2.1)
93
- activesupport (= 5.2.1)
94
- bundler (>= 1.3.0)
95
- railties (= 5.2.1)
96
- sprockets-rails (>= 2.0.0)
97
- rails-dom-testing (2.0.3)
98
- activesupport (>= 4.2.0)
99
- nokogiri (>= 1.6)
100
- rails-html-sanitizer (1.0.4)
101
- loofah (~> 2.2, >= 2.2.2)
102
- railties (5.2.1)
103
- actionpack (= 5.2.1)
104
- activesupport (= 5.2.1)
105
- method_source
106
- rake (>= 0.8.7)
107
- thor (>= 0.19.0, < 2.0)
108
- rake (12.3.1)
109
- rspec (3.8.0)
110
- rspec-core (~> 3.8.0)
111
- rspec-expectations (~> 3.8.0)
112
- rspec-mocks (~> 3.8.0)
113
- rspec-core (3.8.0)
114
- rspec-support (~> 3.8.0)
115
- rspec-expectations (3.8.1)
116
- diff-lcs (>= 1.2.0, < 2.0)
117
- rspec-support (~> 3.8.0)
118
- rspec-mocks (3.8.0)
119
- diff-lcs (>= 1.2.0, < 2.0)
120
- rspec-support (~> 3.8.0)
121
- rspec-support (3.8.0)
122
- sprockets (3.7.2)
123
- concurrent-ruby (~> 1.0)
124
- rack (> 1, < 3)
125
- sprockets-rails (3.2.1)
126
- actionpack (>= 4.0)
127
- activesupport (>= 4.0)
128
- sprockets (>= 3.0.0)
129
- sqlite3 (1.3.13)
130
- thor (0.20.0)
131
- thread_safe (0.3.6)
132
- tzinfo (1.2.5)
133
- thread_safe (~> 0.1)
134
- websocket-driver (0.7.0)
135
- websocket-extensions (>= 0.1.0)
136
- websocket-extensions (0.1.3)
137
-
138
- PLATFORMS
139
- ruby
140
-
141
- DEPENDENCIES
142
- active_record-json_associations!
143
- appraisal
144
- bundler (~> 1.6)
145
- byebug
146
- rails (~> 5.2.0)
147
- rake
148
- rspec
149
- sqlite3
150
-
151
- BUNDLED WITH
152
- 1.14.4