reqres 0.0.2 → 0.0.3

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: dcbfdc4c9b951d7709d53447a2fdcfe5c59addf7
4
+ data.tar.gz: 59eb430301b10eb9d2bea0375bfef2ac1c9a9259
5
+ SHA512:
6
+ metadata.gz: dc4cd71a62c773116690aff242895d36b1d7552f94665e0a80100ed2cf56a58d98da5235831ea753866734215bf619769ccf036a5ca175c7e33ae5b8d06c6a84
7
+ data.tar.gz: fa8bbb3e7eb178c1d74d9ca997093612e11786fa3c81c8f09a4edaf9ba060b8297cf308c33ac82e4257f10248f206f21b01e1e1d6368243ed2c4732ecddca4b2
data/README.md CHANGED
@@ -1,6 +1,10 @@
1
1
  # Reqres
2
2
 
3
- TODO: Write a gem description
3
+ Simple application for generating Request and Response YAML file from test.
4
+ Can be used for creating fake API with sinatra.
5
+ And for generating API documentation.
6
+
7
+ __Only works on Rails and MiniTest::Unit for now__
4
8
 
5
9
  ## Installation
6
10
 
@@ -15,11 +19,71 @@ And then execute:
15
19
  Or install it yourself as:
16
20
 
17
21
  $ gem install reqres
22
+
23
+ Include `Reqres::Generator` module to `ActiveSupport::TestCase` in `test_helper.rb`:
24
+
25
+ ```ruby
26
+ require 'reqres/generator'
27
+
28
+ class ActiveSupport::TestCase
29
+ include Reqres::Generator
30
+ ...
31
+ ```
18
32
 
19
33
  ## Usage
20
34
 
21
- TODO: Write usage instructions here
35
+ For generating file run:
36
+
37
+ rake reqres:yaml
38
+
39
+ By default for generating is used integration test but you can set a pattern
40
+ in initializers:
41
+
42
+ ```ruby
43
+ # initializers/reqres.rb
44
+ Reqres.setup do |config|
45
+ config.test_files_pattern = "test/acceptance/**/*_test.rb"
46
+ end
47
+ ```
48
+
49
+ Generated file saves to current dir, you can set this in settings:
50
+
51
+ ```ruby
52
+ config.file_name = File.join(Rails.root, "doc", "reqres.yml")
53
+ ```
54
+
55
+ You can change default request header extraction, which is
56
+ `%w{HTTP_AUTHORIZATION HTTP_ACCEPT CONTENT_TYPE}`:
57
+
58
+ ```ruby
59
+ config.request_headers = %w{HTTP_AUTHORIZATION CONTENT_TYPE}
60
+ ```
22
61
 
62
+ Generated file will have structure:
63
+ ```yaml
64
+ ManageFooTest:
65
+ test_creates_foo:
66
+ request:
67
+ url: http://www.example.com/v1/foos
68
+ full_path: /v1/foos
69
+ params:
70
+ name: Bar
71
+ description: FooBar
72
+ action: create
73
+ controller: v1/foos
74
+ method: POST
75
+ body: '{"name":"Bar","description":"FooBar"}'
76
+ headers:
77
+ http_authorization: Token token="14d75ec70594d026de22f02502e74be9"
78
+ content_type: application/json
79
+ accept: application/json
80
+ response:
81
+ code: '201'
82
+ body: '{"id":974435878,"name":"Bar","description":"FooBar"}'
83
+ test_getting_foo:
84
+ request:
85
+ ....
86
+ ```
23
87
  ## Contributing
24
88
 
25
89
  1. Fork it
@@ -11,6 +11,10 @@ module Reqres
11
11
  mattr_accessor :test_files_pattern
12
12
  @@test_files_pattern = 'test/integration/**/*_test.rb'
13
13
 
14
+ # rake files pattern to run for generating yml file
15
+ mattr_accessor :request_headers
16
+ @@request_headers = %w{HTTP_AUTHORIZATION HTTP_ACCEPT CONTENT_TYPE}
17
+
14
18
  # Way to setup Reqres. Add file to initializers:
15
19
  # initializers/reqres.rb
16
20
  #
@@ -26,21 +26,30 @@ module Reqres
26
26
  "params" => request.params.to_hash,
27
27
  "method" => request.method,
28
28
  "body" => request.body.read,
29
- "headers" =>
30
- {
31
- "http_authorization" => request.headers["HTTP_AUTHORIZATION"],
32
- "content_type" => request.headers["CONTENT_TYPE"],
33
- 'accept' => request.headers["ACCEPT"]
34
- }
29
+ "headers" => request_headers
35
30
  },
36
31
  "response" => {
37
32
  "code" => response.code,
38
- "body" => response.body
33
+ "body" => response.body,
34
+ "headers" => response.headers
39
35
  }
40
36
  }
41
37
  }
42
38
  end
43
39
 
40
+ # request.headers is ActionDispatch::Http::Headers.
41
+ # It can't be serialized right to yaml
42
+ def request_headers
43
+ hdrs = Reqres.request_headers
44
+ request.headers.inject({}) do |memo,(k,v)|
45
+ if hdrs.include? k
46
+ memo.merge(k => v)
47
+ else
48
+ memo
49
+ end
50
+ end
51
+ end
52
+
44
53
  # collects data from all tests
45
54
  def collect
46
55
  if all_tests[self.class.name].nil?
@@ -1,3 +1,3 @@
1
1
  module Reqres
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reqres
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
5
- prerelease:
4
+ version: 0.0.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Anton Versal
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-10-17 00:00:00.000000000 Z
11
+ date: 2013-10-25 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bundler
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,17 +27,15 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  description: Request and Response YAML file generator from test.
@@ -65,27 +60,26 @@ files:
65
60
  homepage: https://github.com/antonversal/reqres
66
61
  licenses:
67
62
  - MIT
63
+ metadata: {}
68
64
  post_install_message:
69
65
  rdoc_options: []
70
66
  require_paths:
71
67
  - lib
72
68
  required_ruby_version: !ruby/object:Gem::Requirement
73
- none: false
74
69
  requirements:
75
- - - ! '>='
70
+ - - '>='
76
71
  - !ruby/object:Gem::Version
77
72
  version: '0'
78
73
  required_rubygems_version: !ruby/object:Gem::Requirement
79
- none: false
80
74
  requirements:
81
- - - ! '>='
75
+ - - '>='
82
76
  - !ruby/object:Gem::Version
83
77
  version: '0'
84
78
  requirements: []
85
79
  rubyforge_project:
86
- rubygems_version: 1.8.25
80
+ rubygems_version: 2.1.9
87
81
  signing_key:
88
- specification_version: 3
82
+ specification_version: 4
89
83
  summary: Request and Response YAML file generator from test. Can be used for creating
90
84
  fake API with sinatra. And for generating API documentation.
91
85
  test_files: []