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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 032a79004b77bffee915f105cd807beb01fcc60c52e829c478fcf615a8fa8184
4
- data.tar.gz: 65168d9788376856e6745c083f2a0d467b18deace844719e59024e9027a47db4
3
+ metadata.gz: '0660824d6ef962804b40a9bfd73a06ed2820706b2eca71a7444a9c565ec7e291'
4
+ data.tar.gz: 33eb0ec77a182fde4d013b34a8b96eb12c79c25305419ec38ba088fdc15e51bc
5
5
  SHA512:
6
- metadata.gz: 88ddba6984c039180c74433d9dc9447eae247b040700f3de02c0338e6a9ffe95dc3472c7eb982b81a867044d1c214c15cafe0ede0bf9286308d15f59664e403b
7
- data.tar.gz: 6488f41b9df17130dbedb9f1db5bfa72e1aeded337863e46fe03e898728ed6aa5dfac2666f8cdaaf7004bf0623900f1073195327e06653994d4b974a17f67f1a
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
- return class_name_and_id(model_s, as_new_record) if model_s.is_a?(ActiveRecord::Base)
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 = false)
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.keys
16
- .each { |key| Store.aliases[key] = Convert.call(model) }
15
+ .to_h
16
+ .each_key { |key| Store.aliases[key] = Convert.call(model) }
17
17
  end
18
18
  end
19
19
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Ephemeron
4
- VERSION = '0.1.0'
4
+ VERSION = '0.2.0'
5
5
  end
@@ -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, as: nil)
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[aliases[key]].tap do |model|
35
- Logger.log(model, :used) if model
36
- end
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.1.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-01-14 00:00:00.000000000 Z
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: '0'
154
+ version: 2.6.0
127
155
  required_rubygems_version: !ruby/object:Gem::Requirement
128
156
  requirements:
129
157
  - - ">="