mocmock 0.1.14

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 28a91337be590cfd78290ab6f44862a5b3883d7815c0728287d8e9d2b8d7ce78
4
+ data.tar.gz: 885691d9e9e641b0c1510f0f9217a38e7f95cb87bf7a97f94681dfbca211ac1b
5
+ SHA512:
6
+ metadata.gz: 31cd3a87c5a354b067d05c980abe7450bcd5d7ada4a28a4d17e302edd34b66937dc671a4228e66e4448314d5fad17d2b0c9ef3eff189dffcfdcaa7543036295c
7
+ data.tar.gz: 6a5d68e92ba87e010f9533015453427835704b3169c67ca4b96947ace68407115e0b260714810b515690ba420b3a90e9fdb6acdfefcc41705ad501f7ed3a49fd
data/.gitignore ADDED
@@ -0,0 +1,11 @@
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 ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ sudo: false
3
+ language: ruby
4
+ cache: bundler
5
+ rvm:
6
+ - 2.6.3
7
+ before_install: gem install bundler -v 2.0.2
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "https://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in mocmock.gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,35 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ mocmock (0.1.14)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ diff-lcs (1.3)
10
+ rake (13.0.1)
11
+ rspec (3.9.0)
12
+ rspec-core (~> 3.9.0)
13
+ rspec-expectations (~> 3.9.0)
14
+ rspec-mocks (~> 3.9.0)
15
+ rspec-core (3.9.1)
16
+ rspec-support (~> 3.9.1)
17
+ rspec-expectations (3.9.1)
18
+ diff-lcs (>= 1.2.0, < 2.0)
19
+ rspec-support (~> 3.9.0)
20
+ rspec-mocks (3.9.1)
21
+ diff-lcs (>= 1.2.0, < 2.0)
22
+ rspec-support (~> 3.9.0)
23
+ rspec-support (3.9.2)
24
+
25
+ PLATFORMS
26
+ ruby
27
+
28
+ DEPENDENCIES
29
+ bundler (~> 2.0)
30
+ mocmock!
31
+ rake (>= 12.3.3)
32
+ rspec (~> 3.0)
33
+
34
+ BUNDLED WITH
35
+ 2.0.2
data/README.md ADDED
@@ -0,0 +1,34 @@
1
+ # mocmock
2
+ ## Create Project
3
+
4
+ ```
5
+ $ mocmock new my-project
6
+ ```
7
+
8
+ ## Add Endpoints
9
+ 1. Edit config/routes.yml
10
+ ```
11
+ routes:
12
+ + users:
13
+ + - get
14
+ + - post
15
+ ```
16
+ 2. Run load command
17
+ ```
18
+ $ mocmock load
19
+ ```
20
+ Now created new json files for `/users`
21
+
22
+ 3. Edit these json files
23
+ ```
24
+ $ tree jsons
25
+ jsons
26
+ └── users
27
+ ├── get.json
28
+ └── patch.json
29
+ ```
30
+
31
+ ## Run MockServer
32
+ ```
33
+ $ ruby main.rb
34
+ ```
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "mocmock"
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 ADDED
@@ -0,0 +1,8 @@
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
data/exe/mocmock ADDED
@@ -0,0 +1,4 @@
1
+ #! /usr/bin/env ruby
2
+
3
+ require "mocmock"
4
+ MocMock.command ARGV
data/inventory/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
6
+
7
+ gem "sinatra"
8
+ gem "sinatra-contrib"
@@ -0,0 +1 @@
1
+ routes:
File without changes
@@ -0,0 +1,98 @@
1
+ require "yaml"
2
+
3
+ module MocMock
4
+ class Router
5
+ attr_reader :path_for_sinatra,
6
+ :path,
7
+ :http_method,
8
+ :json,
9
+ :req,
10
+ :res
11
+
12
+ HTTP_METHODS = %w(
13
+ get
14
+ post
15
+ patch
16
+ put
17
+ delete
18
+ head
19
+ options
20
+ trace
21
+ connect
22
+ ).freeze
23
+
24
+ class << self
25
+ def routes
26
+ route_file = "config/routes.yml"
27
+ unless File.exists? route_file
28
+ puts "Cannot file 'config/routes.yml'"
29
+ return
30
+ end
31
+
32
+ endpoints = YAML.load_file(route_file)
33
+
34
+ if endpoints["routes"].nil?
35
+ puts "routes need root key `routes`"
36
+ return []
37
+ end
38
+
39
+ valid_endpoints(endpoints)
40
+ end
41
+
42
+ def valid_endpoints(endpoints)
43
+ get = ->(path, hash){
44
+ hash.map do |k, v|
45
+ case v
46
+ when Hash
47
+ get.call("#{path}/#{k}", v)
48
+ when Array
49
+ { "#{path}/#{k}" => v }
50
+ end
51
+ end
52
+ }
53
+
54
+ items = get.call("", endpoints["routes"]).flatten
55
+
56
+ valid_endpoints = []
57
+ items.each do |item|
58
+ item.each do |endpoint, http_methods|
59
+ http_methods.each do |http_method|
60
+ route = new(endpoint, http_method)
61
+
62
+ if route.invalid_method?
63
+ puts "detacted invalid http_method `#{http_method}`"
64
+ next
65
+ end
66
+
67
+ valid_endpoints << route
68
+ end
69
+ end
70
+ end
71
+
72
+ valid_endpoints
73
+ end
74
+ end
75
+
76
+ def initialize(endpoint, http_method)
77
+ file = "jsons/#{endpoint}/#{http_method}.json"
78
+ json = File.open(file) { |f| JSON.load(f).to_h } if File.exists? file
79
+
80
+ @res= json&.dig("response").to_h
81
+ @req = json&.dig("request").to_h
82
+ @path = endpoint
83
+ @path_for_sinatra = endpoint.gsub(":id", "*")
84
+ @http_method = valid_method(http_method)
85
+ @invalid = @http_method.nil? || json.nil?
86
+ end
87
+
88
+ def invalid_method?
89
+ @http_method.nil?
90
+ end
91
+
92
+ private
93
+
94
+ def valid_method(method)
95
+ HTTP_METHODS.include?(method) ? method : nil
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,37 @@
1
+ module MocMock
2
+ class ViewHelper
3
+ def self.prettry_json(str)
4
+ nest = 0
5
+ lines = []
6
+ line = ""
7
+ nester = "&nbsp;" * 5
8
+
9
+ str.chars.each do |c|
10
+ if %w([ {).include? c
11
+ lines << line + c
12
+ nest += 1
13
+ line = nester * nest
14
+ elsif %w(] } ).include? c
15
+ lines << line if line.gsub(nester, "") != ""
16
+ nest -= 1
17
+ lines << nester * nest + c
18
+ line = nester * nest
19
+ elsif c == ","
20
+ if line.gsub(nester, "") == ""
21
+ lines << ","
22
+ else
23
+ lines << line + ","
24
+ end
25
+ line = nester * nest
26
+ else
27
+ c = " : " if c == ":"
28
+ line += c
29
+ end
30
+ end
31
+
32
+ result = lines * "<br>"
33
+
34
+ result.gsub("<br>,", ",")
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,2 @@
1
+ module MocMock
2
+ end
data/inventory/main.rb ADDED
@@ -0,0 +1,34 @@
1
+ require 'sinatra'
2
+ require 'sinatra/json'
3
+ require "sinatra/cors"
4
+
5
+ Dir[File.dirname(__FILE__) + '/lib/**/*'].each(&method(:require))
6
+
7
+ routes = MocMock::Router.routes
8
+
9
+ set :allow_origin, "*"
10
+ set :allow_methods, "GET,HEAD,POST,PATCH,DELETE"
11
+ set :allow_headers, "content-type,if-modified-since"
12
+ set :expose_headers, "location,link"
13
+
14
+ helpers do
15
+ def prettry_json(str)
16
+ MocMock::ViewHelper.prettry_json(str)
17
+ end
18
+ end
19
+
20
+ routes.each do |route|
21
+ eval <<~"EOS"
22
+ #{route.http_method} '#{route.path_for_sinatra}' do
23
+ content_type :json
24
+
25
+ json(#{route.res}, encoder: :to_json)
26
+ end
27
+ EOS
28
+ end
29
+
30
+ get '/' do
31
+ @routes = routes
32
+ erb :index
33
+ end
34
+
@@ -0,0 +1,59 @@
1
+ <html>
2
+ <head>
3
+ <meta charset="UTF-8">
4
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
5
+ <style type="text/css">
6
+ .accordion-wrapper {
7
+ width: 300px;
8
+ }
9
+
10
+ .accordion-wrapper h3 {
11
+ margin: 2px;
12
+ padding: 10px 0;
13
+ background-color: #096c47;
14
+ color: white;
15
+ text-align: center;
16
+ cursor: pointer;
17
+ }
18
+
19
+ .accordion-wrapper p {
20
+ margin-top: 10px;
21
+ padding: 0 10px;
22
+ }
23
+
24
+ .hide {
25
+ display: none;
26
+ }
27
+
28
+ .add {
29
+ display: block;
30
+ }
31
+ </style>
32
+ </head>
33
+ <body>
34
+
35
+ <h1>Responses</h1>
36
+ <% @routes.each do |r| %>
37
+ <div class="accordion-wrapper">
38
+ <h3>
39
+ <%= "#{r.http_method.upcase} /#{r.endpoint}" %>
40
+ </h3>
41
+ <p class="hide">
42
+ <%= r.req.to_json %>
43
+ </p>
44
+ </div>
45
+ <% end %>
46
+
47
+
48
+ <script>
49
+ let menu = document.getElementsByTagName('h3');
50
+ function show(){
51
+ let hideContent = this.nextElementSibling;
52
+ hideContent.classList.toggle('hide');
53
+ };
54
+ for(let i = 0; i < menu.length; i++){
55
+ menu[i].addEventListener('click', show)
56
+ }
57
+ </script>
58
+ </body>
59
+ </html>
@@ -0,0 +1,35 @@
1
+ module MocMock
2
+ module Commands
3
+ class Load
4
+
5
+ def self.exec(*args)
6
+
7
+ routes = MocMock::Router.routes
8
+ return if routes.nil?
9
+
10
+ routes.each do |route|
11
+ path = route.path
12
+ dir = "jsons/#{path}"
13
+ file = "#{dir}/#{route.http_method}.json"
14
+
15
+ next if File.exist? file
16
+
17
+ FileUtils.mkdir_p(dir)
18
+ FileUtils.touch(file)
19
+
20
+ json = <<~"EOS"
21
+ {
22
+ "response": {
23
+ },
24
+ "request": {
25
+ }
26
+ }
27
+ EOS
28
+
29
+ File.write(file, json, {mode: "a"})
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+
@@ -0,0 +1,61 @@
1
+ require 'net/http'
2
+ require 'uri'
3
+
4
+ module MocMock
5
+ module Commands
6
+ class New
7
+ BaseUrl = "https://raw.githubusercontent.com/ispec-inc/mocmock/master/inventory"
8
+ Directories = %w(
9
+ lib
10
+ lib/mocmock
11
+ config
12
+ jsons
13
+ views
14
+ )
15
+
16
+ Files = %w(
17
+ main.rb
18
+ Gemfile
19
+ lib/mocmock.rb
20
+ lib/mocmock/router.rb
21
+ lib/mocmock/view_helper.rb
22
+ config/routes.yml
23
+ views/index.erb
24
+ jsons/.gitkeep
25
+ )
26
+
27
+ class << self
28
+ def exec(*args)
29
+ dir = args[0]
30
+ if dir.nil?
31
+ puts_usage
32
+ return
33
+ end
34
+
35
+ Directories.each do |d|
36
+ FileUtils.mkdir_p("#{dir}/#{d}")
37
+ end
38
+
39
+ Files.each do |f|
40
+ uri = URI.parse "#{BaseUrl}/#{f}"
41
+ str = Net::HTTP.get_response(uri).body rescue nil
42
+
43
+ File.open("#{dir}/#{f}", "w"){ |file| file.puts str }
44
+ end
45
+
46
+ puts "Project is Created"
47
+ end
48
+
49
+ private
50
+
51
+ def puts_usage
52
+ puts "ERROR:"
53
+ puts " Give Project name"
54
+ puts
55
+ puts "USAGE:"
56
+ puts " mocmock new [PROJECT_NAME]"
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,15 @@
1
+ module MocMock
2
+ module Commands
3
+ class Usage
4
+ def self.exec(*args)
5
+ puts "New:"
6
+ puts " - Create new project"
7
+ puts " mocmock new [PROJECT_NAME]"
8
+ puts "Load:"
9
+ puts " - Load routings and create jsons"
10
+ puts " mocmock load"
11
+ end
12
+ end
13
+ end
14
+ end
15
+
@@ -0,0 +1,99 @@
1
+ require "yaml"
2
+
3
+ module MocMock
4
+ class Router
5
+ attr_reader :path_for_sinatra,
6
+ :path,
7
+ :http_method,
8
+ :json,
9
+ :req,
10
+ :res
11
+
12
+ HTTP_METHODS = %w(
13
+ get
14
+ post
15
+ patch
16
+ put
17
+ delete
18
+ head
19
+ options
20
+ trace
21
+ connect
22
+ ).freeze
23
+
24
+ class << self
25
+ def routes
26
+ route_file = "config/routes.yml"
27
+
28
+ unless File.exists? route_file
29
+ puts "Cannot find 'config/routes.yml'"
30
+ return
31
+ end
32
+
33
+ endpoints = YAML.load_file(route_file)
34
+
35
+ if endpoints["routes"].nil?
36
+ puts "yaml need root key `routes`"
37
+ return []
38
+ end
39
+
40
+ valid_endpoints(endpoints)
41
+ end
42
+
43
+ def valid_endpoints(endpoints)
44
+ get = ->(path, hash){
45
+ hash.map do |k, v|
46
+ case v
47
+ when Hash
48
+ get.call("#{path}/#{k}", v)
49
+ when Array
50
+ { "#{path}/#{k}" => v }
51
+ end
52
+ end
53
+ }
54
+
55
+ items = get.call("", endpoints["routes"]).flatten
56
+
57
+ valid_endpoints = []
58
+ items.each do |item|
59
+ item.each do |endpoint, http_methods|
60
+ http_methods.each do |http_method|
61
+ route = new(endpoint, http_method)
62
+
63
+ if route.invalid_method?
64
+ puts "detacted invalid http_method `#{http_method}`"
65
+ next
66
+ end
67
+
68
+ valid_endpoints << route
69
+ end
70
+ end
71
+ end
72
+
73
+ valid_endpoints
74
+ end
75
+ end
76
+
77
+ def initialize(endpoint, http_method)
78
+ file = "jsons/#{endpoint}/#{http_method}.json"
79
+ json = File.open(file) { |f| JSON.load(f).to_h } if File.exists? file
80
+
81
+ @res= json&.dig("response").to_h
82
+ @req = json&.dig("request").to_h
83
+ @path = endpoint
84
+ @path_for_sinatra = endpoint.gsub(":id", "*")
85
+ @http_method = valid_method(http_method)
86
+ @invalid = @http_method.nil? || json.nil?
87
+ end
88
+
89
+ def invalid_method?
90
+ @http_method.nil?
91
+ end
92
+
93
+ private
94
+
95
+ def valid_method(method)
96
+ HTTP_METHODS.include?(method) ? method : nil
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,3 @@
1
+ module MocMock
2
+ VERSION = "0.1.14"
3
+ end
data/lib/mocmock.rb ADDED
@@ -0,0 +1,44 @@
1
+ require "pathname"
2
+ require 'fileutils'
3
+
4
+ require_relative 'mocmock/commands/new'
5
+ require_relative 'mocmock/commands/usage'
6
+ require_relative 'mocmock/commands/load'
7
+
8
+ # Pathname.glob('./lib/mocmock/**/*.rb').each(&method(:require))
9
+
10
+ module MocMock
11
+ class Error < StandardError; end
12
+ COMMAND_LIST = %w(
13
+ new
14
+ load
15
+ )
16
+
17
+ class << self
18
+ def command(args)
19
+ command, *arg = args
20
+
21
+ is_valid = valid_command(command)
22
+ unless is_valid
23
+ MocMock::Commands::Usage.exec
24
+ return
25
+ end
26
+
27
+ klass = begin
28
+ case command
29
+ when "new" then MocMock::Commands::New
30
+ when "load" then MocMock::Commands::Load
31
+ else MocMock::Commands::Usage
32
+ end
33
+ end
34
+
35
+ klass.exec(*arg)
36
+ end
37
+
38
+ private
39
+
40
+ def valid_command(command)
41
+ COMMAND_LIST.include? command
42
+ end
43
+ end
44
+ end
data/mocmock.gemspec ADDED
@@ -0,0 +1,33 @@
1
+ lib = File.expand_path("lib", __dir__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require "mocmock/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "mocmock"
7
+ spec.version = MocMock::VERSION
8
+ spec.authors = ["Yuma Ishikawa"]
9
+ spec.email = ["yuma.fuu05@gmail.com"]
10
+
11
+ spec.summary = %q{Make mock server easily}
12
+ spec.description = %q{Make mock server easily}
13
+ spec.homepage = "https://github.com/ispec-inc/mocmock"
14
+
15
+ # spec.metadata["allowed_push_host"] = "https://github.com/ispec-inc/mocmock"
16
+
17
+ spec.metadata["homepage_uri"] = spec.homepage
18
+ spec.metadata["source_code_uri"] = "https://github.com/ispec-inc/mocmock"
19
+ spec.metadata["changelog_uri"] = "https://github.com/ispec-inc/mocmock"
20
+
21
+ # Specify which files should be added to the gem when it is released.
22
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
23
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
24
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
25
+ end
26
+ spec.bindir = "exe"
27
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
+ spec.require_paths = ["lib"]
29
+
30
+ spec.add_development_dependency "bundler", "~> 2.0"
31
+ spec.add_development_dependency "rake", ">= 12.3.3"
32
+ spec.add_development_dependency "rspec", "~> 3.0"
33
+ end
metadata ADDED
@@ -0,0 +1,113 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mocmock
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.14
5
+ platform: ruby
6
+ authors:
7
+ - Yuma Ishikawa
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2020-04-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 12.3.3
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 12.3.3
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ description: Make mock server easily
56
+ email:
57
+ - yuma.fuu05@gmail.com
58
+ executables:
59
+ - mocmock
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - ".gitignore"
64
+ - ".rspec"
65
+ - ".travis.yml"
66
+ - Gemfile
67
+ - Gemfile.lock
68
+ - README.md
69
+ - Rakefile
70
+ - bin/console
71
+ - bin/setup
72
+ - exe/mocmock
73
+ - inventory/Gemfile
74
+ - inventory/config/routes.yml
75
+ - inventory/jsons/.gitkeep
76
+ - inventory/lib/mocmock.rb
77
+ - inventory/lib/mocmock/router.rb
78
+ - inventory/lib/mocmock/view_helper.rb
79
+ - inventory/main.rb
80
+ - inventory/views/index.erb
81
+ - lib/mocmock.rb
82
+ - lib/mocmock/commands/load.rb
83
+ - lib/mocmock/commands/new.rb
84
+ - lib/mocmock/commands/usage.rb
85
+ - lib/mocmock/router.rb
86
+ - lib/mocmock/version.rb
87
+ - mocmock.gemspec
88
+ homepage: https://github.com/ispec-inc/mocmock
89
+ licenses: []
90
+ metadata:
91
+ homepage_uri: https://github.com/ispec-inc/mocmock
92
+ source_code_uri: https://github.com/ispec-inc/mocmock
93
+ changelog_uri: https://github.com/ispec-inc/mocmock
94
+ post_install_message:
95
+ rdoc_options: []
96
+ require_paths:
97
+ - lib
98
+ required_ruby_version: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ required_rubygems_version: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
108
+ requirements: []
109
+ rubygems_version: 3.0.3
110
+ signing_key:
111
+ specification_version: 4
112
+ summary: Make mock server easily
113
+ test_files: []