isomorfeus-data 2.0.1 → 2.0.5

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
2
  SHA256:
3
- metadata.gz: 74b23588cedd4ea09bc3f496f804f312fd7e29e376dcbaed13aee1b31e9ac16c
4
- data.tar.gz: 4a66e451607a2aab31720f74918796deb70b42bc107ee1d6a6aa7037b1da5050
3
+ metadata.gz: 455e8b083641020d3d3dfa97b34d4144087fb19c11f551c240cdf4e946f60df0
4
+ data.tar.gz: 20f440fa635643a147bbcfb2571b9bcb0afcef57e57977de08725ac7cf732870
5
5
  SHA512:
6
- metadata.gz: 1a8627ae40884447026d1ebf37fb351837631030801c7b0c3c594d78ee7dfa25eb683619814b3c8216630a86ef79f3658c4fe2d004c306e666cbff8e5ed93334
7
- data.tar.gz: 3ba3ad05fe7f2fba047166f3316a6ac7624b931e36b57c5ccce8731d01649ef4a6a209b2e9b2d62e2fbc1d5e68c5f91cd114594d64d25764c00468a8b776d9b8
6
+ metadata.gz: 46f6c764a5d12fe8b46730ee1cc1b18d8a99a52c56fff668143abcd30a4961b55813f9bbc8840c7ca80a8bf365b8faa3f3a06a6a0d0fc802dc2f4037f2a6a406
7
+ data.tar.gz: e34bd37b4b16359a2cf14a863fefd327cac00568f9048c1466c6061cc922072046bca750fcd36be150fac6e7876c96671d7d5f71c4b3715610e773b37f910cc6
@@ -1,5 +1,5 @@
1
1
  module Isomorfeus
2
2
  module Data
3
- VERSION = '2.0.1'
3
+ VERSION = '2.0.5'
4
4
  end
5
5
  end
@@ -108,8 +108,10 @@ module LucidDocument
108
108
 
109
109
  execute_load do |key:|
110
110
  doc = self.ferret_accelerator.load_doc(key)
111
- doc.delete(:key)
112
- self.new(key: key, fields: doc)
111
+ if doc
112
+ doc.delete(:key)
113
+ self.new(key: key, fields: doc)
114
+ end
113
115
  end
114
116
 
115
117
  execute_save do
@@ -1,6 +1,10 @@
1
1
  class LucidQueryResult
2
2
  attr_reader :key
3
3
 
4
+ def [](accessor_name)
5
+ self.send(accessor_name.to_sym)
6
+ end
7
+
4
8
  def sid
5
9
  [@class_name, @key]
6
10
  end
@@ -40,14 +44,18 @@ class LucidQueryResult
40
44
  end
41
45
 
42
46
  def method_missing(accessor_name, *args, &block)
43
- sid = if @result_set
47
+ sid_or_array = if @result_set
44
48
  @result_set[accessor_name]
45
49
  else
46
50
  stored_results = Redux.fetch_by_path(:data_state, @class_name, @key)
47
51
  stored_results.JS[accessor_name] if stored_results
48
52
  end
49
- Isomorfeus.raise_error(message: "#{@class_name}: no such thing '#{accessor_name}' in the results!") unless sid
50
- Isomorfeus.instance_from_sid(sid)
53
+ Isomorfeus.raise_error(message: "#{@class_name}: no such thing '#{accessor_name}' in the results!") unless sid_or_array
54
+ if stored_results.JS['_is_array_']
55
+ sid_or_array.map { |sid| Isomorfeus.instance_from_sid(sid) }
56
+ else
57
+ Isomorfeus.instance_from_sid(sid_or_array)
58
+ end
51
59
  end
52
60
  else
53
61
  def initialize(key: nil, result_set: {})
@@ -77,8 +85,13 @@ class LucidQueryResult
77
85
 
78
86
  def to_transport
79
87
  sids_hash = {}
80
- @result_set.each do |key, value|
81
- sids_hash[key.to_s] = value.sid
88
+ @result_set.each do |key, value_or_array|
89
+ if value_or_array.class == Array
90
+ sids_hash[key.to_s] = value_or_array.map(&:sid)
91
+ sids_hash[:_is_array_] = true
92
+ else
93
+ sids_hash[key.to_s] = value_or_array.sid
94
+ end
82
95
  end
83
96
  { @class_name => { @key => sids_hash }}
84
97
  end
@@ -86,9 +99,18 @@ class LucidQueryResult
86
99
  def included_items_to_transport
87
100
  data_hash = {}
88
101
  @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)
102
+ if value.class == Array
103
+ value.each do |v|
104
+ data_hash.deep_merge!(v.to_transport)
105
+ if v.respond_to?(:included_items_to_transport)
106
+ data_hash.deep_merge!(v.included_items_to_transport)
107
+ end
108
+ end
109
+ else
110
+ data_hash.deep_merge!(value.to_transport)
111
+ if value.respond_to?(:included_items_to_transport)
112
+ data_hash.deep_merge!(value.included_items_to_transport)
113
+ end
92
114
  end
93
115
  end
94
116
  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.1
4
+ version: 2.0.5
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-20 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
@@ -86,14 +86,14 @@ dependencies:
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
@@ -142,28 +142,28 @@ dependencies:
142
142
  requirements:
143
143
  - - '='
144
144
  - !ruby/object:Gem::Version
145
- version: 2.0.1
145
+ version: 2.0.5
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.1
152
+ version: 2.0.5
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.1
159
+ version: 2.0.5
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.1
166
+ version: 2.0.5
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: rake
169
169
  requirement: !ruby/object:Gem::Requirement