spud 0.2.0 → 0.2.5

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.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/lib/spud.rb +3 -2
  3. data/lib/spud/block_param_info.rb +80 -0
  4. data/lib/spud/cli/options.rb +35 -0
  5. data/lib/spud/cli/parser.rb +23 -19
  6. data/lib/spud/cli/results.rb +18 -11
  7. data/lib/spud/driver.rb +135 -0
  8. data/lib/spud/error.rb +1 -0
  9. data/lib/spud/help.rb +13 -13
  10. data/lib/spud/lister.rb +27 -22
  11. data/lib/spud/shell/command.rb +75 -0
  12. data/lib/spud/shell/result.rb +33 -0
  13. data/lib/spud/task_arg.rb +24 -12
  14. data/lib/spud/task_args.rb +20 -18
  15. data/lib/spud/task_runners/make/task.rb +67 -0
  16. data/lib/spud/task_runners/package.json/task.rb +71 -0
  17. data/lib/spud/task_runners/spud_task_runner/dependency.rb +49 -0
  18. data/lib/spud/task_runners/spud_task_runner/file_dsl.rb +57 -0
  19. data/lib/spud/task_runners/spud_task_runner/task.rb +148 -0
  20. data/lib/spud/task_runners/spud_task_runner/task_dsl.rb +90 -0
  21. data/lib/spud/task_runners/task.rb +40 -0
  22. data/lib/spud/task_runners/task_runners.rb +25 -0
  23. data/lib/spud/version.rb +2 -1
  24. data/lib/spud/watch.rb +73 -0
  25. metadata +46 -16
  26. data/lib/spud/build_tools/build_tools.rb +0 -13
  27. data/lib/spud/build_tools/make/task.rb +0 -27
  28. data/lib/spud/build_tools/package.json/task.rb +0 -47
  29. data/lib/spud/build_tools/spud/block_param_info.rb +0 -77
  30. data/lib/spud/build_tools/spud/dsl/file.rb +0 -23
  31. data/lib/spud/build_tools/spud/dsl/task.rb +0 -63
  32. data/lib/spud/build_tools/spud/shell/command.rb +0 -52
  33. data/lib/spud/build_tools/spud/shell/result.rb +0 -26
  34. data/lib/spud/build_tools/spud/task.rb +0 -125
  35. data/lib/spud/build_tools/task.rb +0 -33
  36. data/lib/spud/options.rb +0 -14
  37. data/lib/spud/runtime.rb +0 -104
@@ -1,33 +0,0 @@
1
- module Spud
2
- module BuildTools
3
- class Task
4
- # @return [String]
5
- attr_reader :name
6
- # @return [String]
7
- attr_reader :filename
8
- # @return [Spud::TaskArgs]
9
- attr_reader :args
10
-
11
- # @return [void]
12
- def self.mount!
13
- raise NotImplementedError
14
- end
15
-
16
- # @param name [String]
17
- # @param filename [String]
18
- def initialize(name:, filename:)
19
- @name = name
20
- @filename = filename
21
-
22
- Runtime.tasks[name.to_s] = self
23
- end
24
-
25
- # @param positional [Array]
26
- # @param named [Hash]
27
- # @return [Object]
28
- def invoke(positional = [], named = {})
29
- raise NotImplementedError
30
- end
31
- end
32
- end
33
- end
@@ -1,14 +0,0 @@
1
- module Spud
2
- class Options
3
- BOOLEANS = %i[help files debug]
4
-
5
- BOOLEANS.each do |name|
6
- attr_accessor name
7
- define_method("#{name}?") { !!send(name) }
8
- end
9
-
10
- def watches
11
- @watches ||= []
12
- end
13
- end
14
- end
@@ -1,104 +0,0 @@
1
- require 'spud/error'
2
- require 'spud/help'
3
- require 'spud/lister'
4
- require 'spud/cli/parser'
5
- require 'spud/build_tools/task'
6
- require 'spud/build_tools/build_tools'
7
-
8
- module Spud
9
- module Runtime
10
- class << self
11
- def run!
12
- if options.debug?
13
- puts "options: #{options.inspect}"
14
- puts "task: #{args.task}"
15
- puts "positional: #{args.positional}"
16
- puts "named: #{args.named}"
17
- end
18
-
19
- if options.help?
20
- Spud::Help.print!
21
- return
22
- end
23
-
24
- mount!
25
- if options.files?
26
- lister.list_filenames!
27
- return
28
- end
29
-
30
- unless args.task
31
- print_tasks!
32
- return
33
- end
34
-
35
- invoke(args.task, args.positional, args.named)
36
- rescue Error => error
37
- puts error.message
38
- raise error if options.debug?
39
- rescue => error
40
- puts "fatal: #{error.message}"
41
- raise error if options.debug?
42
- end
43
-
44
- # @param task_name [String]
45
- # @param positional [Array]
46
- # @param named [Hash]
47
- def invoke(task_name, positional = [], named = {})
48
- task = tasks[task_name.to_s]
49
- raise Error, "no task found for '#{task_name}'" unless task
50
- task.invoke(positional, named)
51
- end
52
-
53
- # @return [Hash{String->Spud::Task}]
54
- def tasks
55
- @tasks ||= {}
56
- end
57
-
58
- private
59
-
60
- # @return [Array<String>]
61
- def filenames
62
- @filenames ||= tasks.values.map(&:filename).uniq
63
- end
64
-
65
- # @return [void]
66
- def mount!
67
- build_tools.each(&:mount!)
68
- tasks.keys.each do |key|
69
- tasks[key.to_s] = tasks.delete(key) if key.is_a?(Symbol)
70
- end
71
- end
72
-
73
- # @return [Array<Spud::BuildTools::Task>]
74
- def build_tools
75
- @build_tools ||= begin
76
- BuildTools::BUILD_TOOLS.each do |tool|
77
- raise "build tool does not inherit from BuildTools::Task" unless tool < BuildTools::Task
78
- end
79
-
80
- BuildTools::BUILD_TOOLS.reverse
81
- end
82
- end
83
-
84
- # @return [Spud::Options]
85
- def options
86
- args.options
87
- end
88
-
89
- # @return [Spud::CLI::Results]
90
- def args
91
- @args ||= Spud::CLI::Parser.parse!
92
- end
93
-
94
- # @return [void]
95
- def print_tasks!
96
- lister.list!
97
- end
98
-
99
- def lister
100
- @lister ||= Lister.new(tasks.values)
101
- end
102
- end
103
- end
104
- end