spud 0.2.0 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
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