openapi_builder 0.1.0 → 0.2.0

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
  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