grape-markdown 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e78a882d691c6608a8cc6772a6d26d495671c9e2
4
- data.tar.gz: 95194bf0b6ac4004f4fb8d6d04d802c97e2dc9e5
3
+ metadata.gz: 23c66a58fc6dbd66c82241230455c5f2cb22dcae
4
+ data.tar.gz: c516acd4dcba953c7b5d90bd1553aa5ea344ffba
5
5
  SHA512:
6
- metadata.gz: 3da325418b11617847ba3d7f3f8cf4848aded3e3a2a9b33dd0ff351d229e02df49272f8991a46cd03150b97e1a7df1f124a6d603cc64b486c29df8446fc1100b
7
- data.tar.gz: 14fba51ade118c7b5f5ec4ae4a30934915d8649c687548a3dffc5358739519896ac9252b1b07649014dc1ab455386924a37d4eb34986dfd1f29ec1a6085f8193
6
+ metadata.gz: c38c1468ba6b71342d5330f534a858fdea4c43ce7f484134070747916ed142dd9dfb0166ffd40fa9d0f1395b3fe64d6cce175dc9fcdea5bb70a50db296013433
7
+ data.tar.gz: 12530734727aa1e69062043254b019369bfbe9b773d62948da103934ac7f367b38a6500970d22347b6b5cbc841d223f4f03791c154b79630c9a89e4b355fe49b
@@ -1,5 +1,5 @@
1
1
  module GrapeMarkdown
2
- class Config
2
+ class Configuration
3
3
  SETTINGS = [
4
4
  :name,
5
5
  :description,
@@ -13,6 +13,10 @@ module GrapeMarkdown
13
13
  class << self
14
14
  attr_accessor(*SETTINGS)
15
15
 
16
+ def extend(setting)
17
+ self.class.send :attr_accessor, setting
18
+ end
19
+
16
20
  def request_headers
17
21
  @request_headers ||= []
18
22
  end
@@ -2,7 +2,10 @@ module GrapeMarkdown
2
2
  class Document
3
3
  attr_reader :api_class, :document_template, :properties_template
4
4
 
5
- delegate(*GrapeMarkdown::Config::SETTINGS, to: 'GrapeMarkdown::Config')
5
+ delegate(
6
+ *GrapeMarkdown::Configuration::SETTINGS,
7
+ to: 'GrapeMarkdown::Configuration'
8
+ )
6
9
 
7
10
  def initialize(api_class)
8
11
  @api_class = api_class
@@ -11,7 +14,7 @@ module GrapeMarkdown
11
14
  end
12
15
 
13
16
  def generate
14
- ERB.new(document_template, nil, '-').result(binding)
17
+ render(document_template, binding)
15
18
  end
16
19
 
17
20
  def write
@@ -35,15 +38,15 @@ module GrapeMarkdown
35
38
  end
36
39
 
37
40
  def properties_table(resource)
38
- ERB.new(properties_template, nil, '-').result(resource.resource_binding)
41
+ render(properties_template, resource.resource_binding)
39
42
  end
40
43
 
41
44
  def formatted_request_headers
42
- formatted_headers(GrapeMarkdown::Config.request_headers)
45
+ formatted_headers(GrapeMarkdown::Configuration.request_headers)
43
46
  end
44
47
 
45
48
  def formatted_response_headers
46
- formatted_headers(GrapeMarkdown::Config.response_headers)
49
+ formatted_headers(GrapeMarkdown::Configuration.response_headers)
47
50
  end
48
51
 
49
52
  def show_request_sample?(route)
@@ -52,6 +55,10 @@ module GrapeMarkdown
52
55
 
53
56
  private
54
57
 
58
+ def render(template, binding = nil)
59
+ ERB.new(template, nil, '-').result(binding)
60
+ end
61
+
55
62
  def template_for(name)
56
63
  directory = File.dirname(File.expand_path(__FILE__))
57
64
  path = File.join(directory, "./templates/#{name}.md.erb")
@@ -37,7 +37,7 @@ module GrapeMarkdown
37
37
  type: 'uuid',
38
38
  desc: "the `id` of the `#{model}`",
39
39
  documentation: {
40
- example: GrapeMarkdown::Config.generate_id
40
+ example: GrapeMarkdown::Configuration.generate_id
41
41
  }
42
42
  }
43
43
  end
@@ -32,12 +32,12 @@ module GrapeMarkdown
32
32
  "#{title} #{route.route_type} [#{route.route_path_without_format}]"
33
33
  end
34
34
 
35
- def sample_request
36
- sample_generator.request
35
+ def sample_request(pretty = true)
36
+ sample_generator.request(pretty: pretty)
37
37
  end
38
38
 
39
- def sample_response(route)
40
- sample_generator.response(route.list?)
39
+ def sample_response(route, pretty = true)
40
+ sample_generator.response(list: route.list?, pretty: pretty)
41
41
  end
42
42
 
43
43
  def unique_params
@@ -45,6 +45,10 @@ module GrapeMarkdown
45
45
  %w(GET POST).include?(route_method) && !route_path.include?(':id')
46
46
  end
47
47
 
48
+ def route_binding
49
+ binding
50
+ end
51
+
48
52
  private
49
53
 
50
54
  def request_body?
