parametric 0.2.14 → 0.2.15

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: 40164472fa5f68d604b2f20b6823b4b7c0ca81136c46826705d3a3a4b2e903f2
4
- data.tar.gz: 1bce90d98794e1cc1a169bea9ff0b6d606486a9a2e33b95b0e461cfaae567c63
3
+ metadata.gz: 247b7e008d418f1b7604c894a429fcc241a916d2af2c94c6544719d60ba9e3e5
4
+ data.tar.gz: 3bd66cba4a18db64adbbfa3d7212987498bb5457dce0941ca9c6855b5381372a
5
5
  SHA512:
6
- metadata.gz: 0b93f931277e786ea4f6a39d2db2a8152be14a9887c4a31bfb54a38c5127c85bf43b6e35e442b4b9cc40531879d5638ed234b4e62102cffb23c5b2bf12552c6e
7
- data.tar.gz: ca54de8f1cc1aaf4b0cb4805197e634ab07ecabf31cab56a54e3fca330312c3b247a984d5efabef9350729008e1f319730a74b1b068f6685eb6f9c74ddda71aa
6
+ metadata.gz: '00439640c00a0323a7f9d028dfdff7509a0431d5cf96d7091c17f8eae0ef19b7c06799a343b16712f048a8895d6ab0653b0d93f344128c375847de02227099d0'
7
+ data.tar.gz: 1eb8eddcd01b0f797f39128ef263052229f91b3195578f502c84f97b4ad4855ecb8a048478e8246f3345b67ee8469a027ff0be99b4fa7dd45f063472c573134f
@@ -54,6 +54,10 @@ module Parametric
54
54
  self
55
55
  end
56
56
 
57
+ def has_policy?(key)
58
+ policies.any? { |pol| pol.key == key }
59
+ end
60
+
57
61
  def visit(meta_key = nil, &visitor)
58
62
  if sc = meta_data[:schema]
59
63
  r = sc.visit(meta_key, &visitor)
@@ -120,7 +124,19 @@ module Parametric
120
124
 
121
125
  raise ConfigurationError, "No policies defined for #{key.inspect}" unless obj
122
126
 
123
- obj.respond_to?(:new) ? obj.new(*args) : obj
127
+ obj = obj.new(*args) if obj.respond_to?(:new)
128
+ obj = PolicyWithKey.new(obj, key)
129
+
130
+ obj
131
+ end
132
+
133
+ class PolicyWithKey < SimpleDelegator
134
+ attr_reader :key
135
+
136
+ def initialize(policy, key)
137
+ super policy
138
+ @key = key
139
+ end
124
140
  end
125
141
  end
126
142
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Parametric
4
- VERSION = "0.2.14"
4
+ VERSION = "0.2.15"
5
5
  end
data/spec/field_spec.rb CHANGED
@@ -88,6 +88,14 @@ describe Parametric::Field do
88
88
  end
89
89
  end
90
90
 
91
+ describe '#has_policy?' do
92
+ it 'is a boolean' do
93
+ subject.policy(:integer)
94
+ expect(subject.has_policy?(:integer)).to be(true)
95
+ expect(subject.has_policy?(:string)).to be(false)
96
+ end
97
+ end
98
+
91
99
  describe "#default" do
92
100
  it "is default if missing key" do
93
101
  resolve(subject.default("AA"), foobar: 1).tap do |r|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parametric
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.14
4
+ version: 0.2.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ismael Celis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-11 00:00:00.000000000 Z
11
+ date: 2021-07-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake