foobara 0.0.42 → 0.0.44

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: c7b24f7f9af98e9e8e466db8a6cf173a23ec9ff6c9b79f9300a24d30e9706f48
4
- data.tar.gz: e55ff2870498406775063852ccca4650da55ef6d6027db5702b2b0275a42624f
3
+ metadata.gz: b60c0cc3d83cf48f2ddf1f1e894780ac6734fbc900f7eed95a2330b22e3be91a
4
+ data.tar.gz: 33d2d647bbc84b7452dc0bd49d63bd011bba7ee1c7efec41a927dc31bdaf5e9c
5
5
  SHA512:
6
- metadata.gz: 6a7998ddfa98ed8d45017a23aff622f95e8defd67d82a3fcb1a4ab6bd5c7f5de263793a6e7b3cff2572333a7842d4bceaa6431d24cf031929fa0d258cb68174c
7
- data.tar.gz: 5c0f21ab259a5d31c208bb2c74fbfa040d7dfb13caed4bdfb365f789b9a9cb0eb153d5bb3d8fa17deee56207c53626ca7747843296dc50bc9a16c851f8f6265d
6
+ metadata.gz: 70a2aad2daf712a50b363cf909a203e393b76ea5e1591d36800030df1dc338eabfeceb233e45dc9a08d2174077c31f389c96b58eb703c6b1666c0a7eff71fc44
7
+ data.tar.gz: 13708b13ba186780158224396be937ebdbceda0dd8ff0ac8d07ede3b35dda71013a14413f2548b2891d1ef1a7b54333b0d0383322e6fd3e08a5786d2f6ac1be0
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.2.2
1
+ 3.4.1
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## [0.0.44] - 2025-01-03
2
+
3
+ - Bumped Ruby from 3.2.2 to 3.4.1
4
+ - Allow passing in a module when registering a "builtin" type
5
+
1
6
  ## [0.0.42] - 2024-12-23
2
7
 
3
8
  - Add a Domain.domain_through_modules helper
data/README.md CHANGED
@@ -78,6 +78,8 @@ You can watch a video that gives a good overview of what Foobara is and its goal
78
78
  * Engineers can spend more time operating within a specific mental model at a time instead of
79
79
  multiple mental models all at once.
80
80
 
81
+ ![Command-centric + Discoverability](https://github.com/foobara/examples/blob/main/images/cc-plus-disc-small.jpg?raw=true)
82
+
81
83
  ## Other features for helping with Domain complexity
82
84
 
83
85
  * Domains and Organizations
@@ -13,13 +13,14 @@ module Foobara
13
13
  type_symbol,
14
14
  base_type,
15
15
  target_classes = const_get("::#{Util.classify(type_symbol)}"),
16
- description: "Built-in #{type_symbol} type"
16
+ description: "Built-in #{type_symbol} type",
17
+ type_module: nil
17
18
  )
18
19
  declaration_data = { type: type_symbol.to_sym }
19
20
 
20
21
  module_symbol = Util.classify(type_symbol).to_sym
21
22
 
22
- builtin_type_module = const_get(module_symbol, false)
23
+ builtin_type_module = type_module || const_get(module_symbol, false)
23
24
 
24
25
  processor_classes_requiring_type = []
25
26
 
@@ -6,8 +6,7 @@ module Foobara
6
6
  def to_proc
7
7
  @to_proc ||= if has_keyword_args?
8
8
  proc do |*args, &block|
9
- keyword_args = args.reduce(:merge) || {}
10
- original_block.call(**keyword_args, &block)
9
+ original_block.call(**args.reduce(:merge), &block)
11
10
  end
12
11
  else
13
12
  original_block
@@ -261,7 +261,7 @@ module Foobara
261
261
  def process_delayed_connections
262
262
  delayed_connections.each_pair do |registerable_name, arg_hash|
263
263
  args = arg_hash[:args]
264
- opts = arg_hash[:opts] || {}
264
+ opts = arg_hash[:opts]
265
265
 
266
266
  const = Object.const_get(registerable_name)
267
267
  connect(const, *args, **opts)
@@ -211,8 +211,6 @@ module Foobara
211
211
  end
212
212
 
213
213
  def normalize(key_parts)
214
- return nil if key_parts.nil?
215
-
216
214
  case key_parts
217
215
  when Array
218
216
  key_parts.map do |key_part|
@@ -223,9 +221,7 @@ module Foobara
223
221
  when Integer
224
222
  key_parts
225
223
  when String
226
- if key_parts.empty?
227
- nil
228
- elsif key_parts =~ INDEX_VALUE
224
+ if key_parts =~ INDEX_VALUE
229
225
  key_parts.to_i
230
226
  else
231
227
  key_parts.to_sym
@@ -153,11 +153,7 @@ module Foobara
153
153
  when Symbol, Integer
154
154
  key_parts
155
155
  when String
156
- if key_parts.empty?
157
- nil
158
- else
159
- key_parts.to_sym
160
- end
156
+ key_parts.to_sym
161
157
  else
162
158
  # :nocov:
163
159
  raise ArgumentError, "expected nil, a symbol, or a string, an integer, or an array of such values "
@@ -55,7 +55,9 @@ module Foobara
55
55
  # interpret how it goes. This might create some awkwardness or confusion at least when creating one of the
56
56
  # two types of transformer.
57
57
  def type_declaration(_from_type)
58
+ # :nocov:
58
59
  nil
60
+ # :nocov:
59
61
  end
60
62
 
61
63
  def type(from_type)
@@ -66,7 +68,6 @@ module Foobara
66
68
  dec
67
69
  else
68
70
  Domain.current.foobara_type_from_declaration(dec)
69
-
70
71
  end
71
72
  end
72
73
  end
metadata CHANGED
@@ -1,14 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foobara
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.42
4
+ version: 0.0.44
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miles Georgi
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2024-12-24 00:00:00.000000000 Z
10
+ date: 2025-01-03 00:00:00.000000000 Z
11
11
  dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: bigdecimal
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '0'
12
26
  - !ruby/object:Gem::Dependency
13
27
  name: foobara-util
14
28
  requirement: !ruby/object:Gem::Requirement
@@ -414,7 +428,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
414
428
  requirements:
415
429
  - - ">="
416
430
  - !ruby/object:Gem::Version
417
- version: 3.2.2
431
+ version: 3.4.0
418
432
  required_rubygems_version: !ruby/object:Gem::Requirement
419
433
  requirements:
420
434
  - - ">="