@@ -18,28 +18,38 @@ module GrapeMarkdown
18
18
 
19
19
  hash = Hash[array.compact]
20
20
 
21
- hash = hash.reverse_merge(id: Config.generate_id) if id
22
- hash = { root => hash } if Config.include_root
21
+ hash = hash.reverse_merge(id: Configuration.generate_id) if id
22
+ hash = { root => hash } if Configuration.include_root
23
23
 
24
24
  hash
25
25
  end
26
26
 
27
- def request
27
+ def request(opts = {})
28
28
  hash = sample
29
29
 
30
30
  return unless hash.present?
31
31
 
32
- JSON.pretty_generate(hash)
32
+ json(hash, opts[:pretty])
33
33
  end
34
34
 
35
- def response(list = false)
35
+ def response(opts = {})
36
36
  hash = sample(true)
37
37
 
38
38
  return unless hash.present?
39
39
 
40
- hash = [hash] if list
40
+ hash = [hash] if opts[:list]
41
41
 
42
- JSON.pretty_generate(hash)
42
+ json(hash, opts[:pretty])
43
+ end
44
+
45
+ private
46
+
47
+ def json(hash, pretty = true)
48
+ if pretty
49
+ JSON.pretty_generate(hash)
50
+ else
51
+ JSON.generate(hash)
52
+ end
43
53
  end
44
54
  end
45
55
  end
@@ -1,3 +1,3 @@
1
1
  module GrapeMarkdown
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
@@ -2,7 +2,7 @@ require 'grape'
2
2
 
3
3
  module GrapeMarkdown
4
4
  autoload :Version, 'grape-markdown/version'
5
- autoload :Config, 'grape-markdown/config'
5
+ autoload :Configuration, 'grape-markdown/configuration'
6
6
  autoload :Parameter, 'grape-markdown/parameter'
7
7
  autoload :SampleGenerator, 'grape-markdown/sample_generator'
8
8
  autoload :Route, 'grape-markdown/route'
@@ -10,7 +10,7 @@ module GrapeMarkdown
10
10
  autoload :Document, 'grape-markdown/document'
11
11
 
12
12
  def self.config
13
- block_given? ? yield(Config) : Config
13
+ block_given? ? yield(Configuration) : Configuration
14
14
  end
15
15
  end
16
16
 
@@ -1,9 +1,9 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe GrapeMarkdown::Config do
3
+ describe GrapeMarkdown::Configuration do
4
4
  include_context 'configuration'
5
5
 
6
- subject { GrapeMarkdown::Config }
6
+ subject { GrapeMarkdown::Configuration }
7
7
 
8
8
  it 'allows for name to be set' do
9
9
  subject.name = name
@@ -17,6 +17,18 @@ describe GrapeMarkdown::Config do
17
17
  expect(subject.description).to eq(description)
18
18
  end
19
19
 
20
+ context '.extend' do
21
+ before do
22
+ subject.extend(:foo)
23
+ end
24
+
25
+ it 'allows for adding a new setting' do
26
+ subject.foo = :bar
27
+
28
+ expect(subject.foo).to eq(:bar)
29
+ end
30
+ end
31
+
20
32
  context '.include_root' do
21
33
  it 'defaults to false' do
22
34
  expect(subject.include_root).to be(false)
@@ -42,8 +42,10 @@ describe GrapeMarkdown::Document do
42
42
  end
43
43
 
44
44
  it 'exposes configuration settings' do
45
- GrapeMarkdown::Config::SETTINGS.each do |setting|
46
- expect(subject.send(setting)).to eq(GrapeMarkdown.config.send(setting))
45
+ GrapeMarkdown::Configuration::SETTINGS.each do |setting|
46
+ value = GrapeMarkdown.config.send(setting)
47
+
48
+ expect(subject.send(setting)).to eq(value)
47
49
  end
48
50
  end
49
51
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grape-markdown
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Allen
@@ -169,7 +169,7 @@ files:
169
169
  - Rakefile
170
170
  - grape-markdown.gemspec
171
171
  - lib/grape-markdown.rb
172
- - lib/grape-markdown/config.rb
172
+ - lib/grape-markdown/configuration.rb
173
173
  - lib/grape-markdown/document.rb
174
174
  - lib/grape-markdown/parameter.rb
175
175
  - lib/grape-markdown/resource.rb
@@ -179,7 +179,7 @@ files:
179
179
  - lib/grape-markdown/templates/properties.md.erb
180
180
  - lib/grape-markdown/version.rb
181
181
  - lib/grape/markdown.rb
182
- - spec/grape-markdown/config_spec.rb
182
+ - spec/grape-markdown/configuration_spec.rb
183
183
  - spec/grape-markdown/document_spec.rb
184
184
  - spec/grape-markdown/resource_spec.rb
185
185
  - spec/grape-markdown/route_spec.rb
@@ -212,7 +212,7 @@ signing_key:
212
212
  specification_version: 4
213
213
  summary: Allows for generating a Markdown document from you Grape API
214
214
  test_files:
215
- - spec/grape-markdown/config_spec.rb
215
+ - spec/grape-markdown/configuration_spec.rb
216
216
  - spec/grape-markdown/document_spec.rb
217
217
  - spec/grape-markdown/resource_spec.rb
218
218
  - spec/grape-markdown/route_spec.rb