barley 0.6.1 → 0.6.2

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