rack-mock_json 0.0.1 → 0.0.2
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 +4 -4
- data/.gitignore +1 -0
- data/.rspec +1 -0
- data/README.md +9 -6
- data/Rakefile +4 -0
- data/circle.yml +21 -0
- data/example/rails-example/config/environments/development.rb +1 -1
- data/example/rails-example/config/mock_json.yml +5 -5
- data/lib/rack/mock_json.rb +1 -1
- data/lib/rack/mock_json/{request_handler.rb → middleware.rb} +5 -14
- data/lib/rack/mock_json/mock.rb +1 -1
- data/lib/rack/mock_json/version.rb +1 -1
- data/rack-mock_json.gemspec +3 -0
- metadata +47 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1c23dad1181a8b3596f04ec2926685da58f949ec
|
4
|
+
data.tar.gz: e079e442284e3d1880de1ec08ea6c532147e0a95
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d1230e746bbdffd32b8b56addd990c91c63ba737aaaa0c3db28651e10120973859db06a4ed965c86ca7010d54dba0a0cba662540b386caface171ae171581618
|
7
|
+
data.tar.gz: d7c6c31251d3a26f561e7778e38a60f0bcf8e5e06cefa4b9bd41574979260611af15118ffd8fe4657a6b57ce74ea1a348bc269e4859f8ec7e05ef8cc0668da8e
|
data/.gitignore
CHANGED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color -f d
|
data/README.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
rack-mock_json
|
2
2
|
====================
|
3
|
+
[](http://badge.fury.io/rb/rack-mock_json)
|
4
|
+
|
5
|
+
|
3
6
|
|
4
7
|
## Overview
|
5
8
|
`rack-mock_json` is for any request in the rack layer, returns any json response(Content-Type: application/json) and http status.
|
@@ -25,7 +28,7 @@ gem 'rack-mock_json'
|
|
25
28
|
```ruby
|
26
29
|
Rails.application.configure do
|
27
30
|
# ...
|
28
|
-
config.middleware.use Rack::MockJson::
|
31
|
+
config.middleware.use Rack::MockJson::Middleware, config_file_path: "#{config.root}/config/mock_json.yml"
|
29
32
|
end
|
30
33
|
|
31
34
|
```
|
@@ -35,11 +38,11 @@ end
|
|
35
38
|
### Config
|
36
39
|
|
37
40
|
```yaml
|
38
|
-
-
|
39
|
-
|
40
|
-
-
|
41
|
-
|
42
|
-
|
41
|
+
- request_path: 'GET /hoge/.*/foo'
|
42
|
+
content: '{ "hoge": "foo", "bar" : "fuga" }'
|
43
|
+
- request_path: 'POST /user'
|
44
|
+
status: 201
|
45
|
+
content: '{ "name": "taro", "age" : 17 }'
|
43
46
|
```
|
44
47
|
|
45
48
|
[Examples For more information, click here](example/rails-example/config/mock_json.yml)
|
data/Rakefile
CHANGED
data/circle.yml
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
machine:
|
2
|
+
timezone:
|
3
|
+
Asia/Tokyo
|
4
|
+
|
5
|
+
ruby:
|
6
|
+
version:
|
7
|
+
2.2.3
|
8
|
+
|
9
|
+
dependencies:
|
10
|
+
cache_directories:
|
11
|
+
- "vendor/bundle"
|
12
|
+
|
13
|
+
pre:
|
14
|
+
- gem install bundler --pre
|
15
|
+
|
16
|
+
override:
|
17
|
+
- bundle install -j4 --path vendor/bundle
|
18
|
+
|
19
|
+
test:
|
20
|
+
override:
|
21
|
+
- bundle exec rake spec
|
@@ -39,5 +39,5 @@ Rails.application.configure do
|
|
39
39
|
# Raises error for missing translations
|
40
40
|
# config.action_view.raise_on_missing_translations = true
|
41
41
|
|
42
|
-
config.middleware.use Rack::MockJson::
|
42
|
+
config.middleware.use Rack::MockJson::Middleware, config_file_path: "#{config.root}/config/mock_json.yml"
|
43
43
|
end
|
@@ -1,5 +1,5 @@
|
|
1
|
-
-
|
2
|
-
|
3
|
-
-
|
4
|
-
|
5
|
-
|
1
|
+
- request_path: 'GET /hoge/.*/foo'
|
2
|
+
content: '{ "hoge": "foo", "bar" : "fuga" }'
|
3
|
+
- request_path: 'POST /user'
|
4
|
+
status: 201
|
5
|
+
content: '{ "name": "taro", "age" : 17 }'
|
data/lib/rack/mock_json.rb
CHANGED
@@ -1,20 +1,19 @@
|
|
1
1
|
module Rack
|
2
2
|
module MockJson
|
3
|
-
class
|
3
|
+
class Middleware
|
4
4
|
def initialize(app, config_file_path: nil)
|
5
5
|
@app = app
|
6
6
|
@mock = Rack::MockJson::Mock.new(config_file_path)
|
7
7
|
end
|
8
8
|
|
9
9
|
def call(env)
|
10
|
-
|
11
|
-
|
10
|
+
@request = Rack::Request.new(env)
|
11
|
+
mock_element = @mock.mock_element(request_path)
|
12
12
|
return @app.call(env) if mock_element.nil?
|
13
13
|
|
14
14
|
[
|
15
15
|
mock_element.status,
|
16
16
|
{
|
17
|
-
|
18
17
|
"Content-Type" => "application/json",
|
19
18
|
"Content-Length" => mock_element.content.bytesize.to_s,
|
20
19
|
"X-XSS-Protection" => "1; mode=block",
|
@@ -27,16 +26,8 @@ module Rack
|
|
27
26
|
|
28
27
|
private
|
29
28
|
|
30
|
-
def request_path
|
31
|
-
"#{request_method
|
32
|
-
end
|
33
|
-
|
34
|
-
def path_info(env)
|
35
|
-
env["PATH_INFO"]
|
36
|
-
end
|
37
|
-
|
38
|
-
def request_method(env)
|
39
|
-
env["REQUEST_METHOD"]
|
29
|
+
def request_path
|
30
|
+
"#{@request.request_method} #{@request.path_info}"
|
40
31
|
end
|
41
32
|
end
|
42
33
|
end
|
data/lib/rack/mock_json/mock.rb
CHANGED
@@ -6,7 +6,7 @@ module Rack
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def mock_element(path)
|
9
|
-
element = @config.find { |e| path.match(/#{e[
|
9
|
+
element = @config.find { |e| path.match(/#{e["request_path"]}/).present? }
|
10
10
|
return nil if element.blank?
|
11
11
|
|
12
12
|
element = Hashie::Mash.new(element)
|
data/rack-mock_json.gemspec
CHANGED
@@ -24,4 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
|
25
25
|
spec.add_development_dependency "bundler", "~> 1.10"
|
26
26
|
spec.add_development_dependency "rake", "~> 10.0"
|
27
|
+
spec.add_development_dependency "rspec", "3.3.0"
|
28
|
+
spec.add_development_dependency "rack-test"
|
29
|
+
spec.add_development_dependency "json_spec"
|
27
30
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-mock_json
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- fukuiretu
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -66,6 +66,48 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '10.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 3.3.0
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 3.3.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rack-test
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: json_spec
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
69
111
|
description: 'any request in the rack layer, returns any json response(Content-Type:
|
70
112
|
application/json) and http status.'
|
71
113
|
email:
|
@@ -75,6 +117,7 @@ extensions: []
|
|
75
117
|
extra_rdoc_files: []
|
76
118
|
files:
|
77
119
|
- ".gitignore"
|
120
|
+
- ".rspec"
|
78
121
|
- CODE_OF_CONDUCT.md
|
79
122
|
- Gemfile
|
80
123
|
- LICENSE.txt
|
@@ -82,6 +125,7 @@ files:
|
|
82
125
|
- Rakefile
|
83
126
|
- bin/console
|
84
127
|
- bin/setup
|
128
|
+
- circle.yml
|
85
129
|
- example/rails-example/.gitignore
|
86
130
|
- example/rails-example/Gemfile
|
87
131
|
- example/rails-example/README.rdoc
|
@@ -140,8 +184,8 @@ files:
|
|
140
184
|
- example/rails-example/vendor/assets/stylesheets/.keep
|
141
185
|
- lib/rack-mock_json.rb
|
142
186
|
- lib/rack/mock_json.rb
|
187
|
+
- lib/rack/mock_json/middleware.rb
|
143
188
|
- lib/rack/mock_json/mock.rb
|
144
|
-
- lib/rack/mock_json/request_handler.rb
|
145
189
|
- lib/rack/mock_json/version.rb
|
146
190
|
- rack-mock_json.gemspec
|
147
191
|
homepage: https://github.com/fukuiretu/rack-mock_json
|