lono 4.0.0 → 4.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/.circleci/bin/commit_docs.sh +26 -0
- data/.circleci/config.yml +15 -0
- data/CHANGELOG.md +4 -0
- data/README.md +2 -2
- data/Rakefile +6 -0
- data/lib/lono/cfn/diff.rb +1 -1
- data/lib/lono/cfn.rb +6 -7
- data/lib/lono/cli.rb +10 -10
- data/lib/lono/command.rb +14 -0
- data/lib/lono/help/cfn/create.md +6 -7
- data/lib/lono/help/cfn/delete.md +11 -3
- data/lib/lono/help/cfn/diff.md +12 -3
- data/lib/lono/help/cfn/download.md +1 -3
- data/lib/lono/help/cfn/preview.md +21 -6
- data/lib/lono/help/cfn/update.md +5 -5
- data/lib/lono/help/cfn.md +1 -1
- data/lib/lono/help/completion.md +7 -7
- data/lib/lono/help/completion_script.md +2 -2
- data/lib/lono/help/generate.md +16 -5
- data/lib/lono/help/import.md +25 -5
- data/lib/lono/help/new.md +52 -6
- data/lib/lono/help/param/generate.md +3 -5
- data/lib/lono/help/param.md +1 -1
- data/lib/lono/help/script/build.md +1 -3
- data/lib/lono/help/script/upload.md +2 -2
- data/lib/lono/help/summary.md +19 -0
- data/lib/lono/help/template/bashify.md +1 -1
- data/lib/lono/help/template/generate.md +1 -1
- data/lib/lono/help/template.md +1 -1
- data/lib/lono/help/upgrade4.md +25 -0
- data/lib/lono/help/user_data.md +36 -1
- data/lib/lono/help/xgraph.md +16 -0
- data/lib/lono/help.rb +7 -0
- data/lib/lono/markdown/creator.rb +65 -0
- data/lib/lono/markdown/index.rb +36 -0
- data/lib/lono/markdown/page.rb +169 -0
- data/lib/lono/markdown/shell.rb +11 -0
- data/lib/lono/markdown.rb +8 -0
- data/lib/lono/param.rb +1 -1
- data/lib/lono/script.rb +2 -2
- data/lib/lono/version.rb +1 -1
- data/lib/lono.rb +1 -0
- data/spec/lib/lono/markdown_spec.rb +99 -0
- metadata +13 -6
- data/lib/lono/help/hello.md +0 -5
- data/lib/lono/help/inspect/depends.md +0 -3
- data/lib/lono/help/inspect/summary.md +0 -3
- data/lib/lono/help/inspect.md +0 -4
@@ -0,0 +1,25 @@
|
|
1
|
+
Lono version 4 changed a few things:
|
2
|
+
|
3
|
+
* Simplified the [directory structure](http://lono.cloud/docs/directory-structure/) of a lono project.
|
4
|
+
* Format of the [settings.yml](http://lono.cloud/docs/settings/) changed.
|
5
|
+
* LONO_ENV are longer full names now.
|
6
|
+
* Refer to the [CHANGELOG](https://github.com/tongueroo/lono/blob/master/CHANGELOG.md) for more details.
|
7
|
+
|
8
|
+
This task helps you upgrade from lono version 3 to version 4.
|
9
|
+
|
10
|
+
### Example Output
|
11
|
+
|
12
|
+
$ lono upgrade4
|
13
|
+
Upgrading structure of your current project to the new lono version 4 project structure
|
14
|
+
mv helpers app/helpers
|
15
|
+
mv params config/params
|
16
|
+
mv config/templates app/definitions
|
17
|
+
mv templates app/templates
|
18
|
+
mv app/templates/partial app/partials
|
19
|
+
mv app/partials/user_data app/user_data
|
20
|
+
Updating structure of config/variables
|
21
|
+
Updating structure of app/definitions
|
22
|
+
mv config/params/prod config/params/production
|
23
|
+
mv config/params/stag config/params/staging
|
24
|
+
Upgrade to lono version 4 complete!
|
25
|
+
$
|
data/lib/lono/help/user_data.md
CHANGED
@@ -1,3 +1,38 @@
|
|
1
1
|
Generates user_data scripts in `app/user_data` so you can see it for debugging. Let's say you have a script in `app/user_data/bootstrap.sh`. To generate it:
|
2
2
|
|
3
|
-
|
3
|
+
lono user_data bootstrap
|
4
|
+
|
5
|
+
## Example Output
|
6
|
+
|
7
|
+
Script:
|
8
|
+
|
9
|
+
#!/bin/bash -exu
|
10
|
+
|
11
|
+
<%= extract_scripts(to: "/opt") %>
|
12
|
+
|
13
|
+
SCRIPTS=/opt/scripts
|
14
|
+
$SCRIPTS/install_stuff.sh
|
15
|
+
|
16
|
+
Running `ono user_data bootstrap` produces:
|
17
|
+
|
18
|
+
$ lono user_data bootstrap
|
19
|
+
Detected app/scripts
|
20
|
+
Tarballing app/scripts folder to scripts.tgz
|
21
|
+
=> cd app && dot_clean .
|
22
|
+
=> cd app && tar -c scripts | gzip -n > scripts.tgz
|
23
|
+
Tarball created at output/scripts/scripts-93b8b29b.tgz
|
24
|
+
Generating user_data for 'bootstrap' at ./app/user_data/bootstrap.sh
|
25
|
+
#!/bin/bash -exu
|
26
|
+
|
27
|
+
# Generated from the lono extract_scripts helper.
|
28
|
+
# Downloads scripts from s3, extract them, and setup.
|
29
|
+
mkdir -p /opt
|
30
|
+
aws s3 cp s3://mybucket/path/to/folder/development/scripts/scripts-93b8b29b.tgz /opt/
|
31
|
+
cd /opt
|
32
|
+
tar zxf /opt/scripts-93b8b29b.tgz
|
33
|
+
chmod -R a+x /opt/scripts
|
34
|
+
chown -R ec2-user:ec2-user /opt/scripts
|
35
|
+
|
36
|
+
SCRIPTS=/opt/scripts
|
37
|
+
$SCRIPTS/install_stuff.sh
|
38
|
+
$
|
@@ -0,0 +1,16 @@
|
|
1
|
+
## Example
|
2
|
+
|
3
|
+
With more complex CloudFormation templates, the dependency get more difficult to follow. Visualizing the dependencies is helpful.
|
4
|
+
|
5
|
+
lono import https://s3.amazonaws.com/solutions-reference/aws-waf-security-automations/latest/aws-waf-security-automations.template --name waf
|
6
|
+
lono inspect depends waf
|
7
|
+
|
8
|
+
This above command generates a dependency chart. The command uses the DependsOn attribute specified in each resource to figure this out. It does not show implied dependencies that CloudFormaton automatically computes for us. The chart looks like this:
|
9
|
+
|
10
|
+
{:.doc-photo}
|
11
|
+
|
12
|
+
The chart is generated with [Graphviz](http://www.graphviz.org/). To install:
|
13
|
+
|
14
|
+
brew install graphviz
|
15
|
+
|
16
|
+
Blog Post also covers this: [lono inspect depends Tutorial Introduction](https://blog.boltops.com/2017/09/20/lono-inspect-depends-tutorial-introduction)
|
data/lib/lono/help.rb
CHANGED
@@ -1,9 +1,16 @@
|
|
1
1
|
module Lono::Help
|
2
2
|
class << self
|
3
|
+
# namespaced_command: cfn/create or cfn:create
|
4
|
+
# both work.
|
3
5
|
def text(namespaced_command)
|
4
6
|
path = namespaced_command.to_s.gsub(':','/')
|
5
7
|
path = File.expand_path("../help/#{path}.md", __FILE__)
|
6
8
|
IO.read(path) if File.exist?(path)
|
7
9
|
end
|
10
|
+
|
11
|
+
# Generates a markdown file for site docuemtation
|
12
|
+
def markdown
|
13
|
+
|
14
|
+
end
|
8
15
|
end
|
9
16
|
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require "active_support/core_ext/object"
|
2
|
+
|
3
|
+
module Lono::Markdown
|
4
|
+
class Creator
|
5
|
+
cattr_accessor :mute
|
6
|
+
|
7
|
+
def self.create_all(command_class, parent_command_name=nil)
|
8
|
+
clean unless parent_command_name
|
9
|
+
new(command_class, parent_command_name).create_all
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.clean
|
13
|
+
FileUtils.rm_rf("docs/_reference")
|
14
|
+
FileUtils.rm_f("docs/reference.md")
|
15
|
+
end
|
16
|
+
|
17
|
+
# command_class is top-level CLI class.
|
18
|
+
def initialize(command_class, parent_command_name)
|
19
|
+
@command_class = command_class
|
20
|
+
@parent_command_name = parent_command_name
|
21
|
+
end
|
22
|
+
|
23
|
+
def create_all
|
24
|
+
create_index unless @parent_command_name
|
25
|
+
|
26
|
+
@command_class.commands.keys.each do |command_name|
|
27
|
+
page = Page.new(@command_class, command_name, @parent_command_name)
|
28
|
+
create_page(page)
|
29
|
+
|
30
|
+
if subcommand?(command_name)
|
31
|
+
subcommand_class = subcommand_class(command_name)
|
32
|
+
parent_command_name = command_name
|
33
|
+
|
34
|
+
say "Creating subcommands pages for #{parent_command_name}..."
|
35
|
+
Creator.create_all(subcommand_class, parent_command_name)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def create_page(page)
|
41
|
+
say "Creating #{page.path}..."
|
42
|
+
FileUtils.mkdir_p(File.dirname(page.path))
|
43
|
+
IO.write(page.path, page.doc)
|
44
|
+
end
|
45
|
+
|
46
|
+
def create_index
|
47
|
+
page = Index.new(@command_class)
|
48
|
+
FileUtils.mkdir_p(File.dirname(page.path))
|
49
|
+
say "Creating #{page.path}"
|
50
|
+
IO.write(page.path, page.doc)
|
51
|
+
end
|
52
|
+
|
53
|
+
def subcommand?(command_name)
|
54
|
+
@command_class.subcommands.include?(command_name)
|
55
|
+
end
|
56
|
+
|
57
|
+
def subcommand_class(command_name)
|
58
|
+
@command_class.subcommand_classes[command_name]
|
59
|
+
end
|
60
|
+
|
61
|
+
def say(text)
|
62
|
+
puts text unless self.class.mute
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Lono::Markdown
|
2
|
+
class Index
|
3
|
+
def initialize(command_class)
|
4
|
+
@command_class = command_class
|
5
|
+
end
|
6
|
+
|
7
|
+
def path
|
8
|
+
"docs/reference.md"
|
9
|
+
end
|
10
|
+
|
11
|
+
def command_list
|
12
|
+
@command_class.commands.keys.sort.map.each do |command_name|
|
13
|
+
page = Page.new(@command_class, command_name)
|
14
|
+
link = page.path.sub("docs/", "")
|
15
|
+
# Example: [lono cfn]({% link _reference/lono-cfn.md %})
|
16
|
+
"* [lono #{command_name}]({% link #{link} %})"
|
17
|
+
end.join("\n")
|
18
|
+
end
|
19
|
+
|
20
|
+
def summary
|
21
|
+
<<-EOL
|
22
|
+
Lono is a CloudFormation framework tool that helps you manage your templates. Lono handles the entire CloudFormation lifecycle. It starts with helping you develop your templates and helps you all the way to the infrastructure provisioning step.
|
23
|
+
EOL
|
24
|
+
end
|
25
|
+
|
26
|
+
def doc
|
27
|
+
<<-EOL
|
28
|
+
---
|
29
|
+
title: CLI Reference
|
30
|
+
---
|
31
|
+
#{summary}
|
32
|
+
#{command_list}
|
33
|
+
EOL
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,169 @@
|
|
1
|
+
module Lono::Markdown
|
2
|
+
class Page
|
3
|
+
def initialize(command_class, command_name, parent_command_name=nil)
|
4
|
+
@command_class = command_class
|
5
|
+
@command_name = command_name
|
6
|
+
@parent_command_name = parent_command_name
|
7
|
+
@command = @command_class.commands[@command_name]
|
8
|
+
end
|
9
|
+
|
10
|
+
def usage
|
11
|
+
banner = @command_class.send(:banner, @command) # banner is protected method
|
12
|
+
invoking_command = File.basename($0) # could be rspec, etc
|
13
|
+
banner.sub(invoking_command, cli_name)
|
14
|
+
end
|
15
|
+
|
16
|
+
def description
|
17
|
+
@command.description
|
18
|
+
end
|
19
|
+
|
20
|
+
def options
|
21
|
+
shell = Shell.new
|
22
|
+
@command_class.send(:class_options_help, shell, nil => @command.options.values)
|
23
|
+
text = shell.stdout.string
|
24
|
+
return "" if text.empty? # there are no options
|
25
|
+
|
26
|
+
lines = text.split("\n")[1..-1] # remove first line wihth "Options: "
|
27
|
+
lines.map! do |line|
|
28
|
+
# remove 2 leading spaces
|
29
|
+
line.sub(/^ /, '')
|
30
|
+
end
|
31
|
+
lines.join("\n")
|
32
|
+
end
|
33
|
+
|
34
|
+
# Use command's long description as many description
|
35
|
+
def long_description
|
36
|
+
text = @command.long_description
|
37
|
+
return "" if text.nil? # empty description
|
38
|
+
|
39
|
+
lines = text.split("\n")
|
40
|
+
lines.map do |line|
|
41
|
+
# In the CLI help, we use 2 spaces to designate commands
|
42
|
+
# In Markdown we need 4 spaces.
|
43
|
+
line.sub(/^ \b/, ' ')
|
44
|
+
end.join("\n")
|
45
|
+
end
|
46
|
+
|
47
|
+
def cli_name
|
48
|
+
"lono"
|
49
|
+
end
|
50
|
+
|
51
|
+
def path
|
52
|
+
full_name = if @parent_command_name
|
53
|
+
"#{cli_name}-#{@parent_command_name}-#{@command_name}"
|
54
|
+
else
|
55
|
+
"#{cli_name}-#{@command_name}"
|
56
|
+
end
|
57
|
+
"docs/_reference/#{full_name}.md"
|
58
|
+
end
|
59
|
+
|
60
|
+
def subcommand?
|
61
|
+
@command_class.subcommands.include?(@command_name)
|
62
|
+
end
|
63
|
+
|
64
|
+
def subcommand_class
|
65
|
+
@command_class.subcommand_classes[@command_name]
|
66
|
+
end
|
67
|
+
|
68
|
+
# Note:
|
69
|
+
# printable_commands are in the form:
|
70
|
+
# [
|
71
|
+
# [command_form,command_comment],
|
72
|
+
# [command_form,command_comment],
|
73
|
+
# ]
|
74
|
+
#
|
75
|
+
# It is useful to grab the command form printable_commands as it shows
|
76
|
+
# the proper form.
|
77
|
+
def subcommand_list
|
78
|
+
return '' unless subcommand?
|
79
|
+
|
80
|
+
invoking_command = File.basename($0) # could be rspec, etc
|
81
|
+
command_list = subcommand_class.printable_commands
|
82
|
+
.sort_by { |a| a[0] }
|
83
|
+
.map { |a| a[0].sub!(invoking_command, cli_name); a } # replace with proper comand
|
84
|
+
.reject { |a| a[0].include?("help [COMMAND]") } # filter out help
|
85
|
+
|
86
|
+
# dress up with markdown
|
87
|
+
text = command_list.map do |a|
|
88
|
+
command, comment = a[0], a[1].sub(/^# /,'')
|
89
|
+
subcommand_name = command.split(' ')[2]
|
90
|
+
full_command_path = "#{cli_name}-#{@command_name}-#{subcommand_name}"
|
91
|
+
full_command_name = "#{cli_name} #{@command_name} #{subcommand_name}"
|
92
|
+
link = "_reference/#{full_command_path}.md"
|
93
|
+
|
94
|
+
# "* [#{command}]({% link #{link} %})"
|
95
|
+
# Example: [lono cfn delete STACK]({% link _reference/lono-cfn-delete.md %})
|
96
|
+
"* [#{full_command_name}]({% link #{link} %}) - #{comment}"
|
97
|
+
end.join("\n")
|
98
|
+
|
99
|
+
<<-EOL
|
100
|
+
## Subcommands
|
101
|
+
|
102
|
+
#{text}
|
103
|
+
EOL
|
104
|
+
end
|
105
|
+
|
106
|
+
def doc
|
107
|
+
<<-EOL
|
108
|
+
#{front_matter}
|
109
|
+
#{usage_markdown}
|
110
|
+
#{long_desc_markdown}
|
111
|
+
#{subcommand_list}
|
112
|
+
#{options_markdown}
|
113
|
+
EOL
|
114
|
+
end
|
115
|
+
|
116
|
+
def front_matter
|
117
|
+
command = [cli_name, @parent_command_name, @command_name].compact.join(' ')
|
118
|
+
<<-EOL
|
119
|
+
---
|
120
|
+
title: #{command}
|
121
|
+
reference: true
|
122
|
+
---
|
123
|
+
EOL
|
124
|
+
end
|
125
|
+
|
126
|
+
def usage_markdown
|
127
|
+
<<-EOL
|
128
|
+
## Usage
|
129
|
+
|
130
|
+
#{usage}
|
131
|
+
EOL
|
132
|
+
end
|
133
|
+
|
134
|
+
def desc_markdown
|
135
|
+
<<-EOL
|
136
|
+
## Description
|
137
|
+
|
138
|
+
#{description}
|
139
|
+
EOL
|
140
|
+
end
|
141
|
+
|
142
|
+
# If the Thor long_description is empty then use the description.
|
143
|
+
def long_desc_markdown
|
144
|
+
return desc_markdown if long_description.empty?
|
145
|
+
|
146
|
+
<<-EOL
|
147
|
+
## Description
|
148
|
+
|
149
|
+
#{description}
|
150
|
+
|
151
|
+
#{long_description}
|
152
|
+
EOL
|
153
|
+
end
|
154
|
+
|
155
|
+
# handles blank options
|
156
|
+
def options_markdown
|
157
|
+
return '' if options.empty?
|
158
|
+
|
159
|
+
<<-EOL
|
160
|
+
## Options
|
161
|
+
|
162
|
+
```
|
163
|
+
#{options}
|
164
|
+
```
|
165
|
+
EOL
|
166
|
+
end
|
167
|
+
|
168
|
+
end
|
169
|
+
end
|
data/lib/lono/param.rb
CHANGED
@@ -7,7 +7,7 @@ class Lono::Param < Lono::Command
|
|
7
7
|
class_option :noop, type: :boolean
|
8
8
|
class_option :mute, type: :boolean
|
9
9
|
|
10
|
-
desc "generate", "
|
10
|
+
desc "generate", "Generate all parameter files to `output/params`."
|
11
11
|
long_desc Lono::Help.text("param/generate")
|
12
12
|
option :path, desc: "Name of the source that maps to the params txt file. name -> params/NAME.txt. Use this to override the params/NAME.txt convention"
|
13
13
|
def generate
|
data/lib/lono/script.rb
CHANGED
@@ -4,13 +4,13 @@ module Lono
|
|
4
4
|
autoload :Build, "lono/script/build"
|
5
5
|
autoload :Upload, "lono/script/upload"
|
6
6
|
|
7
|
-
desc "build", "Builds output/scripts/scripts-md5sum.tgz from app/script folder"
|
7
|
+
desc "build", "Builds `output/scripts/scripts-md5sum.tgz` from `app/script` folder"
|
8
8
|
long_desc Help.text("script/build")
|
9
9
|
def build
|
10
10
|
Build.new(options).run
|
11
11
|
end
|
12
12
|
|
13
|
-
desc "upload", "Uploads output/scripts/scripts-md5sum.tgz to s3"
|
13
|
+
desc "upload", "Uploads `output/scripts/scripts-md5sum.tgz` to s3"
|
14
14
|
long_desc Help.text("script/upload")
|
15
15
|
def upload
|
16
16
|
Upload.new(options).run
|
data/lib/lono/version.rb
CHANGED
data/lib/lono.rb
CHANGED
@@ -0,0 +1,99 @@
|
|
1
|
+
describe Lono::Markdown::Page do
|
2
|
+
let(:page) { Lono::Markdown::Page.new(cli_class, command, parent_command_name) }
|
3
|
+
let(:cli_class) { Lono::CLI }
|
4
|
+
let(:parent_command_name) { nil }
|
5
|
+
|
6
|
+
context "MarkdownMaker.create_all" do
|
7
|
+
it "docs command" do
|
8
|
+
out = execute("rake docs")
|
9
|
+
expect(out).to include("Creating")
|
10
|
+
end
|
11
|
+
|
12
|
+
it "generates all docs pages" do
|
13
|
+
Lono::Markdown::Creator.mute = true
|
14
|
+
Lono::Markdown::Creator.create_all(cli_class)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context "generate" do
|
19
|
+
let(:command) { "generate" }
|
20
|
+
|
21
|
+
it "#usage" do
|
22
|
+
expect(page.usage).to eq "lono generate"
|
23
|
+
end
|
24
|
+
|
25
|
+
it "#summary" do
|
26
|
+
expect(page.summary).to eq "Generate both CloudFormation templates and parameters files"
|
27
|
+
end
|
28
|
+
|
29
|
+
it "#options" do
|
30
|
+
expect(page.options).to include("--clean")
|
31
|
+
# [--clean], [--no-clean] # remove all output files before generating
|
32
|
+
# # Default: true
|
33
|
+
# [--quiet], [--no-quiet] # silence the output
|
34
|
+
end
|
35
|
+
|
36
|
+
it "#description" do
|
37
|
+
expect(page.description).to include(" lono generate")
|
38
|
+
end
|
39
|
+
|
40
|
+
it "#doc" do
|
41
|
+
expect(page.doc).to include("# Summary")
|
42
|
+
# puts page.doc # uncomment to see generated page for debugging
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# subcommand
|
47
|
+
context "cfn" do
|
48
|
+
let(:command) { "cfn" }
|
49
|
+
|
50
|
+
it "#usage" do
|
51
|
+
expect(page.usage).to eq "lono cfn SUBCOMMAND"
|
52
|
+
end
|
53
|
+
|
54
|
+
it "#summary" do
|
55
|
+
expect(page.summary).to eq "cfn subcommand tasks"
|
56
|
+
end
|
57
|
+
|
58
|
+
# Think it is better to hide subcommand options at the top-level.
|
59
|
+
# User will see the optoins once they click into the subcommand.
|
60
|
+
it "#options" do
|
61
|
+
expect(page.options).to include("")
|
62
|
+
end
|
63
|
+
|
64
|
+
it "#description" do
|
65
|
+
expect(page.description).to include("Examples")
|
66
|
+
end
|
67
|
+
|
68
|
+
it "#subcommand_list" do
|
69
|
+
expect(page.doc).to include("# Subcommands")
|
70
|
+
# puts page.subcommand_list # uncomment to see generated list for debugging
|
71
|
+
end
|
72
|
+
|
73
|
+
it "#doc" do
|
74
|
+
expect(page.doc).to include("# Summary")
|
75
|
+
# puts page.doc # uncomment to see generated page for debugging
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
################
|
80
|
+
# rest are edge cases
|
81
|
+
context "summary" do
|
82
|
+
let(:command) { "summary" }
|
83
|
+
|
84
|
+
# empty options
|
85
|
+
it "#options" do
|
86
|
+
expect(page.options).to eq ""
|
87
|
+
end
|
88
|
+
|
89
|
+
# empty description
|
90
|
+
it "#description" do
|
91
|
+
expect(page.description).to eq ""
|
92
|
+
end
|
93
|
+
|
94
|
+
it "#doc" do
|
95
|
+
expect(page.doc).to include("# Summary")
|
96
|
+
# puts page.doc # uncomment to see generated page for debugging
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lono
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
4
|
+
version: 4.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-02-
|
11
|
+
date: 2018-02-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -284,6 +284,7 @@ executables:
|
|
284
284
|
extensions: []
|
285
285
|
extra_rdoc_files: []
|
286
286
|
files:
|
287
|
+
- ".circleci/bin/commit_docs.sh"
|
287
288
|
- ".circleci/config.yml"
|
288
289
|
- ".gitignore"
|
289
290
|
- ".gitmodules"
|
@@ -328,25 +329,29 @@ files:
|
|
328
329
|
- lib/lono/help/completion.md
|
329
330
|
- lib/lono/help/completion_script.md
|
330
331
|
- lib/lono/help/generate.md
|
331
|
-
- lib/lono/help/hello.md
|
332
332
|
- lib/lono/help/import.md
|
333
|
-
- lib/lono/help/inspect.md
|
334
|
-
- lib/lono/help/inspect/depends.md
|
335
|
-
- lib/lono/help/inspect/summary.md
|
336
333
|
- lib/lono/help/new.md
|
337
334
|
- lib/lono/help/param.md
|
338
335
|
- lib/lono/help/param/generate.md
|
339
336
|
- lib/lono/help/script/build.md
|
340
337
|
- lib/lono/help/script/upload.md
|
338
|
+
- lib/lono/help/summary.md
|
341
339
|
- lib/lono/help/template.md
|
342
340
|
- lib/lono/help/template/bashify.md
|
343
341
|
- lib/lono/help/template/generate.md
|
342
|
+
- lib/lono/help/upgrade4.md
|
344
343
|
- lib/lono/help/user_data.md
|
344
|
+
- lib/lono/help/xgraph.md
|
345
345
|
- lib/lono/importer.rb
|
346
346
|
- lib/lono/inspector.rb
|
347
347
|
- lib/lono/inspector/base.rb
|
348
348
|
- lib/lono/inspector/graph.rb
|
349
349
|
- lib/lono/inspector/summary.rb
|
350
|
+
- lib/lono/markdown.rb
|
351
|
+
- lib/lono/markdown/creator.rb
|
352
|
+
- lib/lono/markdown/index.rb
|
353
|
+
- lib/lono/markdown/page.rb
|
354
|
+
- lib/lono/markdown/shell.rb
|
350
355
|
- lib/lono/new.rb
|
351
356
|
- lib/lono/new/helper.rb
|
352
357
|
- lib/lono/new/message.rb
|
@@ -432,6 +437,7 @@ files:
|
|
432
437
|
- spec/lib/lono/cli_spec.rb
|
433
438
|
- spec/lib/lono/completion_spec.rb
|
434
439
|
- spec/lib/lono/inspect_spec.rb
|
440
|
+
- spec/lib/lono/markdown_spec.rb
|
435
441
|
- spec/lib/lono/param/generator_spec.rb
|
436
442
|
- spec/lib/lono/param_spec.rb
|
437
443
|
- spec/lib/lono/setting_spec.rb
|
@@ -505,6 +511,7 @@ test_files:
|
|
505
511
|
- spec/lib/lono/cli_spec.rb
|
506
512
|
- spec/lib/lono/completion_spec.rb
|
507
513
|
- spec/lib/lono/inspect_spec.rb
|
514
|
+
- spec/lib/lono/markdown_spec.rb
|
508
515
|
- spec/lib/lono/param/generator_spec.rb
|
509
516
|
- spec/lib/lono/param_spec.rb
|
510
517
|
- spec/lib/lono/setting_spec.rb
|
data/lib/lono/help/hello.md
DELETED
data/lib/lono/help/inspect.md
DELETED