spud 0.2.3 → 0.2.4

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