validator_fn 0.3.9 → 0.4.0

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: ee9bfac9a9c6e88cd08fc270860a60a919c2389a390fb7086e8767048542e0c7
4
- data.tar.gz: 2168dc33c3a7bc6fba8f47f3832c744a2ec9514b0f9b752aa35fe2ce93d92c63
3
+ metadata.gz: 1ae4f194cce16e854dccde3dc29e7d382084289945402ded960414d94dc7630f
4
+ data.tar.gz: 7a19354da9723c01d81d79540a358dad546a2611b7893399ea38b09025d83f0e
5
5
  SHA512:
6
- metadata.gz: 944e615250789bb463461c42aab479685ca1dba5e386550d1d54ae08234e1a7142d21c78680b0aab1071fdcbc89666e9ba6be8ed68674cbe3fe31d9677ef48a7
7
- data.tar.gz: d4f6d2389ecfef0b4b0e12305097b3890b80577d57318a9b8cfa99ca7e0029f2eacb68fddfce295fb59b818a3f670ac68f0dbef955125253d9a0690bb870b61a
6
+ metadata.gz: 452a5fa550d3c5c9948099e1c9e2e840dd800bed22a0b8b777a81c824cdc04d0ea11f496d601fb61b750542585e96741f55292c5bbdf078e499f73b15a961c5b
7
+ data.tar.gz: c2d9d6f854407f958024efe80095490ff7d1c890ee4421f02fc5e26ee44a766c26c3e496bc996fecbe1ec4140f97e3e9a9465df6ef14faf69035ba3a1ab569dd
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- validator_fn (0.3.9)
4
+ validator_fn (0.4.0)
5
5
  fn_reader
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -62,7 +62,7 @@ user = hash_of.({name: is_a.(String), age: to_int})
62
62
  user.({name: "", age: "234"})
63
63
  ```
64
64
 
65
- Since we are using curried lambdas, you can compose validators as you which.
65
+ Since we are using curried lambdas, you can compose validators as you wish.
66
66
 
67
67
  ```ruby
68
68
  postal_code = -> a {
@@ -109,6 +109,9 @@ code = ValidatorFn.generate_validator.(struct)
109
109
  # You can reformat it using a code formatter
110
110
  require "rufo"
111
111
  puts Rufo.format(code)
112
+ ```
113
+ The output
114
+ ```
112
115
  hash_of.({ "login" => is_a.(String),
113
116
  "id" => is_a.(Integer),
114
117
  "node_id" => is_a.(String),
@@ -23,7 +23,7 @@ module ValidatorFn
23
23
 
24
24
  class MissingKey < Error
25
25
  def initialize(key)
26
- super("Missing field #{key}")
26
+ super("Missing field #{key.inspect}")
27
27
  end
28
28
  end
29
29
  end
@@ -1,3 +1,3 @@
1
1
  module ValidatorFn
2
- VERSION = "0.3.9"
2
+ VERSION = "0.4.0"
3
3
  end
data/lib/validator_fn.rb CHANGED
@@ -42,10 +42,13 @@ module ValidatorFn
42
42
  @@hash_of = ->fields, hash {
43
43
  hash ||= {}
44
44
  fields.reduce({}) do |memo, (key, fn)|
45
- memo[key] = fn.(hash[key])
45
+ value = hash.fetch(key) { raise MissingKey.new(key) }
46
+ memo[key] = fn.(value)
46
47
  memo
47
48
  rescue Error => e
48
49
  invalid.("Invalid value for #{key.inspect} key:")
50
+ rescue MissingKey => e
51
+ invalid.(e.message)
49
52
  end
50
53
  }.curry
51
54
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: validator_fn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.9
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Chabot
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-23 00:00:00.000000000 Z
11
+ date: 2023-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fn_reader
@@ -67,7 +67,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  requirements: []
70
- rubygems_version: 3.4.1
70
+ rubygems_version: 3.4.12
71
71
  signing_key:
72
72
  specification_version: 4
73
73
  summary: Series of lambdas for validating Ruby structures