pluckers 1.0.0 → 1.0.1

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
2
  SHA1:
3
- metadata.gz: 50551996283d98347353e0d3f68f3a87eca33157
4
- data.tar.gz: 979345a5b174c3fa09a5cd99c1a2ccaf43aee9fa
3
+ metadata.gz: 10653c054f2f3f14416d637e63f0bc16e4edb2e2
4
+ data.tar.gz: 5e95ef0ad68d42be2f1d9441643f406af2470182
5
5
  SHA512:
6
- metadata.gz: 8c7e4187945a362f8c43f8331482774bd2728580b4dba7fa36d1c962d598fd04de75e0236dc90e61822bae4fdf7669b5b4b457fe3158475498917aaf85957bba
7
- data.tar.gz: 320aed2d28f474b334982a129eac2ae44a10f2d1d18af051dbe3da16862b415d4235188011a3eb79e5f7b51d8a25094711cdc3ce75c2d427f6b27597905cd5fa
6
+ metadata.gz: 90895821d10b8c43a6228bbdc5430e44056b5ee6f3c955a4c4d453d71cf1d87f79f5b3b8c5ca6aa780096bcb99e8c0487ebc9d7a0f7b8d1ba8b9fbff8af37993
7
+ data.tar.gz: 67ed05fd97c758af0d3cbdd0920e161c6b66ed843f49ae018e1224fb4ab1256f8e83c6c7632641b7ef9e479be429bc36ff871834df1473b602807851a45a16a0
data/Appraisals CHANGED
@@ -11,12 +11,18 @@ appraise "activerecord-4-1" do
11
11
  end
12
12
 
13
13
  appraise "activerecord-4-2" do
14
- gem "activerecord", "= 4.2.7.1"
14
+ gem "activerecord", "= 4.2.9"
15
15
  gem "minitest-matchers_vaccine"
16
16
  end
17
17
 
18
18
  appraise "activerecord-5-0" do
19
- gem "activerecord", "= 5.0.1"
19
+ gem "activerecord", "= 5.0.5"
20
+ gem "globalize", github: 'globalize/globalize'
21
+ gem "minitest-matchers_vaccine"
22
+ end
23
+
24
+ appraise "activerecord-5-1" do
25
+ gem "activerecord", "= 5.1.3"
20
26
  gem "globalize", github: 'globalize/globalize'
21
27
  gem "minitest-matchers_vaccine"
22
28
  end
data/CHANGELOG CHANGED
@@ -1,3 +1,8 @@
1
+ * 1.0.1
2
+
3
+ - Rails 5.1 support
4
+ - Upgraded tests for Rails 4.2 and 5.0
5
+
1
6
  * 1.0.0
2
7
 
3
8
  - First working version
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pluckers (0.1.0)
5
- activerecord (> 3.2, < 5.1)
4
+ pluckers (1.0.1)
5
+ activerecord (> 3.2, < 5.2)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
data/lib/pluckers/base.rb CHANGED
@@ -8,6 +8,8 @@ elsif active_record_version > Gem::Version.new("4.0") && active_record_version <
8
8
  require_relative 'features/active_record_4_0'
9
9
  elsif active_record_version > Gem::Version.new("5.0") && active_record_version < Gem::Version.new("5.1")
10
10
  require_relative 'features/active_record_5_0'
11
+ elsif active_record_version > Gem::Version.new("5.1") && active_record_version < Gem::Version.new("5.2")
12
+ require_relative 'features/active_record_5_1'
11
13
  elsif active_record_version > Gem::Version.new("3.2") && active_record_version < Gem::Version.new("4.0")
12
14
  require_relative 'features/active_record_3_2'
13
15
  else
