barley 0.6.1 → 0.6.2

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: 80e724f1d510a0774072dab90c06262278a06fd49adff8a77314852c2aafbe7f
4
- data.tar.gz: a13898b638153e90c95c25d0558c54e63b2514c6095be81c5755fb5d92dbb544
3
+ metadata.gz: 802ad211955dc1b4f0579ff2f88ac1e88a56eb2425317ae46b1cda590cfc1f26
4
+ data.tar.gz: 5f5e309f03e3422f9b2bd7e7b7319994c5c63d3367043e6f6c19328784e73c01
5
5
  SHA512:
6
- metadata.gz: da037e1c4749228e9fa48db4dcc00a8b614ebac1acc5ba0646c61fce0b77a377e530581b7536bc08b3111747ed6303ce60d3a275ac4c8cef2231a1ef726d873b
7
- data.tar.gz: 49b297c3db282da63110f28d9599157ac91f50c7fec42916e4a387c20ef0010ebfd3e4b4c53b03baa61985cdf17cdd7b79412eb388551d7c5a58d2c5f00b36b3
6
+ metadata.gz: 3189c87d7fe0d3cdb96a6c503a56f0469a3f97cd965feeafb0337e351cdd8199990b63ac1d119381ef3058914ed07b41f81fc9b0d1789059ae3d944171731226
7
+ data.tar.gz: 000bdb7632ea4ab4c1d015fdae029220dc35cbae03ddd1999cf016f21e1c08f46699a7ad610fcc816abbb21e014408c2b838e37a3ef036cb3806b373981f15ab
data/README.md CHANGED
@@ -464,8 +464,3 @@ Make sure you adhere to [our code of conduct](CODE_OF_CONDUCT.md). We aim to kee
464
464
  ## Security
465
465
 
466
466
  Please refer to our [security guidelines](SECURITY.md)
467
-
468
- ## Credits
469
- Barley is brought to you by the developer team from [StockPro](https://www.stock-pro.fr/).
470
-
471
- [![Barley is brought to you by StockPro](https://i.imgur.com/5a0veEG.png)](https://www.stock-pro.fr/)
data/lib/barley/error.rb CHANGED
@@ -3,4 +3,7 @@
3
3
  module Barley
4
4
  class Error < StandardError
5
5
  end
6
+
7
+ class InvalidAttributeError < Error
8
+ end
6
9
  end
@@ -73,11 +73,18 @@ module Barley
73
73
  # @param key_name [Symbol] the key name in the hash
74
74
  # @param type [Dry::Types] the type to use, or coerce the value to
75
75
  # @param block [Proc] a block to use to compute the value
76
+ # @raise [Barley::InvalidAttributeError] if the value does not match the type - when a type is provided
76
77
  def attribute(key, key_name: nil, type: nil, &block)
77
78
  key_name ||= key
78
79
  define_method(key_name) do
79
80
  value = block ? instance_eval(&block) : object.send(key)
80
- type.nil? ? value : type[value]
81
+ if type.nil?
82
+ value
83
+ else
84
+ raise Barley::InvalidAttributeError, "Invalid value type found for attribute #{key_name}::#{type.name}: #{value}::#{value.class}" unless type.valid?(value)
85
+
86
+ type[value]
87
+ end
81
88
  end
82
89
 
83
90
  self.defined_attributes = (defined_attributes || []) << key_name
@@ -1,3 +1,3 @@
1
1
  module Barley
2
- VERSION = "0.6.1"
2
+ VERSION = "0.6.2"
3
3
  end
data/lib/barley.rb CHANGED
@@ -15,6 +15,7 @@ module Barley
15
15
 
16
16
  autoload :Cache, "barley/cache"
17
17
  autoload :Error, "barley/error"
18
+ autoload :InvalidAttributeError, "barley/error"
18
19
  autoload :Serializable, "barley/serializable"
19
20
  autoload :Serializer, "barley/serializer"
20
21
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: barley
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cedric Delalande
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-14 00:00:00.000000000 Z
11
+ date: 2024-06-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails