isomorfeus-data 2.0.0 → 2.0.4

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
  SHA256:
3
- metadata.gz: e8164f378080fd27c2175ab62246f588fc862c463b2ab764c392410ca5169fc0
4
- data.tar.gz: ba522d380b2afc47c5f9b420befbaa2b16552cfb60db4be51fee86c132d03708
3
+ metadata.gz: cb9108f2f9e715878385080c0baaa26f956306df3aaa7972671909c1ebefb5cd
4
+ data.tar.gz: 19e1f6d114a2bb41d3ccf8a5d06c18ea788f19d84e5c695c701889857f4709d4
5
5
  SHA512:
6
- metadata.gz: e66e159004cf71f9fdf95868624f30af2a95a5ac5c925750745ffc94720bdd1df0caf21fd34309cee844d29530de431e3d1b551339af62b6b7f8ece7138a3f86
7
- data.tar.gz: f48628bb5bdc60261c62416345406b8ce28922388a909857b939bae9147dfb2f059762f529d1eb78d6aac33b802c993ff02990cfc1c7c99fce4a83d388abbe0f
6
+ metadata.gz: dd5ec492a7d4a2332c54d8d796ec384acf73d83bf0942e9f1484abc2572fb11b37e39760467ee7b2f5d9279deac3409e855d47e56b1113ed0509912c2088b5dc
7
+ data.tar.gz: 5d4f243fdbc432b8b2b435e45bbf6c94c8e6bef437fb8ff9ff8cfe00f15f92f977a249fe808e51a209a4c849dcff80ccb5fca7ef9ba16f5d6d3c611baa943cce
@@ -80,10 +80,9 @@ module Isomorfeus
80
80
 
81
81
  def load(key:)
82
82
  data = instance_exec(key: key, &@_load_block)
83
- return nil unless data
84
- return data if data.class == self
85
- Isomorfeus.raise_error(message: "#{self.to_s}: execute_load must return a instance of #{self.to_s} or nil. Returned was: #{data.class}.") if data.class != self
86
- data
83
+ return nil if data.nil?
84
+ return data if data.class.to_s == self.to_s
85
+ Isomorfeus.raise_error(message: "#{self}: execute_load must return a instance of #{self} or nil. Returned was: #{data.class}.")
87
86
  end
88
87
  alias load! load
89
88
 
@@ -1,5 +1,5 @@
1
1
  module Isomorfeus
2
2
  module Data
3
- VERSION = '2.0.0'
3
+ VERSION = '2.0.4'
4
4
  end
5
5
  end
@@ -108,6 +108,7 @@ module LucidDocument
108
108
 
109
109
  execute_load do |key:|
110
110
  doc = self.ferret_accelerator.load_doc(key)
111
+ return nil unless doc
111
112
  doc.delete(:key)
112
113
  self.new(key: key, fields: doc)
113
114
  end
@@ -40,14 +40,18 @@ class LucidQueryResult
40
40
  end
41
41
 
42
42
  def method_missing(accessor_name, *args, &block)
43
- sid = if @result_set
43
+ sid_or_array = if @result_set
44
44
  @result_set[accessor_name]
45
45
  else
46
46
  stored_results = Redux.fetch_by_path(:data_state, @class_name, @key)
47
47
  stored_results.JS[accessor_name] if stored_results
48
48
  end
49
- Isomorfeus.raise_error(message: "#{@class_name}: no such thing '#{accessor_name}' in the results!") unless sid
50
- Isomorfeus.instance_from_sid(sid)
49
+ Isomorfeus.raise_error(message: "#{@class_name}: no such thing '#{accessor_name}' in the results!") unless sid_or_array
50
+ if stored_results.JS['_is_array_']
51
+ sid_or_array.map { |sid| Isomorfeus.instance_from_sid(sid) }
52
+ else
53
+ Isomorfeus.instance_from_sid(sid_or_array)
54
+ end
51
55
  end
52
56
  else
53
57
  def initialize(key: nil, result_set: {})
@@ -77,8 +81,13 @@ class LucidQueryResult
77
81
 
78
82
  def to_transport
79
83
  sids_hash = {}
80
- @result_set.each do |key, value|
81
- sids_hash[key.to_s] = value.sid
84
+ @result_set.each do |key, value_or_array|
85
+ if value_or_array.class == Array
86
+ sids_hash[key.to_s] = value_or_array.map(&:sid)
87
+ sids_hash[:_is_array_] = true
88
+ else
89
+ sids_hash[key.to_s] = value_or_array.sid
90
+ end
82
91
  end
83
92
  { @class_name => { @key => sids_hash }}
84
93
  end
@@ -86,9 +95,18 @@ class LucidQueryResult
86
95
  def included_items_to_transport
87
96
  data_hash = {}
88
97
  @result_set.each_value do |value|
89
- data_hash.deep_merge!(value.to_transport)
90
- if value.respond_to?(:included_items_to_transport)
91
- data_hash.deep_merge!(value.included_items_to_transport)
98
+ if value.class == Array
99
+ value.each do |v|
100
+ data_hash.deep_merge!(v.to_transport)
101
+ if v.respond_to?(:included_items_to_transport)
102
+ data_hash.deep_merge!(v.included_items_to_transport)
103
+ end
104
+ end
105
+ else
106
+ data_hash.deep_merge!(value.to_transport)
107
+ if value.respond_to?(:included_items_to_transport)
108
+ data_hash.deep_merge!(value.included_items_to_transport)
109
+ end
92
110
  end
93
111
  end
94
112
  data_hash
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isomorfeus-data
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Biedermann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-15 00:00:00.000000000 Z
11
+ date: 2022-01-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -72,28 +72,28 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.14.4
75
+ version: 0.14.5
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.14.4
82
+ version: 0.14.5
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: isomorfeus-ferret
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.12.2
89
+ version: 0.12.3
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 0.12.2
96
+ version: 0.12.3
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: isomorfeus-hamster
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 10.6.6
117
+ version: 10.6.11
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 10.6.6
124
+ version: 10.6.11
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: isomorfeus-redux
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -142,28 +142,28 @@ dependencies:
142
142
  requirements:
143
143
  - - '='
144
144
  - !ruby/object:Gem::Version
145
- version: 2.0.0
145
+ version: 2.0.4
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - '='
151
151
  - !ruby/object:Gem::Version
152
- version: 2.0.0
152
+ version: 2.0.4
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: isomorfeus
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - '='
158
158
  - !ruby/object:Gem::Version
159
- version: 2.0.0
159
+ version: 2.0.4
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - '='
165
165
  - !ruby/object:Gem::Version
166
- version: 2.0.0
166
+ version: 2.0.4
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: rake
169
169
  requirement: !ruby/object:Gem::Requirement