@@ -0,0 +1,15 @@
1
+ require_relative '../base/belongs_to_reflections'
2
+
3
+ module Pluckers
4
+ module Features
5
+ module BelongsToReflections
6
+
7
+ def active_record_belongs_to_reflection? reflection
8
+ reflection.is_a?(ActiveRecord::Reflection::BelongsToReflection)
9
+ end
10
+
11
+ include Pluckers::Features::Base::BelongsToReflections
12
+
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,11 @@
1
+ require_relative '../base/globalize'
2
+
3
+ module Pluckers
4
+ module Features
5
+ module Globalize
6
+
7
+ include Pluckers::Features::Base::Globalize
8
+
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,39 @@
1
+ require_relative '../base/has_and_belongs_to_many_reflections'
2
+
3
+ module Pluckers
4
+ module Features
5
+ module HasAndBelongsToManyReflections
6
+
7
+ def active_record_has_and_belongs_to_many_reflection? reflection
8
+ reflection.is_a? ActiveRecord::Reflection::HasAndBelongsToManyReflection
9
+ end
10
+
11
+ def has_and_belongs_to_many_ids klass_reflection
12
+
13
+ # First, we get the the join table
14
+ join_table = Arel::Table.new(klass_reflection.join_table)
15
+
16
+ # And now, the foreign_keys.
17
+ # In our example with BlogPost and Category they would be:
18
+ # model_foreign_key = blog_post_id
19
+ # related_model_foreign_key = category_id
20
+ model_foreign_key = klass_reflection.foreign_key
21
+ related_model_foreign_key = klass_reflection.association_foreign_key
22
+
23
+ # Now we query the join table so we get the two ids
24
+ ids_query = join_table.where(
25
+ join_table[model_foreign_key].in(@results.map{|_, r| Arel::Nodes::Quoted.new(r[:id]) })
26
+ ).project(
27
+ join_table[related_model_foreign_key],
28
+ join_table[model_foreign_key]
29
+ )
30
+
31
+ join_results = ActiveRecord::Base.connection.execute(ids_query.to_sql)
32
+
33
+ end
34
+
35
+ include Pluckers::Features::Base::HasAndBelongsToManyReflections
36
+
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,15 @@
1
+ require_relative '../base/has_many_reflections'
2
+
3
+ module Pluckers
4
+ module Features
5
+ module HasManyReflections
6
+
7
+ def active_record_has_many_reflection? reflection
8
+ reflection.is_a? ActiveRecord::Reflection::HasManyReflection
9
+ end
10
+
11
+ include Pluckers::Features::Base::HasManyReflections
12
+
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,17 @@
1
+ require_relative '../base/has_many_through_reflections'
2
+
3
+ module Pluckers
4
+ module Features
5
+ module HasManyThroughReflections
6
+
7
+ def active_record_has_many_through_reflection? reflection
8
+ reflection.is_a?(ActiveRecord::Reflection::ThroughReflection) &&
9
+ reflection.delegate_reflection.is_a?(ActiveRecord::Reflection::HasManyReflection)
10
+ end
11
+
12
+ include Pluckers::Features::Base::HasManyThroughReflections
13
+
14
+
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,16 @@
1
+ require_relative '../base/has_one_reflections'
2
+
3
+ module Pluckers
4
+ module Features
5
+ module HasOneReflections
6
+
7
+ def active_record_has_one_reflection? reflection
8
+ reflection.is_a? ActiveRecord::Reflection::HasOneReflection
9
+ end
10
+
11
+ include Pluckers::Features::Base::HasOneReflections
12
+
13
+
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,17 @@
1
+ require_relative '../base/has_one_through_reflections'
2
+
3
+ module Pluckers
4
+ module Features
5
+ module HasOneThroughReflections
6
+
7
+ def active_record_has_one_through_reflection? reflection
8
+ reflection.is_a?(ActiveRecord::Reflection::ThroughReflection) &&
9
+ reflection.delegate_reflection.is_a?(ActiveRecord::Reflection::HasOneReflection)
10
+ end
11
+
12
+ include Pluckers::Features::Base::HasOneThroughReflections
13
+
14
+
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,11 @@
1
+ require_relative '../base/pluck'
2
+
3
+ module Pluckers
4
+ module Features
5
+ module Pluck
6
+
7
+ include Pluckers::Features::Base::Pluck
8
+
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require_relative '../base/renaming'
2
+
3
+ module Pluckers
4
+ module Features
5
+ module Renaming
6
+
7
+ include Pluckers::Features::Base::Renaming
8
+
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require_relative '../base/simple_attributes'
2
+
3
+ module Pluckers
4
+ module Features
5
+ module SimpleAttributes
6
+
7
+ include Pluckers::Features::Base::SimpleAttributes
8
+
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,10 @@
1
+ require_relative 'active_record_5_0/simple_attributes'
2
+ require_relative 'active_record_5_0/belongs_to_reflections'
3
+ require_relative 'active_record_5_0/has_many_reflections'
4
+ require_relative 'active_record_5_0/has_many_through_reflections'
5
+ require_relative 'active_record_5_0/has_and_belongs_to_many_reflections'
6
+ require_relative 'active_record_5_0/has_one_reflections'
7
+ require_relative 'active_record_5_0/has_one_through_reflections'
8
+ require_relative 'active_record_5_0/renaming'
9
+ require_relative 'active_record_5_0/globalize'
10
+ require_relative 'active_record_5_0/pluck'
@@ -1,3 +1,3 @@
1
1
  module Pluckers
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
data/pluckers.gemspec CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
27
27
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
28
  spec.require_paths = ["lib"]
29
29
 
30
- spec.add_dependency "activerecord", "> 3.2", "< 5.1"
30
+ spec.add_dependency "activerecord", "> 3.2", "< 5.2"
31
31
 
32
32
  spec.add_development_dependency "rake", "~> 10.0"
33
33
  spec.add_development_dependency "minitest"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pluckers
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David J. Brenes
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-20 00:00:00.000000000 Z
11
+ date: 2017-08-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '3.2'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '5.1'
22
+ version: '5.2'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '3.2'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '5.1'
32
+ version: '5.2'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: rake
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -195,6 +195,17 @@ files:
195
195
  - lib/pluckers/features/active_record_5_0/pluck.rb
196
196
  - lib/pluckers/features/active_record_5_0/renaming.rb
197
197
  - lib/pluckers/features/active_record_5_0/simple_attributes.rb
198
+ - lib/pluckers/features/active_record_5_1.rb
199
+ - lib/pluckers/features/active_record_5_1/belongs_to_reflections.rb
200
+ - lib/pluckers/features/active_record_5_1/globalize.rb
201
+ - lib/pluckers/features/active_record_5_1/has_and_belongs_to_many_reflections.rb
202
+ - lib/pluckers/features/active_record_5_1/has_many_reflections.rb
203
+ - lib/pluckers/features/active_record_5_1/has_many_through_reflections.rb
204
+ - lib/pluckers/features/active_record_5_1/has_one_reflections.rb
205
+ - lib/pluckers/features/active_record_5_1/has_one_through_reflections.rb
206
+ - lib/pluckers/features/active_record_5_1/pluck.rb
207
+ - lib/pluckers/features/active_record_5_1/renaming.rb
208
+ - lib/pluckers/features/active_record_5_1/simple_attributes.rb
198
209
  - lib/pluckers/features/base/belongs_to_reflections.rb
199
210
  - lib/pluckers/features/base/globalize.rb
200
211
  - lib/pluckers/features/base/has_and_belongs_to_many_reflections.rb