lazy_lazer 0.5.2 → 0.5.3

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
  SHA1:
3
- metadata.gz: 1f995a4141541e28c93522484e53a3a0e7d36048
4
- data.tar.gz: 27aee5cf991dcf61f80fd915c328769a7c3d0889
3
+ metadata.gz: 733ca16c8cce77a9ba449860622b6c0d85f71228
4
+ data.tar.gz: 215967ea00e04c84130153a8c7f8bf526644c5af
5
5
  SHA512:
6
- metadata.gz: fd15e803ab225318bd4d93664e6756096814605bf084f2b4e7de84f10a63e3656a2c3e637d01f109c6bb962dfff8b7cded01259698c6385dd2c18fbac256521a
7
- data.tar.gz: 3826025a30d3dce79d0a2b44dc067e7c59e01bfecf68704192713c39d078b9a1a8e4673bf797b0ba3f1787bf0739e355edac2d3427811cfe0f5c546e7ccfc7c5
6
+ metadata.gz: a65d2e629e89fd55c9f009ae9548e436f6f90812f7f19fca63a232224c224dd59e1d9f16d0c389ab1863eed9088414947fd1a0f7bdcbf8344f97026ba7f040c3
7
+ data.tar.gz: 6d8cfc343e579b807eff4e73723c77abdb88c554c1c8b4af93e525a908018d13bca75386e689a758f7e6f217e52b24a1300cb2f4b61d4da75db412adffcb2cc0
data/README.md CHANGED
@@ -8,7 +8,7 @@ require 'lazy_lazer'
8
8
  class User
9
9
  include LazyLazer
10
10
 
11
- property :id, :required
11
+ property :id, :identity, :required
12
12
  property :email, default: 'unknown@example.com'
13
13
  property :created_at, from: :creation_time_utc, with: ->(t) { Time.at(t) }
14
14
  property :age, with: :to_i
@@ -16,7 +16,7 @@ class User
16
16
  property :favorite_ice_cream
17
17
 
18
18
  def lazer_reload
19
- self.fully_loaded = true # mark model as fully updated
19
+ fully_loaded! # mark model as fully updated
20
20
  { favorite_ice_cream: %w[vanilla strawberry chocolate].sample }
21
21
  end
22
22
  end
@@ -24,8 +24,8 @@ module LazyLazer
24
24
  end
25
25
 
26
26
  # @return [Array] the identity properties
27
- def identity_properties
28
- @key_metadata.identity_properties
27
+ def required_properties
28
+ @key_metadata.required_properties
29
29
  end
30
30
 
31
31
  # Converts all unconverted keys and packages them as a hash.
@@ -11,9 +11,6 @@ module LazyLazer
11
11
  # @return [Boolean] whether the key must exist when creating the model
12
12
  attr_accessor :required
13
13
 
14
- # @return [Boolean] whether the key is used for equality comparision
15
- attr_accessor :identity
16
-
17
14
  # @return [Boolean] whether the key must exist when loaded
18
15
  attr_accessor :runtime_required
19
16
 
@@ -29,7 +26,6 @@ module LazyLazer
29
26
  boolean_options.each_with_object(options) { |sym, hsh| hsh[sym] = true }
30
27
  self.source_key = options[:from] || key_name
31
28
  self.required = !!options[:required]
32
- self.identity = !!options[:identity]
33
29
  self.runtime_required = !options.key?(:default) && !options[:nil]
34
30
  self.transform = options[:with]
35
31
  self.default = options[:default]
@@ -40,11 +36,6 @@ module LazyLazer
40
36
  @required
41
37
  end
42
38
 
43
- # @return [Boolean] whether the key is used for equality comparision
44
- def identity?
45
- @identity
46
- end
47
-
48
39
  # @return [Boolean] whether the key must exist when loaded
49
40
  def runtime_required?
50
41
  @runtime_required
@@ -6,13 +6,9 @@ module LazyLazer
6
6
  # @return [Array<Symbol>] the required properties
7
7
  attr_reader :required_properties
8
8
 
9
- # @return [Array<Symbol>] the identity properties
10
- attr_reader :identity_properties
11
-
12
9
  def initialize
13
10
  @collection = {}
14
11
  @required_properties = []
15
- @identity_properties = []
16
12
  end
17
13
 
18
14
  # Add a KeyMetadata to the store.
@@ -22,7 +18,6 @@ module LazyLazer
22
18
  def add(key, meta)
23
19
  @collection[key] = meta
24
20
  @required_properties << key if meta.required?
25
- @identity_properties << key if meta.identity?
26
21
  meta
27
22
  end
28
23
 
@@ -2,5 +2,5 @@
2
2
 
3
3
  module LazyLazer
4
4
  # The gem's semantic version number.
5
- VERSION = '0.5.2'
5
+ VERSION = '0.5.3'
6
6
  end
data/lib/lazy_lazer.rb CHANGED
@@ -36,7 +36,6 @@ module LazyLazer
36
36
  # @param options [Hash] the options to create the property with
37
37
  # @option options [Boolean] :required (false) whether existence of this property should be
38
38
  # checked on model creation
39
- # @option options [Boolean] :identity (false) use this key for equality comparisions
40
39
  # @option options [Boolean] :nil (false) shortcut for default: nil
41
40
  # @option options [Object, Proc] :default the default value to return if not provided
42
41
  # @option options [Symbol] :from (name) the key in the source object to get the property from
@@ -73,13 +72,13 @@ module LazyLazer
73
72
  @_lazer_loaded = false
74
73
  end
75
74
 
76
- # Equality check.
75
+ # Equality check, performed using required keys.
77
76
  # @param other [Object] the other object
78
77
  # @return [Boolean]
79
78
  def ==(other)
80
79
  return false if self.class != other.class
81
- return super if @_lazer_model.identity_properties.empty?
82
- @_lazer_model.identity_properties.each do |key_name|
80
+ return super if @_lazer_model.required_properties.empty?
81
+ @_lazer_model.required_properties.each do |key_name|
83
82
  return false if self[key_name] != other[key_name]
84
83
  end
85
84
  true
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lazy_lazer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Avinash Dwarapu