openapi_builder 0.1.0 → 0.2.0

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,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ea94838dc40b3527d3c9b39587e51c2e062733c7da802a76f5ba52503b0b301b
4
- data.tar.gz: abe98c81320326fc920ef72e3d15ea3a752739df5ae5ce5340df5d23aec9c831
3
+ metadata.gz: bf6365e8a9fc315e0745ca15f8abc0005663974a98879180fcf624a6fd734196
4
+ data.tar.gz: 0cb780571d2af1c1a222757b3dfc9bd9148b4e3db37c47cf9a269afa05667be7
5
5
  SHA512:
6
- metadata.gz: 4a40b3547114292d753f1bee50439cb1515cf110ecf2d478fa6f2e7257d50e6d590dde9e5c8e46628fc540de65ed8473a0d79d8455d44cd867c064bb400b4088
7
- data.tar.gz: 583b418d4fddf1d7c41ae9b0e431e676b77ea43663adda2d74c2b15589b95656440f10b4eb3d01d6a3c9be9b22172d0a15414bb97baf32f16694445b1897f969
6
+ metadata.gz: ef77656feeeef58d5f43dbc929af40a1f02c6ec5a66fdd8f497c3471acd101da93061f5eb0a95ea82b0eb2fae8b3ce78e313804b8085954501a7de89d614b72e
7
+ data.tar.gz: 8d1d36b5683ab3fea1f38d7f44888511fcc97737c852d58c0fae6d94a5cacd76adaf49c5daae0dff7b3810b1ab4cb2b75a8c7ca7490a954282892ac20ece615a
data/README.md CHANGED
@@ -1,4 +1,12 @@
1
- # OpenapiBuilder
1
+ [gem]: https://rubygems.org/gems/openapi_builder
2
+ [travis]: https://travis-ci.org/medsolutions/openapi_builder
3
+ [codeclimate]: https://codeclimate.com/github/medsolutions/openapi_builder
4
+
5
+ # openapi_builder
6
+ [![Gem Version](https://badge.fury.io/rb/openapi_builder.svg)][gem]
7
+ [![Build Status](https://travis-ci.org/medsolutions/openapi_builder.svg?branch=master)][travis]
8
+ [![Code Climate](https://codeclimate.com/github/medsolutions/openapi_builder/badges/gpa.svg)][codeclimate]
9
+ [![Test Coverage](https://codeclimate.com/github/medsolutions/openapi_builder/badges/coverage.svg)][codeclimate]
2
10
 
3
11
  Simple OpenAPI specification builder inspired by [Redoc.ly's Generator](https://github.com/ReDoc-ly/create-openapi-repo)
4
12
 
@@ -30,7 +38,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
30
38
 
31
39
  ## Contributing
32
40
 
33
- Bug reports and pull requests are welcome on GitHub at https://github.com/llcmedsolutions/openapi_builder.
41
+ Bug reports and pull requests are welcome on GitHub at https://github.com/medsolutions/openapi_builder.
34
42
 
35
43
  ## License
36
44
 
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "openapi_builder"
4
+
5
+ usage_message = "Usage: openapi_builder build SRC_FILE DST_FILE"
6
+
7
+ return puts usage_message if ARGV.length != 3
8
+ return puts usage_message unless %w[build].include?(ARGV[0])
9
+
10
+ case File.extname(ARGV[2])
11
+ when ".yml", ".yaml"
12
+ data = OpenapiBuilder.call(ARGV[1]).to_yaml
13
+ when ".json"
14
+ data = OpenapiBuilder.call(ARGV[1]).to_json
15
+ else
16
+ return puts "DST_FILE extname should be json or yml/yaml"
17
+ end
18
+
19
+ File.open(ARGV[2], 'w') { |file| file.write(data) }
@@ -24,16 +24,23 @@ module OpenapiBuilder
24
24
 
25
25
  def load_components
26
26
  @data["components"] = Hash.new.tap do |components|
27
- Dir["#{@dirname}/components/*"].each do |component_path|
28
- basename = File.basename(component_path)
29
- next if basename.include? "."
30
- components[File.basename(component_path)] = Hash.new.tap do |block|
31
- Dir["#{component_path}/*"].each do |file|
32
- content = load_file(file)
33
- next unless content
34
- block[File.basename(file, '.*')] = content
35
- end
36
- end
27
+ component_dirs.each do |component_path|
28
+ components[File.basename(component_path)] = load_component(component_path)
29
+ end
30
+ end
31
+ end
32
+
33
+ def component_dirs
34
+ Dir["#{@dirname}/components/*"].select { |component_path| File.directory? component_path }
35
+ end
36
+
37
+ def load_component(component_path)
38
+ Hash.new.tap do |block|
39
+ Dir["#{component_path}/*"].each do |file|
40
+ content = load_file(file)
41
+ next unless content
42
+
43
+ block[File.basename(file, '.*')] = content
37
44
  end
38
45
  end
39
46
  end
@@ -43,6 +50,7 @@ module OpenapiBuilder
43
50
  Dir["#{@dirname}/paths/*"].each do |file|
44
51
  content = load_file(file)
45
52
  next unless content
53
+
46
54
  key = File.basename(file, '.*').gsub('@', '/')
47
55
  paths["/#{key}"] = content
48
56
  end
@@ -1,3 +1,3 @@
1
1
  module OpenapiBuilder
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openapi_builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Svyatoslav Kryukov
8
8
  autorequire:
9
- bindir: exe
9
+ bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-09 00:00:00.000000000 Z
11
+ date: 2019-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -55,25 +55,18 @@ dependencies:
55
55
  description:
56
56
  email:
57
57
  - s.g.kryukov@yandex.ru
58
- executables: []
58
+ executables:
59
+ - openapi_builder
59
60
  extensions: []
60
61
  extra_rdoc_files: []
61
62
  files:
62
- - ".gitignore"
63
- - ".rspec"
64
- - ".travis.yml"
65
- - Gemfile
66
- - Gemfile.lock
67
63
  - LICENSE.txt
68
64
  - README.md
69
- - Rakefile
70
- - bin/console
71
- - bin/setup
65
+ - bin/openapi_builder
72
66
  - lib/openapi_builder.rb
73
67
  - lib/openapi_builder/core.rb
74
68
  - lib/openapi_builder/version.rb
75
- - openapi_builder.gemspec
76
- homepage: https://github.com/llcmedsolutions/openapi_builder
69
+ homepage: https://github.com/medsolutions/openapi_builder
77
70
  licenses:
78
71
  - MIT
79
72
  metadata: {}
@@ -85,14 +78,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
85
78
  requirements:
86
79
  - - ">="
87
80
  - !ruby/object:Gem::Version
88
- version: '0'
81
+ version: '2.4'
89
82
  required_rubygems_version: !ruby/object:Gem::Requirement
90
83
  requirements:
91
84
  - - ">="
92
85
  - !ruby/object:Gem::Version
93
86
  version: '0'
94
87
  requirements: []
95
- rubygems_version: 3.0.1
88
+ rubygems_version: 3.0.3
96
89
  signing_key:
97
90
  specification_version: 4
98
91
  summary: Simple OpenAPI specification builder inspired by https://github.com/Rebilly/RebillyAPI
data/.gitignore DELETED
@@ -1,11 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /_yardoc/
4
- /coverage/
5
- /doc/
6
- /pkg/
7
- /spec/reports/
8
- /tmp/
9
-
10
- # rspec failure tracking
11
- .rspec_status
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --format documentation
2
- --color
3
- --require spec_helper
@@ -1,7 +0,0 @@
1
- ---
2
- sudo: false
3
- language: ruby
4
- cache: bundler
5
- rvm:
6
- - 2.6.1
7
- before_install: gem install bundler -v 2.0.1
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- # Specify your gem's dependencies in openapi_builder.gemspec
4
- gemspec
@@ -1,35 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- openapi_builder (0.1.0)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- diff-lcs (1.3)
10
- rake (10.5.0)
11
- rspec (3.8.0)
12
- rspec-core (~> 3.8.0)
13
- rspec-expectations (~> 3.8.0)
14
- rspec-mocks (~> 3.8.0)
15
- rspec-core (3.8.0)
16
- rspec-support (~> 3.8.0)
17
- rspec-expectations (3.8.2)
18
- diff-lcs (>= 1.2.0, < 2.0)
19
- rspec-support (~> 3.8.0)
20
- rspec-mocks (3.8.0)
21
- diff-lcs (>= 1.2.0, < 2.0)
22
- rspec-support (~> 3.8.0)
23
- rspec-support (3.8.0)
24
-
25
- PLATFORMS
26
- ruby
27
-
28
- DEPENDENCIES
29
- bundler (~> 2.0)
30
- openapi_builder!
31
- rake (~> 10.0)
32
- rspec (~> 3.0)
33
-
34
- BUNDLED WITH
35
- 2.0.1
data/Rakefile DELETED
@@ -1,6 +0,0 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
3
-
4
- RSpec::Core::RakeTask.new(:spec)
5
-
6
- task :default => :spec
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "openapi_builder"
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(__FILE__)
data/bin/setup DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here
@@ -1,27 +0,0 @@
1
- lib = File.expand_path("../lib", __FILE__)
2
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require "openapi_builder/version"
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = "openapi_builder"
7
- spec.version = OpenapiBuilder::VERSION
8
- spec.authors = ["Svyatoslav Kryukov"]
9
- spec.email = ["s.g.kryukov@yandex.ru"]
10
-
11
- spec.summary = "Simple OpenAPI specification builder inspired by https://github.com/Rebilly/RebillyAPI"
12
- spec.homepage = "https://github.com/llcmedsolutions/openapi_builder"
13
- spec.license = "MIT"
14
-
15
- # Specify which files should be added to the gem when it is released.
16
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
17
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
18
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
19
- end
20
- spec.bindir = "exe"
21
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
- spec.require_paths = ["lib"]
23
-
24
- spec.add_development_dependency "bundler", "~> 2.0"
25
- spec.add_development_dependency "rake", "~> 10.0"
26
- spec.add_development_dependency "rspec", "~> 3.0"
27
- end