spud 0.2.3 → 0.2.4

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