swaggable 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,48 @@
1
+ require_relative '../spec_helper'
2
+
3
+ RSpec.describe 'Swaggable::TagDefinition' do
4
+ let(:subject_class) { Swaggable::TagDefinition }
5
+ let(:subject_instance) { Swaggable::TagDefinition.new }
6
+ subject { subject_instance }
7
+
8
+ it 'has a name' do
9
+ subject.name = 'a name'
10
+ expect(subject.name).to eq 'a name'
11
+ end
12
+
13
+ it 'has a description' do
14
+ subject.description = 'a new desc'
15
+ expect(subject.description).to eq 'a new desc'
16
+ end
17
+
18
+ it 'yields itself on initialize' do
19
+ yielded = false
20
+
21
+ subject_class.new do |s|
22
+ expect(s).to be_a subject_class
23
+ yielded = true
24
+ end
25
+
26
+ expect(yielded).to be true
27
+ end
28
+
29
+ it 'equals by name' do
30
+ tag_1 = subject_class.new name: 'tag 1', description: 'Desc 1'
31
+ tag_1_again = subject_class.new name: 'tag 1', description: 'Desc 1 again'
32
+ tag_2 = subject_class.new name: 'tag 2', description: 'Desc 2'
33
+
34
+ expect(tag_1).to eq tag_1_again
35
+ expect([tag_1, tag_1_again].uniq.length).to eq 1
36
+ expect(tag_1).not_to eq tag_2
37
+ end
38
+
39
+ it 'doesn\'t throw error if comparing with any random object' do
40
+ expect{ subject == double }.not_to raise_error
41
+ end
42
+
43
+ it 'accepts attributes on initialize' do
44
+ tag = subject_class.new name: 'New name', description: 'New description'
45
+ expect(tag.name).to eq 'New name'
46
+ expect(tag.description).to eq 'New description'
47
+ end
48
+ end
@@ -0,0 +1,7 @@
1
+ require_relative 'spec_helper'
2
+
3
+ RSpec.describe 'Swaggable' do
4
+ it 'has a VERSION' do
5
+ expect(Swaggable::VERSION).not_to be_nil
6
+ end
7
+ end
data/swaggable.gemspec ADDED
@@ -0,0 +1,29 @@
1
+ # coding: utf-8
2
+ gem_name = "swaggable"
3
+
4
+ lib = File.expand_path('../lib', __FILE__)
5
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
6
+ require "#{gem_name}/version"
7
+
8
+ Gem::Specification.new do |spec|
9
+ spec.name = gem_name
10
+ spec.version = Swaggable::VERSION
11
+ spec.authors = ["Manuel Morales"]
12
+ spec.email = ['manuelmorales@gmail.com']
13
+ spec.description = "Flexible Swagger documentation for Rack and Grape"
14
+ spec.summary = "Allows you to generate Swagger documentation from Grape endpoints and expose it as a Rack app."
15
+ spec.homepage = "https://github.com/workshare/#{spec.name.gsub('_','-')}"
16
+ spec.license = "MIT"
17
+
18
+ spec.files = `git ls-files`.split($/)
19
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
20
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
21
+ spec.require_paths = ["lib"]
22
+
23
+ spec.add_runtime_dependency "forwarding_dsl", '~> 1.0'
24
+ spec.add_runtime_dependency "json-schema", '~> 2.5'
25
+ spec.add_runtime_dependency "mini_object", '~> 0.1'
26
+
27
+ spec.add_development_dependency "bundler", "~> 1.9"
28
+ spec.add_development_dependency "rake", '~> 10.4'
29
+ end
metadata ADDED
@@ -0,0 +1,161 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: swaggable
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.0
5
+ platform: ruby
6
+ authors:
7
+ - Manuel Morales
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-06-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: forwarding_dsl
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: json-schema
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.5'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.5'
41
+ - !ruby/object:Gem::Dependency
42
+ name: mini_object
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.1'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.9'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.9'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '10.4'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '10.4'
83
+ description: Flexible Swagger documentation for Rack and Grape
84
+ email:
85
+ - manuelmorales@gmail.com
86
+ executables: []
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - ".gitignore"
91
+ - Gemfile
92
+ - LICENSE.txt
93
+ - README.md
94
+ - Rakefile
95
+ - assets/json-schema-draft-04.json
96
+ - assets/swagger-2.0-schema.json
97
+ - lib/swaggable.rb
98
+ - lib/swaggable/api_definition.rb
99
+ - lib/swaggable/endpoint_definition.rb
100
+ - lib/swaggable/grape_adapter.rb
101
+ - lib/swaggable/parameter_definition.rb
102
+ - lib/swaggable/rack_app.rb
103
+ - lib/swaggable/response_definition.rb
104
+ - lib/swaggable/swagger_2_serializer.rb
105
+ - lib/swaggable/swagger_2_validator.rb
106
+ - lib/swaggable/tag_definition.rb
107
+ - lib/swaggable/version.rb
108
+ - spec/assets/valid-swagger-2.0.json
109
+ - spec/spec_helper.rb
110
+ - spec/swaggable/api_definition_spec.rb
111
+ - spec/swaggable/endpoint_definition_spec.rb
112
+ - spec/swaggable/grape_adapter_spec.rb
113
+ - spec/swaggable/integration_spec.rb
114
+ - spec/swaggable/parameter_definition_spec.rb
115
+ - spec/swaggable/rack_app_spec.rb
116
+ - spec/swaggable/response_definition_spec.rb
117
+ - spec/swaggable/swagger_2_serializer_spec.rb
118
+ - spec/swaggable/swagger_2_validator_spec.rb
119
+ - spec/swaggable/tag_definition_spec.rb
120
+ - spec/swaggable_spec.rb
121
+ - swaggable.gemspec
122
+ homepage: https://github.com/workshare/swaggable
123
+ licenses:
124
+ - MIT
125
+ metadata: {}
126
+ post_install_message:
127
+ rdoc_options: []
128
+ require_paths:
129
+ - lib
130
+ required_ruby_version: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ required_rubygems_version: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ requirements: []
141
+ rubyforge_project:
142
+ rubygems_version: 2.2.2
143
+ signing_key:
144
+ specification_version: 4
145
+ summary: Allows you to generate Swagger documentation from Grape endpoints and expose
146
+ it as a Rack app.
147
+ test_files:
148
+ - spec/assets/valid-swagger-2.0.json
149
+ - spec/spec_helper.rb
150
+ - spec/swaggable/api_definition_spec.rb
151
+ - spec/swaggable/endpoint_definition_spec.rb
152
+ - spec/swaggable/grape_adapter_spec.rb
153
+ - spec/swaggable/integration_spec.rb
154
+ - spec/swaggable/parameter_definition_spec.rb
155
+ - spec/swaggable/rack_app_spec.rb
156
+ - spec/swaggable/response_definition_spec.rb
157
+ - spec/swaggable/swagger_2_serializer_spec.rb
158
+ - spec/swaggable/swagger_2_validator_spec.rb
159
+ - spec/swaggable/tag_definition_spec.rb
160
+ - spec/swaggable_spec.rb
161
+ has_rdoc: