cli-topic 0.9.11 → 0.9.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/clitopic/command/clito.rb +24 -15
- data/lib/clitopic/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: e72fc927c07de8676cfbe9825039668fb13e8f2b
|
4
|
+
data.tar.gz: a2e3ca0c238ed29f0bdedd98b4df5307f03f26e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9224fb4818253124250723f60f6092724f90f531e8fd66c58e55a7e8717f1dabc022bcda5c7bc086f203a5694e6d10eeec3241227c2ea2da26c1a696174bfa86
|
7
|
+
data.tar.gz: b657642f2745be86b60c15c2c23354e70289b7d934c29ea405f74996db185e6f7c504c2ef2c8473f452bcd658cc9efad52ba0330d7f73e9b37c8d9e3536927a6
|
@@ -23,14 +23,14 @@ module Clitopic
|
|
23
23
|
end
|
24
24
|
|
25
25
|
class DefaultsFile < Clitopic::Command::Base
|
26
|
-
register name: '
|
26
|
+
register name: 'create-defaults',
|
27
27
|
description: "create default file",
|
28
|
-
hidden:
|
28
|
+
hidden: false,
|
29
29
|
topic: 'clitopic'
|
30
30
|
|
31
31
|
option :merge, "--[no-]merge", "Merge options with current file", default: true
|
32
32
|
option :force, "-f", "--force", "Overwrite file", default: false
|
33
|
-
|
33
|
+
option :topics, "-t", "--topics TOPICS", Array, "create file for TOPICS list only"
|
34
34
|
|
35
35
|
class << self
|
36
36
|
def cmd_opts(cmd, opts)
|
@@ -40,7 +40,8 @@ module Clitopic
|
|
40
40
|
opts = opts[cmd_comment]
|
41
41
|
opts[cmd.name] = {"options" => {}, "args" => []}
|
42
42
|
cmd.cmd_options.each do |opt|
|
43
|
-
opts[cmd.name]["options"][opt[:name].to_s] =
|
43
|
+
opts[cmd.name]["options"]["#{opt[:name].to_s}$comment"] = {}
|
44
|
+
opts[cmd.name]["options"]["#{opt[:name].to_s}$comment"][opt[:name].to_s] = opt[:default]
|
44
45
|
end
|
45
46
|
end
|
46
47
|
end
|
@@ -62,13 +63,17 @@ module Clitopic
|
|
62
63
|
end
|
63
64
|
opts['topics'] = {}
|
64
65
|
Clitopic::Topics.topics.each do |topic_name, topic|
|
66
|
+
if @options[:topics] && !@options[:topics].index(topic_name.to_s)
|
67
|
+
next
|
68
|
+
end
|
69
|
+
|
65
70
|
if (!topic.hidden || options[:hidden])
|
66
71
|
topic_comment = "#{topic_name}$comment"
|
67
72
|
opts['topics'][topic_comment] = {}
|
68
73
|
opts['topics'][topic_comment][topic_name] = {}
|
69
|
-
opts['topics'][topic_comment][topic_name]["topic_options"] = {} if topic.topic_options.size > 0
|
74
|
+
opts['topics'][topic_comment][topic_name]["topic_options$comment"] = {"topic_options" => {}} if topic.topic_options.size > 0
|
70
75
|
topic.topic_options.each do |opt|
|
71
|
-
opts['topics'][topic_comment][topic_name]["topic_options"][opt[:name].to_s] = opt[:default]
|
76
|
+
opts['topics'][topic_comment][topic_name]["topic_options$comment"]["topic_options"][opt[:name].to_s] = opt[:default]
|
72
77
|
end
|
73
78
|
if topic.commands.size > 0
|
74
79
|
topic.commands.each do |c, cmd|
|
@@ -88,17 +93,16 @@ module Clitopic
|
|
88
93
|
end
|
89
94
|
puts "write: #{file}"
|
90
95
|
yaml = opts.to_yaml
|
91
|
-
|
96
|
+
yaml = yaml.gsub("topic_options$comment:", " # common-topic options")
|
92
97
|
Clitopic::Topics.topics.each do |topic_name, topic|
|
93
|
-
yaml = yaml.gsub(
|
98
|
+
yaml = yaml.gsub(/(\s+)#{topic_name}\$comment:/, '\1' + topic_comment(topic))
|
94
99
|
if topic.commands.size > 0
|
95
100
|
topic.commands.each do |c, cmd|
|
96
|
-
yaml = yaml.gsub(
|
101
|
+
yaml = yaml.gsub(/(\s+)#{c}\$comment:/, '\1' + cmd_comment(cmd))
|
102
|
+
yaml = opt_comment(cmd, yaml)
|
97
103
|
end
|
98
104
|
end
|
99
|
-
|
100
105
|
end
|
101
|
-
|
102
106
|
File.open(file, 'wb') do |file|
|
103
107
|
file.write(yaml)
|
104
108
|
end
|
@@ -115,13 +119,18 @@ module Clitopic
|
|
115
119
|
" # #{cmd.short_description}"
|
116
120
|
end
|
117
121
|
|
118
|
-
def opt_comment(
|
119
|
-
|
122
|
+
def opt_comment(cmd, yaml)
|
123
|
+
if cmd.cmd_options.size > 0 && (!cmd.hidden || options[:hidden])
|
124
|
+
cmd.cmd_options.each do |opt|
|
125
|
+
yaml = yaml.gsub(/(\s+)#{opt[:name].to_s}\$comment:/, '\1' + "# #{opt[:args].last}")
|
126
|
+
end
|
127
|
+
end
|
128
|
+
return yaml
|
120
129
|
end
|
130
|
+
|
121
131
|
def call
|
122
|
-
puts @options
|
123
132
|
if @arguments.size == 0
|
124
|
-
file = Clitopic::Helpers.find_default_file
|
133
|
+
file = Clitopic::Helpers.find_default_file || Clitopic.default_files.first
|
125
134
|
if file.nil?
|
126
135
|
raise ArgumentError.new("Missing file")
|
127
136
|
end
|
data/lib/clitopic/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cli-topic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Antoine Legrand
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-01-
|
11
|
+
date: 2016-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|