ephemeron 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/ephemeron/store/convert.rb +4 -2
- data/lib/ephemeron/store/update.rb +2 -2
- data/lib/ephemeron/version.rb +1 -1
- data/lib/ephemeron/writers/store.rb +7 -6
- metadata +31 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '0660824d6ef962804b40a9bfd73a06ed2820706b2eca71a7444a9c565ec7e291'
|
4
|
+
data.tar.gz: 33eb0ec77a182fde4d013b34a8b96eb12c79c25305419ec38ba088fdc15e51bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2b827130f8afbf71f4b6058e52f310745d891efa7b5b9d24a0eb69f8693c71a649ba09094acef5f13395fe1025765f24dba67f62712273c21cb2d7bc04f75ca
|
7
|
+
data.tar.gz: '049ba9e7c991e4a3c11587ccf50220a0f181cad23e056c01525a0aaffbc87a7307b0b6a0b30b5cbc51d93525f87213d494c7c07af34fbbc7f03e47bdfdb3871a'
|
@@ -5,14 +5,16 @@ module Ephemeron
|
|
5
5
|
class Convert
|
6
6
|
class << self
|
7
7
|
def call(model_s, as_new_record: false)
|
8
|
-
|
8
|
+
if model_s.is_a?(ActiveRecord::Base)
|
9
|
+
return class_name_and_id(model_s, as_new_record: as_new_record)
|
10
|
+
end
|
9
11
|
|
10
12
|
model_s.map { |model| class_name_and_id(model) }.join ', '
|
11
13
|
end
|
12
14
|
|
13
15
|
private
|
14
16
|
|
15
|
-
def class_name_and_id(model, as_new_record
|
17
|
+
def class_name_and_id(model, as_new_record: false)
|
16
18
|
new_record = as_new_record || model.new_record?
|
17
19
|
name = model.class.name.downcase
|
18
20
|
id = new_record ? "new_record##{model.object_id}" : model.id
|
@@ -12,8 +12,8 @@ module Ephemeron
|
|
12
12
|
Store.store.delete Convert.call(model, as_new_record: true)
|
13
13
|
|
14
14
|
Store.aliases.find_all { |_, v| v == Convert.call(model, as_new_record: true) }
|
15
|
-
.to_h
|
16
|
-
.
|
15
|
+
.to_h
|
16
|
+
.each_key { |key| Store.aliases[key] = Convert.call(model) }
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
data/lib/ephemeron/version.rb
CHANGED
@@ -16,14 +16,14 @@ module Ephemeron
|
|
16
16
|
!store[Convert.call(model, as_new_record: as_new_record)].nil?
|
17
17
|
end
|
18
18
|
|
19
|
-
def add(model,
|
19
|
+
def add(model, opts = {})
|
20
20
|
return unless Validators::StoreElement.call(model)
|
21
21
|
|
22
22
|
key = Convert.call model
|
23
23
|
in_store = !store[key].nil?
|
24
24
|
store[key] = model unless in_store
|
25
|
-
if !as.nil?
|
26
|
-
aliases[as] = key
|
25
|
+
if !opts[:as].nil?
|
26
|
+
aliases[opts[:as]] = key
|
27
27
|
elsif in_store
|
28
28
|
raise StoreError, "#{key} is already in the store"
|
29
29
|
end
|
@@ -31,9 +31,10 @@ module Ephemeron
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def get(key)
|
34
|
-
store[
|
35
|
-
|
36
|
-
|
34
|
+
model = store[key]
|
35
|
+
model ||= store[aliases[key]]
|
36
|
+
Logger.log(model, :used) if model
|
37
|
+
model
|
37
38
|
end
|
38
39
|
|
39
40
|
def validate
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ephemeron
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Zbigniew Humeniuk
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-08-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -58,6 +58,34 @@ dependencies:
|
|
58
58
|
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: '3.9'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: rubocop
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '0'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: rubocop-rails
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
61
89
|
- !ruby/object:Gem::Dependency
|
62
90
|
name: sqlite3
|
63
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,7 +151,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
123
151
|
requirements:
|
124
152
|
- - ">="
|
125
153
|
- !ruby/object:Gem::Version
|
126
|
-
version:
|
154
|
+
version: 2.6.0
|
127
155
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
128
156
|
requirements:
|
129
157
|
- - ">="
|