active_record-json_associations 0.6.11 → 0.7.0

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
- 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