swagger-blocks 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 CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 1feb49d6ff4f98fa20993ea31858e263c5ce09a4
4
- data.tar.gz: 202eb893193d3bad7599791c72014d0f06a0a045
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YmQyODUyY2U2NmY1MDExMjllYWNjOTE2ZTIxYmJiYTdkZTcyM2Q1Mw==
5
+ data.tar.gz: !binary |-
6
+ ZjUzZjViYWFkYTk0MGVkN2RmNWZlYWIzZjI1NzQ1MDUxNTIzYjA5Nw==
5
7
  SHA512:
6
- metadata.gz: b11d4343fa07338eb7706960b9aa0e1e2714b4abd46948d894e42a7ff2deb93bfbc9b6d38db61896d4d3bebccda52995b85f71a8ec23c4502d0c2297f41e1f68
7
- data.tar.gz: 83bc75e151706a81535523a9a7b797c45943324a50ee913ed35c62f2453ddf8d8beaaf950c7ab5a1c9d8f1b1557a5885de2094ae5c9609bb9f6d16064c00ea2e
8
+ metadata.gz: !binary |-
9
+ MjI3MjA3YzM2Njc2MGJkYTY2YzViYjI4YTU1MWZmNDExZjllNDUxYjAyYzJl
10
+ YjRkZjM5NDJhNDIxYzcxZTJkMjRhNGRhMzFjNTNmZjBmZjUzNzg0Y2FkMTMz
11
+ YzIyODRlODdkM2Y4NWVkY2M0ZjYzNWY1ZjU3ZGI0MWE5MWVmODE=
12
+ data.tar.gz: !binary |-
13
+ NjQzZDFhYzllNmUyNDg0NTQ3NzgzYjI0ZTNmODdmMzBjN2I5MDU4NWNiZDEw
14
+ NDQ4OGJlZTA0MzNlNTdmNjRjMzc0YWZjODIxOWM5Y2VlMzA2NDhmMDczMjE1
15
+ NjJkZmQ1ZTU3Y2FlM2NmOGIzZGU4MWIwZWY3YmUyMjRjZWUyYjM=
data/.travis.yml CHANGED
@@ -1,5 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
+ - 1.9.3
3
4
  - 2.1.1
4
5
  - ruby-head
5
6
  script: bundle exec rspec
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # Swagger::Blocks
2
2
 
