lazy_lazer 0.5.2 → 0.5.3

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
  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