rack-mock_json 0.0.1 → 0.0.2

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
  SHA1:
3
- metadata.gz: a3acdb8bd831b25c12a19794312572a86a08000a
4
- data.tar.gz: 0676acd9b1ecc26290a647d1cddcdaf7733b84ed
3
+ metadata.gz: 1c23dad1181a8b3596f04ec2926685da58f949ec
4
+ data.tar.gz: e079e442284e3d1880de1ec08ea6c532147e0a95
5
5
  SHA512:
6
- metadata.gz: b71d2fb3c36c416b3556b59073f4c066fc5c163325382375db1a25f8654a19c8986e4fd0c8b715e38eed5ac22601217e37022e22c1a798fb337c092b79c02d75
7
- data.tar.gz: 90637fbf141d5b930d89a71bb0053daf874bf30e8c56b4cd745c78333a9bce277282f3395165bf0239a3ee754297918b434b8c5303174b4fcd55e4e0315a019d
6
+ metadata.gz: d1230e746bbdffd32b8b56addd990c91c63ba737aaaa0c3db28651e10120973859db06a4ed965c86ca7010d54dba0a0cba662540b386caface171ae171581618
7
+ data.tar.gz: d7c6c31251d3a26f561e7778e38a60f0bcf8e5e06cefa4b9bd41574979260611af15118ffd8fe4657a6b57ce74ea1a348bc269e4859f8ec7e05ef8cc0668da8e
data/.gitignore CHANGED
@@ -7,3 +7,4 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ /vendor/bundle
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
+ [![Gem Version](https://badge.fury.io/rb/rack-mock_json.svg)](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::RequestHandler, config_file_path: "#{config.root}/config/mock_json.yml"
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
- - :request_path: 'GET /hoge/.*/foo'
39
- :content: '{ "hoge": "foo", "bar" : "fuga" }'
40
- - :request_path: 'POST /user'
41
- :status: 201
42
- :content: '{ "name": "taro", "age" : 17 }'
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
@@ -1 +1,5 @@
1
1
  require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new("spec")
5
+ task :default => :spec
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::RequestHandler, config_file_path: "#{config.root}/config/mock_json.yml"
42
+ config.middleware.use Rack::MockJson::Middleware, config_file_path: "#{config.root}/config/mock_json.yml"
43
43
  end
@@ -1,5 +1,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 }'
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 }'
@@ -4,6 +4,6 @@ require "active_support/core_ext"
4
4
  require "yaml"
5
5
  require "hashie"
6
6
 
7
- require "rack/mock_json/request_handler"
7
+ require "rack/mock_json/middleware"
8
8
  require "rack/mock_json/mock"
9
9
  require "rack/mock_json/version"
@@ -1,20 +1,19 @@
1
1
  module Rack
2
2
  module MockJson
3
- class RequestHandler
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
- mock_element = @mock.mock_element(request_path(env))
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(env)
31
- "#{request_method(env)} #{path_info(env)}"
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
@@ -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[:request_path]}/).present? }
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)
@@ -1,5 +1,5 @@
1
1
  module Rack
2
2
  module MockJson
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
  end
5
5
  end
@@ -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.1
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-28 00:00:00.000000000 Z
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