ephemeron 0.1.0 → 0.2.0

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: 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
  - - ">="