pair-kit-dsl-factory 0.0.2 → 0.0.3

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: 9b927088c9b61b8fc67ab0b3f956842c130e1df1595dbe2eedbf571f03d3385a
4
- data.tar.gz: 3475eca97235dab7bbefb94756900b3c02c450bd5e9ba21f6dab7adaadb5f80a
3
+ metadata.gz: 9b477437ab7afc9980b78c72d3f783b24a61b1347f2d5cce627cf1dff24951f5
4
+ data.tar.gz: e1da99342386399520411625db9e0c5935ee35c8e7f316df5d7f37e944dc05e9
5
5
  SHA512:
6
- metadata.gz: 16c502c9f582e05578fff8258d20231710a8dbb6feeae03013d652a3e0a057f3b30e86770ced58edface8a1eafd1afc3757b0c28830674ae9599922b8c59f3b4
7
- data.tar.gz: '0284179927efd225a276ff0201a3d1a828cf4a4b9e49de8022068f943605d6091d845b26dee09e18646e5701012f78844d9e2b45126e70f598060d1e32855a47'
6
+ metadata.gz: 5099838a6d736bba3305011bac094cb1d763d8ab3736d2d38814150373a15043b1b9521ef6d046ac4a8f14a7fa587b946aeecbaff04ae2ed6f2b956ae8f4ef51
7
+ data.tar.gz: 9ad5efb13025995dcd04602880aca1fbcb916e0da814f08a2ca11d1a713db9dede72998cf0167f970f80c98bb2bef3716ee7cb72de6d069ad811ba1073e554d4
data/CHANGELOG.md CHANGED
@@ -1,4 +1,9 @@
1
1
  # Changelog
2
2
 
3
- ## 0.1.0 (01-Jul-24)
3
+ ## 0.0.1 (01-Jul-24)
4
4
  * Initial release
5
+
6
+
7
+
8
+ ## 0.0.3 (07-Jul-24)
9
+ * Added context
@@ -1,9 +1,10 @@
1
1
  module PairKit
2
2
  class DslFactory
3
3
  class Builder
4
- def initialize(dsl, subject, **options)
4
+ def initialize(dsl, subject, context, **options)
5
5
  @dsl = dsl
6
6
  @subject = subject
7
+ @context = context
7
8
  @options = options
8
9
  end
9
10
  end
@@ -0,0 +1,19 @@
1
+ module PairKit
2
+ class DslFactory
3
+ class ContextDsl
4
+ def initialize(dsl, context)
5
+ @dsl = dsl
6
+ @context = context
7
+ end
8
+
9
+ def call(thing, **options, &block)
10
+ builder_name = (options[:builder] = options[:builder]&.to_sym || @dsl.default_builder)
11
+
12
+ builder_class = @dsl.builders[builder_name] || raise("Unknown builder #{builder_name}")
13
+
14
+ Wrapper.new(builder_name, builder_class.new(self, thing, @context, **options))
15
+ .tap { |x| x.instance_exec(&block) if block }
16
+ end
17
+ end
18
+ end
19
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module PairKit
4
4
  class DslFactory
5
- VERSION = '0.0.2'
5
+ VERSION = '0.0.3'
6
6
  end
7
7
  end
@@ -3,6 +3,7 @@ module PairKit
3
3
  require_relative 'dsl_factory/version'
4
4
  require_relative 'dsl_factory/builder'
5
5
  require_relative 'dsl_factory/wrapper'
6
+ require_relative 'dsl_factory/context_dsl'
6
7
 
7
8
  attr_reader :builders
8
9
 
@@ -20,20 +21,11 @@ module PairKit
20
21
  self
21
22
  end
22
23
 
23
- def build(thing, **options, &block)
24
- call(thing, **options, &block)
24
+ def build(thing, context = nil, **options, &block)
25
+ ContextDsl.new(self, context).call(thing, **options, &block)
25
26
  thing
26
27
  end
27
28
 
28
- def call(thing, **options, &block)
29
- builder_name = (options[:builder] = options[:builder]&.to_sym || default_builder)
30
-
31
- builder_class = builders[builder_name] || raise("Unknown builder #{builder_name}")
32
-
33
- Wrapper.new(builder_name, builder_class.new(self, thing, **options))
34
- .tap { |x| x.instance_exec(&block) if block }
35
- end
36
-
37
29
  def default_builder
38
30
  builders.keys.first
39
31
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pair-kit-dsl-factory
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Sharkov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-03 00:00:00.000000000 Z
11
+ date: 2024-07-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry-byebug
@@ -172,6 +172,7 @@ files:
172
172
  - Rakefile
173
173
  - lib/pair_kit/dsl_factory.rb
174
174
  - lib/pair_kit/dsl_factory/builder.rb
175
+ - lib/pair_kit/dsl_factory/context_dsl.rb
175
176
  - lib/pair_kit/dsl_factory/version.rb
176
177
  - lib/pair_kit/dsl_factory/wrapper.rb
177
178
  - pair_kit_dsl_factory.gemspec