ytools 0.1.4 → 0.1.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.
- data/lib/VERSION +1 -1
- data/lib/ytools/path/cli.rb +19 -3
- data/lib/ytools/path/executor.rb +2 -2
- data/lib/ytools/templates/cli.rb +26 -11
- data/lib/ytools/templates/executor.rb +2 -2
- data/spec/path/executor_spec.rb +3 -1
- metadata +4 -4
data/lib/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.5
|
data/lib/ytools/path/cli.rb
CHANGED
@@ -2,16 +2,27 @@ require 'optparse'
|
|
2
2
|
require 'ytools/basecli'
|
3
3
|
require 'ytools/errors'
|
4
4
|
require 'ytools/path/executor'
|
5
|
+
require 'yaml'
|
5
6
|
|
6
7
|
module YTools::Path
|
7
8
|
class CLI < YTools::BaseCLI
|
8
9
|
protected
|
9
10
|
def execute(sargs)
|
10
11
|
begin
|
11
|
-
|
12
|
+
yaml_object = if sargs.length != 0
|
13
|
+
YTools::YamlObject.from_files(sargs)
|
14
|
+
else
|
15
|
+
YTools::YamlObject.new
|
16
|
+
end
|
17
|
+
|
18
|
+
if options[:literal]
|
19
|
+
yaml_object.merge(YAML::load(options[:literal]))
|
20
|
+
end
|
21
|
+
|
22
|
+
executor = Executor.new(options[:path], yaml_object)
|
12
23
|
|
13
24
|
if options[:debug]
|
14
|
-
STDERR.puts
|
25
|
+
STDERR.puts yaml_object
|
15
26
|
end
|
16
27
|
|
17
28
|
output = executor.process!
|
@@ -44,6 +55,11 @@ EOF
|
|
44
55
|
"configuration.") do |p|
|
45
56
|
options[:path] = p
|
46
57
|
end
|
58
|
+
opts.on('-l', '--literal STRING',
|
59
|
+
"Evaluate a literal string in addition",
|
60
|
+
"to any file paths") do |l|
|
61
|
+
options[:literal] = l
|
62
|
+
end
|
47
63
|
opts.on('-s', '--strict',
|
48
64
|
"Checks to make sure all of the YAML files",
|
49
65
|
"exist before proceeding.") do |s|
|
@@ -77,7 +93,7 @@ EOF
|
|
77
93
|
if options[:path].nil?
|
78
94
|
raise YTools::ConfigurationError.new("The path expression was empty.")
|
79
95
|
end
|
80
|
-
if args.length == 0
|
96
|
+
if args.length == 0 && options[:literal].nil?
|
81
97
|
raise YTools::ConfigurationError.new("No YAML files given as arguments")
|
82
98
|
end
|
83
99
|
|
data/lib/ytools/path/executor.rb
CHANGED
@@ -6,9 +6,9 @@ module YTools::Path
|
|
6
6
|
class Executor
|
7
7
|
attr_reader :path, :yaml_object
|
8
8
|
|
9
|
-
def initialize(path,
|
9
|
+
def initialize(path, yaml_object)
|
10
10
|
@path = path
|
11
|
-
@yaml_object =
|
11
|
+
@yaml_object = yaml_object
|
12
12
|
end
|
13
13
|
|
14
14
|
def process!
|
data/lib/ytools/templates/cli.rb
CHANGED
@@ -6,6 +6,26 @@ require 'ytools/templates/executor'
|
|
6
6
|
module YTools::Templates
|
7
7
|
class CLI < YTools::BaseCLI
|
8
8
|
protected
|
9
|
+
def execute(args)
|
10
|
+
yaml_object = if args.length != 0
|
11
|
+
YTools::YamlObject.from_files(args)
|
12
|
+
else
|
13
|
+
YTools::YamlObject.new
|
14
|
+
end
|
15
|
+
|
16
|
+
if options[:literal]
|
17
|
+
yaml_object.merge(YAML::load(options[:literal]))
|
18
|
+
end
|
19
|
+
|
20
|
+
executor = Executor.new(options[:template], yaml_object)
|
21
|
+
|
22
|
+
if options[:debug]
|
23
|
+
STDERR.puts yaml_object
|
24
|
+
end
|
25
|
+
|
26
|
+
executor.write!(options[:output])
|
27
|
+
end
|
28
|
+
|
9
29
|
def parse(args)
|
10
30
|
OptionParser.new do |opts|
|
11
31
|
opts.banner = "Usage: #{File.basename($0)} [OPTIONS] YAML_FILES"
|
@@ -34,6 +54,11 @@ EOF
|
|
34
54
|
"The ERB template file to use for generation") do |t|
|
35
55
|
options[:template] = t
|
36
56
|
end
|
57
|
+
opts.on('-l', '--literal STRING',
|
58
|
+
"Evaluate a literal string in addition",
|
59
|
+
"to any file paths") do |l|
|
60
|
+
options[:literal] = l
|
61
|
+
end
|
37
62
|
opts.on('-o', '--output FILE',
|
38
63
|
"Write the generated output to a file instead",
|
39
64
|
"of STDOUT") do |o|
|
@@ -82,7 +107,7 @@ EOF
|
|
82
107
|
raise YTools::ConfigurationError.new("The output directory doesn't exist: #{option[:output]}")
|
83
108
|
end
|
84
109
|
|
85
|
-
if args.length == 0
|
110
|
+
if args.length == 0 && options[:literal].nil?
|
86
111
|
raise YTools::ConfigurationError.new("No YAML files were given")
|
87
112
|
end
|
88
113
|
|
@@ -94,15 +119,5 @@ EOF
|
|
94
119
|
end
|
95
120
|
end
|
96
121
|
end
|
97
|
-
|
98
|
-
def execute(args)
|
99
|
-
executor = Executor.new(options[:template], args)
|
100
|
-
|
101
|
-
if options[:debug]
|
102
|
-
STDERR.puts executor.yaml_object.to_s
|
103
|
-
end
|
104
|
-
|
105
|
-
executor.write!(options[:output])
|
106
|
-
end
|
107
122
|
end
|
108
123
|
end
|
@@ -6,9 +6,9 @@ module YTools::Templates
|
|
6
6
|
class Executor
|
7
7
|
attr_reader :template, :yaml_object
|
8
8
|
|
9
|
-
def initialize(template,
|
9
|
+
def initialize(template, yaml_object)
|
10
10
|
@template = template
|
11
|
-
@yaml_object =
|
11
|
+
@yaml_object = yaml_object
|
12
12
|
end
|
13
13
|
|
14
14
|
def write!(outfile)
|
data/spec/path/executor_spec.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'helpers'
|
2
2
|
require 'ytools/errors'
|
3
|
+
require 'ytools/yaml_object'
|
3
4
|
require 'ytools/path/executor'
|
4
5
|
|
5
6
|
module YTools::Path
|
@@ -11,7 +12,8 @@ module YTools::Path
|
|
11
12
|
real_files << File.join(File.dirname(__FILE__), 'yamls', file)
|
12
13
|
end
|
13
14
|
|
14
|
-
|
15
|
+
yaml_object = YTools::YamlObject.from_files(real_files)
|
16
|
+
Executor.new(path, yaml_object).process!
|
15
17
|
end
|
16
18
|
end
|
17
19
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ytools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 5
|
10
|
+
version: 0.1.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Gabe McArthur
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-11-
|
18
|
+
date: 2010-11-12 00:00:00 -08:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|