ramlstyle 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +44 -0
- data/.rubocop.yml +15 -0
- data/.travis.yml +4 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +162 -0
- data/Guardfile +6 -0
- data/LICENSE.txt +13 -0
- data/README.md +49 -0
- data/Rakefile +28 -0
- data/bin/code_climate_reek +17 -0
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/exe/ramlstyle +5 -0
- data/lib/ramlstyle/cli_command.rb +13 -0
- data/lib/ramlstyle/command/command_chain.rb +13 -0
- data/lib/ramlstyle/command/document_command.rb +17 -0
- data/lib/ramlstyle/command/end_chain.rb +8 -0
- data/lib/ramlstyle/command/file_command.rb +21 -0
- data/lib/ramlstyle/command/options.rb +33 -0
- data/lib/ramlstyle/command/parse_command.rb +9 -0
- data/lib/ramlstyle/command/review_command.rb +10 -0
- data/lib/ramlstyle/command/settings.rb +16 -0
- data/lib/ramlstyle/document.rb +15 -0
- data/lib/ramlstyle/documentation/erb_context.rb +52 -0
- data/lib/ramlstyle/documentation/renderer.rb +14 -0
- data/lib/ramlstyle/documentation/renderer_factory.rb +17 -0
- data/lib/ramlstyle/patch/node.rb +28 -0
- data/lib/ramlstyle/patch/root.rb +35 -0
- data/lib/ramlstyle/raml_parser.rb +14 -0
- data/lib/ramlstyle/review.rb +68 -0
- data/lib/ramlstyle/version.rb +3 -0
- data/lib/ramlstyle.rb +33 -0
- data/ramlstyle.gemspec +36 -0
- data/sandi_meter/.sandi_meter +2 -0
- data/templates/item.html.erb +40 -0
- data/templates/resource.html.erb +184 -0
- data/templates/template.html.erb +308 -0
- metadata +264 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d1b112906842c3a5ec171c0bf8c19b0ce3b222b8
|
4
|
+
data.tar.gz: c8965a05a9a1b4d13a79902f028dc3eee3cad339
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 5688b30823f76bb2fab1a99edd109ff311d51043833676d60748e0bb489f6194c9935e3a03ed7c5ac733a8f1508d3269aff013993d561bd23b10e288dc09dc23
|
7
|
+
data.tar.gz: dcf1ed3540a59299e2f1cbf2ad4ac902cce2c5e837b717c04081b3d9bb810fe6bf825732c9258e94c3db1485377cab6db90255aead3b4e747f9cb9d2db716745
|
data/.gitignore
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
/.bundle/
|
2
|
+
/.yardoc
|
3
|
+
/Gemfile.lock
|
4
|
+
/_yardoc/
|
5
|
+
/coverage/
|
6
|
+
/doc/
|
7
|
+
/pkg/
|
8
|
+
/spec/reports/
|
9
|
+
/tmp/
|
10
|
+
/output/
|
11
|
+
run-samples
|
12
|
+
.DS_Store
|
13
|
+
|
14
|
+
# Binstubs
|
15
|
+
/bin/_guard-core
|
16
|
+
/bin/bundler
|
17
|
+
/bin/coderay
|
18
|
+
/bin/erubis
|
19
|
+
/bin/flay
|
20
|
+
/bin/flog
|
21
|
+
/bin/github-markup
|
22
|
+
/bin/guard
|
23
|
+
/bin/htmldiff
|
24
|
+
/bin/launchy
|
25
|
+
/bin/ldiff
|
26
|
+
/bin/listen
|
27
|
+
/bin/pry
|
28
|
+
/bin/rake
|
29
|
+
/bin/ramlstyle
|
30
|
+
/bin/redcarpet
|
31
|
+
/bin/reek
|
32
|
+
/bin/rspec
|
33
|
+
/bin/rubocop
|
34
|
+
/bin/ruby-parse
|
35
|
+
/bin/ruby-rewrite
|
36
|
+
/bin/ruby_parse
|
37
|
+
/bin/ruby_parse_extract_error
|
38
|
+
/bin/rubycritic
|
39
|
+
/bin/sandi_meter
|
40
|
+
/bin/thor
|
41
|
+
/bin/unparser
|
42
|
+
/bin/yard
|
43
|
+
/bin/yardoc
|
44
|
+
/bin/yri
|
data/.rubocop.yml
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,162 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
ramlstyle (0.2.3)
|
5
|
+
raml_ruby
|
6
|
+
redcarpet
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
activesupport (5.0.1)
|
12
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
13
|
+
i18n (~> 0.7)
|
14
|
+
minitest (~> 5.1)
|
15
|
+
tzinfo (~> 1.1)
|
16
|
+
addressable (2.3.8)
|
17
|
+
ast (2.3.0)
|
18
|
+
axiom-types (0.1.1)
|
19
|
+
descendants_tracker (~> 0.0.4)
|
20
|
+
ice_nine (~> 0.11.0)
|
21
|
+
thread_safe (~> 0.3, >= 0.3.1)
|
22
|
+
codeclimate-engine-rb (0.4.0)
|
23
|
+
virtus (~> 1.0)
|
24
|
+
coderay (1.1.1)
|
25
|
+
coercible (1.0.0)
|
26
|
+
descendants_tracker (~> 0.0.1)
|
27
|
+
concurrent-ruby (1.0.5)
|
28
|
+
descendants_tracker (0.0.4)
|
29
|
+
thread_safe (~> 0.3, >= 0.3.1)
|
30
|
+
docile (1.1.5)
|
31
|
+
equalizer (0.0.11)
|
32
|
+
erubis (2.7.0)
|
33
|
+
ffi (1.9.17)
|
34
|
+
flay (2.8.1)
|
35
|
+
erubis (~> 2.7.0)
|
36
|
+
path_expander (~> 1.0)
|
37
|
+
ruby_parser (~> 3.0)
|
38
|
+
sexp_processor (~> 4.0)
|
39
|
+
flog (4.6.1)
|
40
|
+
path_expander (~> 1.0)
|
41
|
+
ruby_parser (~> 3.1, > 3.1.0)
|
42
|
+
sexp_processor (~> 4.8)
|
43
|
+
formatador (0.2.5)
|
44
|
+
guard (2.14.1)
|
45
|
+
formatador (>= 0.2.4)
|
46
|
+
listen (>= 2.7, < 4.0)
|
47
|
+
lumberjack (~> 1.0)
|
48
|
+
nenv (~> 0.1)
|
49
|
+
notiffany (~> 0.0)
|
50
|
+
pry (>= 0.9.12)
|
51
|
+
shellany (~> 0.0)
|
52
|
+
thor (>= 0.18.1)
|
53
|
+
guard-compat (1.2.1)
|
54
|
+
guard-minitest (2.4.6)
|
55
|
+
guard-compat (~> 1.2)
|
56
|
+
minitest (>= 3.0)
|
57
|
+
i18n (0.8.1)
|
58
|
+
ice_nine (0.11.2)
|
59
|
+
json (2.0.3)
|
60
|
+
json-schema (2.6.2)
|
61
|
+
addressable (~> 2.3.8)
|
62
|
+
launchy (2.4.3)
|
63
|
+
addressable (~> 2.3)
|
64
|
+
listen (3.1.5)
|
65
|
+
rb-fsevent (~> 0.9, >= 0.9.4)
|
66
|
+
rb-inotify (~> 0.9, >= 0.9.7)
|
67
|
+
ruby_dep (~> 1.2)
|
68
|
+
lumberjack (1.0.11)
|
69
|
+
metaclass (0.0.4)
|
70
|
+
method_source (0.8.2)
|
71
|
+
minitest (5.10.1)
|
72
|
+
mixlib-cli (1.7.0)
|
73
|
+
mocha (1.2.1)
|
74
|
+
metaclass (~> 0.0.1)
|
75
|
+
nenv (0.3.0)
|
76
|
+
notiffany (0.1.1)
|
77
|
+
nenv (~> 0.1)
|
78
|
+
shellany (~> 0.0)
|
79
|
+
parser (2.3.3.1)
|
80
|
+
ast (~> 2.2)
|
81
|
+
path_expander (1.0.1)
|
82
|
+
powerpack (0.1.1)
|
83
|
+
pry (0.10.4)
|
84
|
+
coderay (~> 1.1.0)
|
85
|
+
method_source (~> 0.8.1)
|
86
|
+
slop (~> 3.4)
|
87
|
+
rainbow (2.2.1)
|
88
|
+
rake (12.0.0)
|
89
|
+
raml_ruby (0.1.2)
|
90
|
+
activesupport (>= 4.1)
|
91
|
+
json-schema (~> 2.5)
|
92
|
+
uri_template (~> 0.7)
|
93
|
+
rb-fsevent (0.9.8)
|
94
|
+
rb-inotify (0.9.8)
|
95
|
+
ffi (>= 0.5.0)
|
96
|
+
redcarpet (3.4.0)
|
97
|
+
reek (4.5.6)
|
98
|
+
codeclimate-engine-rb (~> 0.4.0)
|
99
|
+
parser (>= 2.3.1.2, < 2.5)
|
100
|
+
rainbow (~> 2.0)
|
101
|
+
rubocop (0.47.1)
|
102
|
+
parser (>= 2.3.3.1, < 3.0)
|
103
|
+
powerpack (~> 0.1)
|
104
|
+
rainbow (>= 1.99.1, < 3.0)
|
105
|
+
ruby-progressbar (~> 1.7)
|
106
|
+
unicode-display_width (~> 1.0, >= 1.0.1)
|
107
|
+
ruby-progressbar (1.8.1)
|
108
|
+
ruby_dep (1.5.0)
|
109
|
+
ruby_parser (3.8.4)
|
110
|
+
sexp_processor (~> 4.1)
|
111
|
+
rubycritic (3.1.3)
|
112
|
+
flay (~> 2.8)
|
113
|
+
flog (~> 4.4)
|
114
|
+
launchy (= 2.4.3)
|
115
|
+
parser (= 2.3.3.1)
|
116
|
+
rainbow (~> 2.1)
|
117
|
+
reek (~> 4.4)
|
118
|
+
ruby_parser (~> 3.8)
|
119
|
+
virtus (~> 1.0)
|
120
|
+
sandi_meter (1.2.0)
|
121
|
+
json
|
122
|
+
launchy
|
123
|
+
mixlib-cli
|
124
|
+
sexp_processor (4.8.0)
|
125
|
+
shellany (0.0.1)
|
126
|
+
simplecov (0.13.0)
|
127
|
+
docile (~> 1.1.0)
|
128
|
+
json (>= 1.8, < 3)
|
129
|
+
simplecov-html (~> 0.10.0)
|
130
|
+
simplecov-html (0.10.0)
|
131
|
+
slop (3.6.0)
|
132
|
+
thor (0.19.4)
|
133
|
+
thread_safe (0.3.6)
|
134
|
+
tzinfo (1.2.2)
|
135
|
+
thread_safe (~> 0.1)
|
136
|
+
unicode-display_width (1.1.3)
|
137
|
+
uri_template (0.7.0)
|
138
|
+
virtus (1.0.5)
|
139
|
+
axiom-types (~> 0.1)
|
140
|
+
coercible (~> 1.0)
|
141
|
+
descendants_tracker (~> 0.0, >= 0.0.3)
|
142
|
+
equalizer (~> 0.0, >= 0.0.9)
|
143
|
+
|
144
|
+
PLATFORMS
|
145
|
+
ruby
|
146
|
+
|
147
|
+
DEPENDENCIES
|
148
|
+
bundler
|
149
|
+
guard
|
150
|
+
guard-minitest
|
151
|
+
minitest
|
152
|
+
mocha
|
153
|
+
pry
|
154
|
+
rake
|
155
|
+
ramlstyle!
|
156
|
+
rubocop
|
157
|
+
rubycritic
|
158
|
+
sandi_meter
|
159
|
+
simplecov
|
160
|
+
|
161
|
+
BUNDLED WITH
|
162
|
+
1.14.5
|
data/Guardfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
Copyright 2017 Mark Edward Morga
|
2
|
+
|
3
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
you may not use this file except in compliance with the License.
|
5
|
+
You may obtain a copy of the License at
|
6
|
+
|
7
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
|
9
|
+
Unless required by applicable law or agreed to in writing, software
|
10
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
See the License for the specific language governing permissions and
|
13
|
+
limitations under the License.
|
data/README.md
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
# Ramlstyle
|
2
|
+
|
3
|
+
Validates the a RAML file, runs lint rules against it, and produces HTML documentation.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Clone this repository on your machine, install dependencies and install the command.
|
8
|
+
|
9
|
+
```sh
|
10
|
+
git clone https://github.com/mmorga/ramlstyle.git
|
11
|
+
bundle
|
12
|
+
sudo bundle exec rake install # if you are using the system Ruby
|
13
|
+
bundle exec rake install # if you are using a rbenv, rvm, etc
|
14
|
+
```
|
15
|
+
|
16
|
+
If you aren't a regular ruby user, you should do this first:
|
17
|
+
|
18
|
+
```sh
|
19
|
+
sudo gem install bundler
|
20
|
+
```
|
21
|
+
|
22
|
+
## Usage
|
23
|
+
|
24
|
+
Usage: `ramlstyle [options] file1 file2 ...`
|
25
|
+
|
26
|
+
Option | Description
|
27
|
+
-------------------- | -----------
|
28
|
+
-v, --verbose | Output more information
|
29
|
+
--no-document | Do not produce HTML documentation
|
30
|
+
--no-lint | Do not run linter rules
|
31
|
+
-o, --output-dir DIR | Write HTML documentation to DIR
|
32
|
+
--version | print the version
|
33
|
+
-h, --help | Display this screen
|
34
|
+
|
35
|
+
## Development
|
36
|
+
|
37
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
38
|
+
|
39
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
40
|
+
|
41
|
+
## Contributing
|
42
|
+
|
43
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/ramlstyle.
|
44
|
+
|
45
|
+
## Credits
|
46
|
+
|
47
|
+
1. Templates are derived from templates from [RAML2HTML](https://github.com/kevinrenskers/raml2html)
|
48
|
+
2. RAML is parsed with [raml_ruby](https://github.com/coub/raml_ruby)
|
49
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
require "rake/testtask"
|
3
|
+
require "rubocop/rake_task"
|
4
|
+
|
5
|
+
Rake::TestTask.new(:test) do |t|
|
6
|
+
t.libs << "test"
|
7
|
+
t.libs << "lib"
|
8
|
+
t.test_files = FileList['test/**/test_*.rb']
|
9
|
+
end
|
10
|
+
|
11
|
+
RuboCop::RakeTask.new do |task|
|
12
|
+
task.patterns = ['exe/*', 'lib/**/*.rb', 'test/**/*.rb']
|
13
|
+
end
|
14
|
+
|
15
|
+
desc "Run rubycritic on source and display results"
|
16
|
+
task :rubycritic do
|
17
|
+
sh "bin/rubycritic;open tmp/rubycritic/overview.html"
|
18
|
+
end
|
19
|
+
|
20
|
+
desc "Run sandi_meter on source and display results"
|
21
|
+
task :sandi do
|
22
|
+
sh "sandi_meter -o tmp/sandi_meter -g"
|
23
|
+
end
|
24
|
+
|
25
|
+
desc "Run rubocop, rubycritic, and sandi_meter on source and display results"
|
26
|
+
task quality: [:rubycritic, :sandi, :rubocop]
|
27
|
+
|
28
|
+
task default: :test
|
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
#
|
4
|
+
# This file was generated by Bundler.
|
5
|
+
#
|
6
|
+
# The application 'code_climate_reek' is installed as part of a gem, and
|
7
|
+
# this file is here to facilitate running it.
|
8
|
+
#
|
9
|
+
|
10
|
+
require "pathname"
|
11
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
12
|
+
Pathname.new(__FILE__).realpath)
|
13
|
+
|
14
|
+
require "rubygems"
|
15
|
+
require "bundler/setup"
|
16
|
+
|
17
|
+
load Gem.bin_path("reek", "code_climate_reek")
|
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "ramlstyle"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
require "pry"
|
11
|
+
Pry.start
|
12
|
+
|
13
|
+
# require "irb"
|
14
|
+
# IRB.start
|
data/bin/setup
ADDED
data/exe/ramlstyle
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
module Ramlstyle
|
2
|
+
module Command
|
3
|
+
class DocumentCommand < CommandChain
|
4
|
+
def run(opts, raml_file, raml)
|
5
|
+
Ramlstyle::Document.new(raml)
|
6
|
+
.render_to_file(output_file(opts.output_dir, raml_file)) unless opts.no_document
|
7
|
+
super(opts, raml_file, raml)
|
8
|
+
end
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def output_file(output_dir, raml_file)
|
13
|
+
File.join(output_dir, "#{File.basename(raml_file, '.raml')}.html")
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Ramlstyle
|
2
|
+
module Command
|
3
|
+
class FileCommand
|
4
|
+
def initialize(opts, raml_file)
|
5
|
+
@opts = opts
|
6
|
+
@raml_file = raml_file
|
7
|
+
end
|
8
|
+
|
9
|
+
def run
|
10
|
+
puts "\nParsing #{@raml_file}"
|
11
|
+
|
12
|
+
begin
|
13
|
+
ParseCommand.new(ReviewCommand.new(DocumentCommand.new)).run(@opts, @raml_file)
|
14
|
+
rescue StandardError => error
|
15
|
+
puts error
|
16
|
+
print error.backtrace.join("\n") if @opts.trace
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require "optparse"
|
2
|
+
|
3
|
+
module Ramlstyle
|
4
|
+
module Command
|
5
|
+
class Options
|
6
|
+
def exit_with_msg(msg)
|
7
|
+
puts msg
|
8
|
+
exit
|
9
|
+
end
|
10
|
+
|
11
|
+
def parse(arguments)
|
12
|
+
settings = Settings.new
|
13
|
+
args = arguments.clone # so we don't cause side-effects
|
14
|
+
option_parser(settings).parse!(args)
|
15
|
+
settings.files = args
|
16
|
+
settings.freeze
|
17
|
+
end
|
18
|
+
|
19
|
+
def option_parser(settings)
|
20
|
+
OptionParser.new do |opts|
|
21
|
+
opts.banner = "Usage: rubystyle [options] file1 file2 ..."
|
22
|
+
opts.on('-v', '--verbose', 'Output more information') { settings.verbose = true }
|
23
|
+
opts.on('-t', '--trace', 'Output stack trace on error') { settings.trace = true }
|
24
|
+
opts.on('--no-document', 'Do not produce HTML documentation') { settings.no_document = true }
|
25
|
+
opts.on('--no-lint', 'Do not run linter rules') { settings.no_lint = true }
|
26
|
+
opts.on('-o', '--output-dir DIR', 'Write HTML documentation to DIR') { |dir| settings.output_dir = dir }
|
27
|
+
opts.on('--version', 'print the version') { exit_with_msg(Ramlstyle::VERSION) }
|
28
|
+
opts.on('-h', '--help', 'Display this screen') { exit_with_msg(opts) }
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Ramlstyle
|
2
|
+
module Command
|
3
|
+
class Settings
|
4
|
+
attr_accessor :verbose, :no_document, :no_lint, :output_dir, :files, :trace
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
@verbose = false
|
8
|
+
@trace = false
|
9
|
+
@no_document = false
|
10
|
+
@no_lint = false
|
11
|
+
@output_dir = Dir.getwd
|
12
|
+
@files = []
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Ramlstyle
|
2
|
+
class Document
|
3
|
+
def initialize(obj)
|
4
|
+
@obj = obj
|
5
|
+
end
|
6
|
+
|
7
|
+
def render
|
8
|
+
Documentation::RendererFactory.new.renderer_for_root(@obj).render
|
9
|
+
end
|
10
|
+
|
11
|
+
def render_to_file(file_name)
|
12
|
+
IO.write(file_name, render)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module Ramlstyle
|
2
|
+
module Documentation
|
3
|
+
class ERBContext
|
4
|
+
include ERB::Util
|
5
|
+
|
6
|
+
def initialize(hash)
|
7
|
+
@options = {}
|
8
|
+
@markdown = Redcarpet::Markdown.new(
|
9
|
+
Redcarpet::Render::SmartyHTML,
|
10
|
+
no_intra_emphasis: true,
|
11
|
+
tables: true,
|
12
|
+
fenced_code_blocks: true,
|
13
|
+
autolink: true,
|
14
|
+
strikethrough: true,
|
15
|
+
underline: true,
|
16
|
+
quote: true,
|
17
|
+
footnotes: true
|
18
|
+
)
|
19
|
+
hash.each_pair do |key, value|
|
20
|
+
instance_variable_set('@' + key.to_s, value)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def markdown(str)
|
25
|
+
@markdown.render(str || "")
|
26
|
+
end
|
27
|
+
|
28
|
+
def render_resource(res)
|
29
|
+
RendererFactory.new.renderer_for_resource(res).render
|
30
|
+
end
|
31
|
+
|
32
|
+
def render_parameter(param)
|
33
|
+
RendererFactory.new.renderer_for_parameter(param).render
|
34
|
+
end
|
35
|
+
|
36
|
+
def secured?(obj)
|
37
|
+
return true if obj.secured_by.count { |s| s.name == "null" } > 0
|
38
|
+
return true if obj.security_scheme_declarations.count { |s| s.name == "null" } > 0
|
39
|
+
false
|
40
|
+
end
|
41
|
+
|
42
|
+
def security_scheme_names(obj)
|
43
|
+
return obj.secured_by.map(&:name) if obj.secured_by.length > 0
|
44
|
+
obj.security_scheme_declarations.map(&:name)
|
45
|
+
end
|
46
|
+
|
47
|
+
def context_binding
|
48
|
+
binding
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Ramlstyle
|
2
|
+
module Documentation
|
3
|
+
class Renderer
|
4
|
+
def initialize(template, template_var_hash)
|
5
|
+
@template = ERB.new(File.read(template))
|
6
|
+
@context = ERBContext.new(template_var_hash)
|
7
|
+
end
|
8
|
+
|
9
|
+
def render
|
10
|
+
@template.result(@context.context_binding)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Ramlstyle
|
2
|
+
module Documentation
|
3
|
+
class RendererFactory
|
4
|
+
def renderer_for_parameter(param)
|
5
|
+
Renderer.new(File.join(Ramlstyle::TEMPLATES_PATH, 'item.html.erb'), item: param, key: param.name)
|
6
|
+
end
|
7
|
+
|
8
|
+
def renderer_for_resource(res)
|
9
|
+
Renderer.new(File.join(Ramlstyle::TEMPLATES_PATH, 'resource.html.erb'), resource: res)
|
10
|
+
end
|
11
|
+
|
12
|
+
def renderer_for_root(root)
|
13
|
+
Renderer.new(File.join(Ramlstyle::TEMPLATES_PATH, 'template.html.erb'), raml: root)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Raml
|
2
|
+
class Node
|
3
|
+
# A method that gives you the full path of the node to make it easier to find the error.
|
4
|
+
def path_name
|
5
|
+
File.join(parent.path_name, name.to_s)
|
6
|
+
end
|
7
|
+
|
8
|
+
def parent_url
|
9
|
+
parent.path_name
|
10
|
+
end
|
11
|
+
|
12
|
+
def unique_id
|
13
|
+
path_name.gsub(%r([\/\{\}]), "_")
|
14
|
+
end
|
15
|
+
|
16
|
+
def all_uri_parameters
|
17
|
+
children.select { |child| child.is_a? Raml::Parameter::UriParameter }
|
18
|
+
end
|
19
|
+
|
20
|
+
def query_parameters
|
21
|
+
children.select { |child| child.is_a? Raml::Parameter::QueryParameter }
|
22
|
+
end
|
23
|
+
|
24
|
+
def form_parameters
|
25
|
+
children.select { |child| child.is_a? Raml::Parameter::FormParameter }
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|