3
3
  [![Build Status](https://travis-ci.org/fotinakis/swagger-blocks.svg?branch=master)](https://travis-ci.org/fotinakis/swagger-blocks)
4
+ [![Gem Version](https://badge.fury.io/rb/swagger-blocks.svg)](http://badge.fury.io/rb/swagger-blocks)
4
5
 
5
6
  Swagger::Blocks is a DSL for pure Ruby code blocks that can be turned into JSON.
6
7
 
@@ -14,13 +15,19 @@ It helps you write API docs in the [Swagger](https://helloreverb.com/developers/
14
15
  * Flexible—you can use Swagger::Blocks anywhere, split up blocks to fit your style preferences, etc. Since it's pure Ruby and serves definitions dynamically, you can easily use initializers/config objects to change values or even show/hide different APIs based on environment.
15
16
  * 1:1 naming with the Swagger spec—block names and nesting should match almost exactly with the swagger spec, with rare exceptions to make things more convenient.
16
17
 
18
+ ## Swagger UI demo
19
+
20
+ http://petstore.swagger.wordnik.com/#!/pet
21
+
22
+ ![swagger-sample](https://cloud.githubusercontent.com/assets/75300/5822830/4769805c-a08c-11e4-9efe-d57cf0f752e0.png)
23
+
17
24
  ## Installation
18
25
 
19
26
  Add this line to your application's Gemfile:
20
27
 
21
28
  gem 'swagger-blocks'
22
29
 
23
- Or install directly with `gem install swagger-blocks`. **Requires Ruby 2.1+**
30
+ Or install directly with `gem install swagger-blocks`.
24
31
 
25
32
  ## Example (Rails)
26
33
 
@@ -176,6 +183,11 @@ See the [swagger_blocks_spec.rb](https://github.com/fotinakis/swagger-blocks/blo
176
183
  4. Push to the branch (`git push origin my-new-feature`)
177
184
  5. Create a new Pull Request
178
185
 
186
+ ## Release notes
187
+
188
+ * v1.0.1: Make backwards-compatible with Ruby 1.9.3.
189
+ * v1.0.0: Initial major release.
190
+
179
191
  ## Credits
180
192
 
181
193
  Original idea inspired by **[@richhollis](https://github.com/richhollis/)**'s [swagger-docs](https://github.com/richhollis/swagger-docs/) gem.
@@ -1,5 +1,5 @@
1
1
  module Swagger
2
2
  module Blocks
3
- VERSION = '1.0.0'
3
+ VERSION = '1.0.1'
4
4
  end
5
5
  end
@@ -13,12 +13,12 @@ module Swagger
13
13
  base.extend(ClassMethods)
14
14
  end
15
15
 
16
- module_function def build_root_json(swaggered_classes)
16
+ def self.build_root_json(swaggered_classes)
17
17
  data = Swagger::Blocks::InternalHelpers.parse_swaggered_classes(swaggered_classes)
18
18
  data[:root_node].as_json
19
19
  end
20
20
 
21
- module_function def build_api_json(resource_name, swaggered_classes)
21
+ def self.build_api_json(resource_name, swaggered_classes)
22
22
  data = Swagger::Blocks::InternalHelpers.parse_swaggered_classes(swaggered_classes)
23
23
  api_node = data[:api_node_map][resource_name.to_sym]
24
24
  raise Swagger::Blocks::NotFoundError.new(
@@ -26,9 +26,7 @@ module Swagger
26
26
 
27
27
  # Aggregate all model definitions into a new ModelsNode tree and add it to the JSON.
28
28
  temp_models_node = Swagger::Blocks::ModelsNode.call(name: 'models') { }
29
- data[:models_nodes].each do |models_node|
30
- temp_models_node.merge!(models_node)
31
- end
29
+ data[:models_nodes].each { |models_node| temp_models_node.merge!(models_node) }
32
30
  result = api_node.as_json
33
31
  result.merge!(temp_models_node.as_json) if temp_models_node
34
32
  result
@@ -130,10 +128,10 @@ module Swagger
130
128
  class Node
131
129
  attr_accessor :name
132
130
 
133
- def self.call(name: nil, &block)
131
+ def self.call(options = {}, &block)
134
132
  # Create a new instance and evaluate the block into it.
135
133
  instance = new
136
- instance.name = name if name # Set the first parameter given as the name.
134
+ instance.name = options[:name] if options[:name]
137
135
  instance.instance_eval(&block)
138
136
  instance
139
137
  end
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ['lib']
20
- spec.required_ruby_version = '>= 2.1'
20
+ spec.required_ruby_version = '>= 1.9.3'
21
21
 
22
22
  spec.add_development_dependency 'bundler'
23
23
  spec.add_development_dependency 'rake'
metadata CHANGED
@@ -1,69 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: swagger-blocks
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Fotinakis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-20 00:00:00.000000000 Z
11
+ date: 2015-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - ! '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - ! '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - ! '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - ! '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - ! '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - ! '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: pry
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - ! '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  description: ''
@@ -73,9 +73,9 @@ executables: []
73
73
  extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
- - ".gitignore"
77
- - ".rspec"
78
- - ".travis.yml"
76
+ - .gitignore
77
+ - .rspec
78
+ - .travis.yml
79
79
  - Gemfile
80
80
  - LICENSE
81
81
  - README.md
@@ -97,17 +97,17 @@ require_paths:
97
97
  - lib
98
98
  required_ruby_version: !ruby/object:Gem::Requirement
99
99
  requirements:
100
- - - ">="
100
+ - - ! '>='
101
101
  - !ruby/object:Gem::Version
102
- version: '2.1'
102
+ version: 1.9.3
103
103
  required_rubygems_version: !ruby/object:Gem::Requirement
104
104
  requirements:
105
- - - ">="
105
+ - - ! '>='
106
106
  - !ruby/object:Gem::Version
107
107
  version: '0'
108
108
  requirements: []
109
109
  rubyforge_project:
110
- rubygems_version: 2.2.2
110
+ rubygems_version: 2.4.5
111
111
  signing_key:
112
112
  specification_version: 4
113
113
  summary: Define and serve live-updating Swagger JSON for Ruby apps.
@@ -116,4 +116,3 @@ test_files:
116
116
  - spec/lib/swagger_blocks_spec.rb
117
117
  - spec/lib/swagger_resource_listing.json
118
118
  - spec/spec_helper.rb
119
- has_rdoc: