bake 0.17.0 → 0.18.0

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: 10135085caa64994c79251726699d674223c0e4441d937cc548f56893b8ba331
4
- data.tar.gz: ca1a86f96716c5a7e1827b49b3eefd06164295f0ab5621b007d5bd727bbba76a
3
+ metadata.gz: f661b25836e9a41dd7e626297a8102f5096ba16fc56819f0c1a5ae9ce9e42ed4
4
+ data.tar.gz: 521eba8cc86affdbdda37a1a8753107e04fb0903a481b0aed031e18c3699e229
5
5
  SHA512:
6
- metadata.gz: d3db37001328e050c50adb89d6d2cd7e0cdef54f3b54ae2225d676b05e7ff735be19ba2056912e571ce5185f7a7336e334809b66c5312da1e0dbd798b4d87b3a
7
- data.tar.gz: feb7ea189a4841a2b08ab43aa4a683ada9b19bb5fe8a189ba888b945bc8e1c85501e564030b883cf28eb24d9348e1fdbbf93a605ea1111245f29e4bb5469109d
6
+ metadata.gz: 7b7138456ea6b2753a9c78d9f0df5ea3a7b789b6f1d6c75946ee2c896139c87627ad6c0429fc612fb30fd6958c475d670b9b9044dbf72d35a51223598d2c4775
7
+ data.tar.gz: 593d60a3b0c6cae127a71e8af68c4b4c16088d82b033b307c509f500e219a3716f804dc7df01ed93a762dea54c849b5a0b6206cf009d491c29fbe8bd524d8b4f
checksums.yaml.gz.sig CHANGED
Binary file
@@ -26,11 +26,14 @@ require_relative 'documentation'
26
26
  module Bake
27
27
  # Structured access to arguments.
28
28
  class Arguments
29
- def self.extract(recipe, arguments)
30
- self.new(recipe).extract(arguments)
29
+ def self.extract(recipe, arguments, **defaults)
30
+ # Only supply defaults that match the recipe option names:
31
+ defaults = defaults.slice(*recipe.required_options)
32
+
33
+ self.new(recipe, defaults).extract(arguments)
31
34
  end
32
35
 
33
- def initialize(recipe)
36
+ def initialize(recipe, defaults)
34
37
  @recipe = recipe
35
38
 
36
39
  @types = recipe.types
@@ -38,7 +41,7 @@ module Bake
38
41
  @arity = recipe.arity
39
42
 
40
43
  @ordered = []
41
- @options = {}
44
+ @options = defaults
42
45
  end
43
46
 
44
47
  attr :ordered
@@ -32,17 +32,6 @@ module Bake
32
32
  class Call < Samovar::Command
33
33
  self.description = "Execute one or more commands."
34
34
 
35
- OUTPUT = {
36
- json: ->(value){require 'json'; $stdout.puts(JSON.pretty_generate(value))},
37
- pp: ->(value){require 'pp'; PP.pp(value, $stdout)},
38
- raw: ->(value){$stdout.puts(value)},
39
- yaml: ->(value){require 'yaml'; $stdout.puts(YAML.dump(value))},
40
- }
41
-
42
- options do
43
- option "-o/--output <format>", "Output the result of the last task in the given format: #{OUTPUT.keys.join(", ")}.", type: Symbol
44
- end
45
-
46
35
  def bakefile
47
36
  @parent.bakefile
48
37
  end
@@ -58,11 +47,7 @@ module Bake
58
47
  def call
59
48
  context = @parent.context
60
49
 
61
- last_result = context.call(*@commands)
62
-
63
- if output = @options[:output]
64
- format(output, last_result)
65
- end
50
+ context.call(*@commands)
66
51
  end
67
52
  end
68
53
  end
data/lib/bake/context.rb CHANGED
@@ -118,7 +118,7 @@ module Bake
118
118
 
119
119
  while command = commands.shift
120
120
  if recipe = @recipes[command]
121
- arguments, options = recipe.prepare(commands)
121
+ arguments, options = recipe.prepare(commands, last_result)
122
122
  last_result = recipe.call(*arguments, **options)
123
123
  else
124
124
  raise ArgumentError, "Could not find recipe for #{command}!"
data/lib/bake/loaders.rb CHANGED
@@ -97,6 +97,8 @@ module Bake
97
97
 
98
98
  # Enumerate all loaded gems and add them.
99
99
  def append_from_gems
100
+ Console.logger.debug(self) {::Gem.loaded_specs.keys.grep(/bake/)}
101
+
100
102
  ::Gem.loaded_specs.each do |name, spec|
101
103
  Console.logger.debug(self) {"Checking gem #{name}: #{spec.full_gem_path}..."}
102
104
 
data/lib/bake/recipe.rb CHANGED
@@ -85,6 +85,16 @@ module Bake
85
85
  end
86
86
  end
87
87
 
88
+ def required_options
89
+ if parameters = self.parameters
90
+ parameters.map do |(type, name)|
91
+ if type == :keyreq
92
+ name
93
+ end
94
+ end.compact
95
+ end
96
+ end
97
+
88
98
  # The command name for this recipe.
89
99
  def command
90
100
  @command ||= compute_command
@@ -107,8 +117,8 @@ module Bake
107
117
  # @parameter arguments [Array(String)] The command line arguments
108
118
  # @returns ordered [Array]
109
119
  # @returns options [Hash]
110
- def prepare(arguments)
111
- Arguments.extract(self, arguments)
120
+ def prepare(arguments, last_result = nil)
121
+ Arguments.extract(self, arguments, input: last_result)
112
122
  end
113
123
 
114
124
  # Call the recipe with the specified arguments and options.
@@ -33,8 +33,8 @@ module Bake
33
33
  false
34
34
  end
35
35
 
36
- def self.parse(value)
37
- BigDecimal(value)
36
+ def self.parse(input)
37
+ BigDecimal(input)
38
38
  end
39
39
  end
40
40
  end
@@ -31,8 +31,8 @@ module Bake
31
31
  false
32
32
  end
33
33
 
34
- def self.parse(value)
35
- value.to_f
34
+ def self.parse(input)
35
+ input.to_f
36
36
  end
37
37
  end
38
38
  end
@@ -31,8 +31,8 @@ module Bake
31
31
  false
32
32
  end
33
33
 
34
- def self.parse(value)
35
- Integer(value)
34
+ def self.parse(input)
35
+ Integer(input)
36
36
  end
37
37
  end
38
38
  end
@@ -31,8 +31,8 @@ module Bake
31
31
  false
32
32
  end
33
33
 
34
- def self.parse(value)
35
- value.to_s
34
+ def self.parse(input)
35
+ input.to_s
36
36
  end
37
37
  end
38
38
  end
data/lib/bake/version.rb CHANGED
@@ -21,5 +21,5 @@
21
21
  # THE SOFTWARE.
22
22
 
23
23
  module Bake
24
- VERSION = "0.17.0"
24
+ VERSION = "0.18.0"
25
25
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bake
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.0
4
+ version: 0.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
@@ -37,7 +37,7 @@ cert_chain:
37
37
  RAOsIl+HOBTb252nx1kIRN5hqQx272AJCbCjKx8egcUQKffFVVCI0nye09v5CK+a
38
38
  HiLJ8VOFx6w=
39
39
  -----END CERTIFICATE-----
40
- date: 2022-05-21 00:00:00.000000000 Z
40
+ date: 2022-05-22 00:00:00.000000000 Z
41
41
  dependencies:
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: samovar
@@ -151,7 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  requirements: []
154
- rubygems_version: 3.1.6
154
+ rubygems_version: 3.3.8
155
155
  signing_key:
156
156
  specification_version: 4
157
157
  summary: A replacement for rake with a simpler syntax.
metadata.gz.sig CHANGED
Binary file