yaml_master 1.0.0 → 1.0.1
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.
- checksums.yaml +4 -4
- data/README.md +70 -9
- data/lib/yaml_master.rb +7 -7
- data/lib/yaml_master/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4a52e9659a1cab26545e88d254d109176f21e720
|
4
|
+
data.tar.gz: a89a4cdf70880d00765860765c84a6d1c45c3ae9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1d644176ec9b8a3e1f5f897e0f5af21c16a7b041544effa4c5fe95ee35fa2d94cc6b24634e7e22eaf278791410aaa9c24e841de0caf512f84775ebce19b947a2
|
7
|
+
data.tar.gz: 326b8d9b4a10c319ff2d0f1329ee344618df64de6c0a3d25cf54b588bf5d2f1e26765539c83c78da855b4b09f52e825597b9bf13b654a04913620e2ea936ddcf
|
data/README.md
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
[](https://travis-ci.org/joker1007/yaml_master)
|
4
4
|
|
5
5
|
This gem is helper of yaml file generation from single master yaml file.
|
6
|
+
And this gem has some useful helpers. For example `!include`
|
6
7
|
|
7
8
|
## Installation
|
8
9
|
|
@@ -25,14 +26,15 @@ Or install it yourself as:
|
|
25
26
|
### command help
|
26
27
|
```
|
27
28
|
Usage: yaml_master [options]
|
28
|
-
-m, --master
|
29
|
-
-k, --key
|
30
|
-
-o, --output
|
31
|
-
-a, --all
|
32
|
-
-
|
33
|
-
-
|
34
|
-
-v, --verbose
|
35
|
-
--version
|
29
|
+
-m, --master=MASTER_FILE master yaml file
|
30
|
+
-k, --key=KEY single generate target key (in data: block)
|
31
|
+
-o, --output=OUTPUT output filename for single generate target
|
32
|
+
-a, --all target all key (defined in yaml_master: block)
|
33
|
+
-d, --dump dump evaluated master yaml
|
34
|
+
-p, --properties=PROPERTIES set property (--properties="NAME=VALUE,NAME=VALUE" or -p "NAME=VALUE" -p "NAME=VALUE")
|
35
|
+
-v, --verbose verbose mode
|
36
|
+
--version Print version
|
37
|
+
-h, --help Prints this help
|
36
38
|
```
|
37
39
|
|
38
40
|
### Support YAML tags
|
@@ -108,7 +110,7 @@ data:
|
|
108
110
|
table: my_table
|
109
111
|
mode: insert
|
110
112
|
|
111
|
-
tag_sample
|
113
|
+
tag_sample:
|
112
114
|
included: !include included.yml
|
113
115
|
master_path: !master_path
|
114
116
|
user_home: !user_home
|
@@ -253,6 +255,65 @@ read_file_if_exist_nothing:
|
|
253
255
|
read_file_if_exist2: 'dummy '
|
254
256
|
```
|
255
257
|
|
258
|
+
## Raw Dump
|
259
|
+
|
260
|
+
Any yaml file can use yaml_master feature.
|
261
|
+
|
262
|
+
```yaml
|
263
|
+
# tag_sample.yml
|
264
|
+
|
265
|
+
included: !include included.yml
|
266
|
+
master_path: !master_path
|
267
|
+
user_home: !user_home
|
268
|
+
env: !env HOME
|
269
|
+
properties: !properties foo
|
270
|
+
read_file_if_exist: !read_file_if_exist sample.txt
|
271
|
+
read_file_if_exist_nothing: !read_file_if_exist nothing.txt
|
272
|
+
```
|
273
|
+
|
274
|
+
```sh
|
275
|
+
% yaml_master -m tag_sample.yml --dump
|
276
|
+
```
|
277
|
+
|
278
|
+
output
|
279
|
+
|
280
|
+
```yaml
|
281
|
+
included:
|
282
|
+
xyz: hoge
|
283
|
+
db:
|
284
|
+
adapter: mysql2
|
285
|
+
encoding: utf8
|
286
|
+
database: development
|
287
|
+
pool: 5
|
288
|
+
host:
|
289
|
+
username: root
|
290
|
+
password:
|
291
|
+
socket: "/tmp/mysql.sock"
|
292
|
+
abc:
|
293
|
+
- 1
|
294
|
+
- 2.3
|
295
|
+
- a: 1
|
296
|
+
b: 2
|
297
|
+
included2:
|
298
|
+
- foo: bar
|
299
|
+
- hoge: fuga
|
300
|
+
- :abc:
|
301
|
+
- 1
|
302
|
+
- 2
|
303
|
+
- 3
|
304
|
+
master_path: "/home/joker/.ghq/github.com/joker1007/yaml_master/spec/sample.yml"
|
305
|
+
master_path2: "/home/joker/.ghq/github.com/joker1007/yaml_master/spec/sample.yml"
|
306
|
+
user_home: "/home/joker"
|
307
|
+
user_home2: "/home/joker"
|
308
|
+
env: "/home/joker"
|
309
|
+
properties: '24'
|
310
|
+
read_file_if_exist: 'dummy
|
311
|
+
|
312
|
+
'
|
313
|
+
read_file_if_exist_nothing:
|
314
|
+
read_file_if_exist2: 'dummy '
|
315
|
+
```
|
316
|
+
|
256
317
|
## How to use with Docker
|
257
318
|
|
258
319
|
```sh
|
data/lib/yaml_master.rb
CHANGED
@@ -29,22 +29,22 @@ class YamlMaster
|
|
29
29
|
parser.handler = YamlMaster::YAMLTreeBuilder.new(@master_path, @properties, parser)
|
30
30
|
@tree = parser.parse(yaml).handler.root
|
31
31
|
@master = @tree.to_ruby[0]
|
32
|
-
|
33
|
-
raise "yaml_master key is necessary on toplevel" unless @master["yaml_master"]
|
34
|
-
raise "data key is necessary on toplevel" unless @master["data"]
|
35
32
|
end
|
36
33
|
|
37
|
-
def
|
38
|
-
yaml =
|
34
|
+
def dump(output = nil, options = {})
|
35
|
+
yaml = @tree.to_yaml
|
39
36
|
write_to_output(yaml, output, options[:verbose])
|
40
37
|
end
|
41
38
|
|
42
|
-
def
|
43
|
-
|
39
|
+
def generate(key, output = nil, options = {})
|
40
|
+
raise "data key is necessary on toplevel" unless @master["data"]
|
41
|
+
yaml = YAML.dump(fetch_data_from_master(key))
|
44
42
|
write_to_output(yaml, output, options[:verbose])
|
45
43
|
end
|
46
44
|
|
47
45
|
def generate_all(options = {})
|
46
|
+
raise "yaml_master key is necessary on toplevel" unless @master["yaml_master"]
|
47
|
+
raise "data key is necessary on toplevel" unless @master["data"]
|
48
48
|
@master["yaml_master"].each do |key, output|
|
49
49
|
generate(key, output, options)
|
50
50
|
end
|
data/lib/yaml_master/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yaml_master
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- joker1007
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-12-
|
11
|
+
date: 2017-12-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|