parametric 0.2.14 → 0.2.15

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