custom_fielder 0.7.4 → 0.7.8

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: ef4ed2576e189267c7e86bb4c3ef897f2d77fc9d
4
- data.tar.gz: 23bc7808ab46e735234def81d25161c0bde22fae
3
+ metadata.gz: 8efc430192e902dcb9c7fb03094ff07a0f0352fd
4
+ data.tar.gz: f64aa52d1ff99c0d55564f2994ad0daaf613abf6
5
5
  SHA512:
6
- metadata.gz: e0ed8215b71d76e425653c48c2922a82f8cfb7b1624620ea850af94f0ab27c41922a1fd7291a9fcbdf8ca4594199577572640078a2ecd0f00bf132331a0001ed
7
- data.tar.gz: d0bd074f63efd8272cd5c7ca8e86590b04075536439bfe53fdc044e5ebe4f29dff67ad5827f9ed32c93463eb73b041bb466a86db37d66a47162a895ba90219e6
6
+ metadata.gz: 44274b541b02acba72f55f1af3cf99fdcecac934ec35a742379696988d22d23eb1cd9b9e9ce893d0f3c9df15e01d928fdfd3f486f0c51f2eb13f1cfb3ca7c178
7
+ data.tar.gz: b2e9f556c91e8b1f8422e8e58bdaff85ff481ab598cf876995842d1f162578e693f7b7b4c7497493b54bd883da65e34ce08a7d88c074816a76489ee73cff7b4c
@@ -43,7 +43,7 @@ module CustomFielder
43
43
  #
44
44
  # @return [Array]
45
45
  #
46
- def self.custom_fielder_columns
46
+ def self.custom_fieldable_columns
47
47
  [:id]
48
48
  end
49
49
 
@@ -57,45 +57,20 @@ module CustomFielder
57
57
  #
58
58
  # @return [ActiveRecord::Relation]
59
59
  #
60
- def self.custom_fielder_search
60
+ def self.custom_fieldable_search
61
61
  all
62
62
  end
63
63
 
64
64
  ##
65
- # Provides an array of hashes of objects and Custom Field values (if they exist)
66
- # using custom_fielder_search as the means of generating
67
- # the sub query to find objects and then using this query
68
- # to join the values with the objects if they exist (in one transaction)
65
+ # Gets all the avaiable fieldable objects for a model
66
+ # that do not already have a value defined on them
69
67
  #
70
68
  # @param field [CustomFielder::Field] field to search for values on
71
69
  #
72
70
  # @return [Array<Hash>]
73
71
  #
74
- def self.custom_fielder_objects(field)
75
- object_columns = custom_fielder_columns
76
- sub_query = custom_fielder_search.select(object_columns).to_sql
77
-
78
- object_columns.map! { |column| "objects.#{column} AS #{column}" }
79
-
80
- query = <<-SQL
81
- SELECT
82
- \ #{object_columns.join(', ')},
83
- cfv.id AS value_id,
84
- cfv.value AS value,
85
- '#{field.id}' AS field_id
86
- FROM (#{sub_query}) objects
87
- LEFT OUTER JOIN custom_fielder_values cfv
88
- ON objects.id = cfv.fieldable_id
89
- AND cfv.field_id = '#{field.id}'
90
- SQL
91
-
92
- objects = ActiveRecord::Base.connection.execute(query)
93
-
94
- if objects.class == PG::Result
95
- objects = objects.values.map { |values| Hash[objects.fields.zip(values)] }
96
- end
97
-
98
- return objects
72
+ def self.custom_fieldable_objects(field)
73
+ custom_fieldable_search.where.not(id: field.values.select(:fieldable_id))
99
74
  end
100
75
 
101
76
  ##
@@ -1,3 +1,3 @@
1
1
  module CustomFielder
2
- VERSION = "0.7.4"
2
+ VERSION = "0.7.8"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: custom_fielder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.4
4
+ version: 0.7.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Hurst
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-29 00:00:00.000000000 Z
11
+ date: 2016-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails