reqres_rspec 0.0.25 → 0.0.26

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: ece5a9cd5765fb189266e6ed1105ec3c0e5bbca2
4
- data.tar.gz: 2b4f4d9e313f13280311b76f29b774280f99d8ec
3
+ metadata.gz: 4c6ca4e4259bb1d65278581ef0bd30fd584c5f30
4
+ data.tar.gz: 1fe08d50de503b97bdd9a7307f95f53ba6f9f69e
5
5
  SHA512:
6
- metadata.gz: f683c76e4d1031a829ef9b311cd67918a79fd939f7e2b8c570b5e83bddca8c67bef72c85203d3391e73bfc23d25abd567b68aa7179b62ecf2533c08a51b2a1ed
7
- data.tar.gz: 8bbdd2ae0d4add46eb439ee737a1b119dcaad7b826a1277d3fbad57225a802c05b87e7fdd5928f79a283a16452ec575007df72ae3ea46e887c1d7266e874d881
6
+ metadata.gz: b0b91d0c7fcc0f6bf080e8447a490e19699c829a6d1f304dbccf21da96a6a33c217dabaf180c51df90775bcb6acc20aeb98cf07f5932e15e497294d2b73135d7
7
+ data.tar.gz: 07017e0e97178ad186755dded165667437783c2f8955f911b5f739746b0ef246b974358822d0c841973491eebd66e15bef368dc81d78161a811d3f6debbdc59d
@@ -31,6 +31,8 @@ module ReqresRspec
31
31
  # everything that match items from this list will be stripped
32
32
  EXCLUDE_REQUEST_HEADER_PATTERNS = %w[
33
33
  rack.
34
+ sinatra.commonlogger
35
+ sinatra.route
34
36
  ROUTES_
35
37
  action_dispatch
36
38
  action_controller.
@@ -96,7 +98,7 @@ module ReqresRspec
96
98
  content_length: request.content_length,
97
99
  content_type: request.content_type,
98
100
  headers: read_request_headers(request),
99
- accept: request.accept
101
+ accept: (request.accept rescue nil)
100
102
  },
101
103
  response: {
102
104
  code: response.status,
@@ -142,8 +144,11 @@ module ReqresRspec
142
144
  #
143
145
  def get_symbolized_path(request)
144
146
  request_path = request.path
147
+ request_params = request.env['action_dispatch.request.parameters'] ||
148
+ request.env['rack.request.form_hash'] ||
149
+ request.env['rack.request.query_hash']
145
150
 
146
- request.env['action_dispatch.request.parameters'].
151
+ request_params.
147
152
  reject { |param| %w[controller action].include? param }.
148
153
  each do |key, value|
149
154
  if value.is_a? String
@@ -160,7 +165,7 @@ module ReqresRspec
160
165
  # returns action comments taken from controller file
161
166
  # example TODO
162
167
  def get_action_comments(controller, action)
163
- lines = File.readlines(File.join(Rails.root, 'app', 'controllers', "#{controller}_controller.rb"))
168
+ lines = File.readlines(File.join(ENV['REQRES_RSPEC_ROOT'], 'app', 'controllers', "#{controller}_controller.rb"))
164
169
 
165
170
  action_line = nil
166
171
  lines.each_with_index do |line, index|
@@ -6,8 +6,8 @@ module ReqresRspec
6
6
  def generate
7
7
  # http://www.princexml.com/download/
8
8
  pdf_tool_path = 'prince'
9
- html_docs_root = File.join(Rails.root, 'doc')
10
- pdf_doc_path = File.join(Rails.root, 'doc', "rspec_doc_#{Time.now.strftime("%d-%h-%Y_%H-%M")}.pdf")
9
+ html_docs_root = File.join(ENV['REQRES_RSPEC_ROOT'], 'doc')
10
+ pdf_doc_path = File.join(ENV['REQRES_RSPEC_ROOT'], 'doc', "rspec_doc_#{Time.now.strftime("%d-%h-%Y_%H-%M")}.pdf")
11
11
 
12
12
  if `which #{pdf_tool_path}`.size > 0
13
13
  files = Dir["#{html_docs_root}/rspec_doc_*.html"]
@@ -26,4 +26,4 @@ module ReqresRspec
26
26
  end
27
27
  end
28
28
  end
29
- end
29
+ end
@@ -1,3 +1,3 @@
1
1
  module ReqresRspec
2
- VERSION = '0.0.25'
2
+ VERSION = '0.0.26'
3
3
  end
@@ -21,7 +21,7 @@ module ReqresRspec
21
21
 
22
22
  # recreates /doc dir if it does not exist
23
23
  def recreate_doc_dir
24
- doc_dir = File.join(Rails.root, 'doc')
24
+ doc_dir = File.join(ENV['REQRES_RSPEC_ROOT'], 'doc')
25
25
  unless Dir.exist?(doc_dir)
26
26
  Dir.mkdir(doc_dir)
27
27
  puts "#{doc_dir} was recreated"
@@ -31,9 +31,9 @@ module ReqresRspec
31
31
  # deletes previous version of HTML docs
32
32
  # TODO: more info
33
33
  def cleanup
34
- FileUtils.rm_rf(Dir.glob("#{Rails.root}/doc/rspec_doc_*.html"), secure: true)
35
- FileUtils.rm_rf(Dir.glob("#{Rails.root}/doc/index.html"), secure: true)
36
- FileUtils.rm_rf(Dir.glob("#{Rails.root}/doc/panel.html"), secure: true)
34
+ FileUtils.rm_rf(Dir.glob("#{ENV['REQRES_RSPEC_ROOT']}/doc/rspec_doc_*.html"), secure: true)
35
+ FileUtils.rm_rf(Dir.glob("#{ENV['REQRES_RSPEC_ROOT']}/doc/index.html"), secure: true)
36
+ FileUtils.rm_rf(Dir.glob("#{ENV['REQRES_RSPEC_ROOT']}/doc/panel.html"), secure: true)
37
37
  end
38
38
 
39
39
  # generates contents of HTML docs
@@ -42,7 +42,7 @@ module ReqresRspec
42
42
  tpl_path = File.join(File.dirname(__FILE__), 'templates', 'header.erb')
43
43
  rendered_doc = ERB.new(File.open(tpl_path).read).result(binding)
44
44
 
45
- path = File.join(Rails.root, 'doc', 'rspec_doc_00000.html')
45
+ path = File.join(ENV['REQRES_RSPEC_ROOT'], 'doc', 'rspec_doc_00000.html')
46
46
  file = File.open(path, 'w')
47
47
  file.write(rendered_doc)
48
48
  file.close
@@ -60,7 +60,7 @@ module ReqresRspec
60
60
 
61
61
  rendered_doc = ERB.new(File.open(tpl_path).read).result(binding)
62
62
 
63
- path = File.join(Rails.root, 'doc', "rspec_doc_#{@index.to_s.rjust(5, '0') }.html")
63
+ path = File.join(ENV['REQRES_RSPEC_ROOT'], 'doc', "rspec_doc_#{@index.to_s.rjust(5, '0') }.html")
64
64
  file = File.open(path, 'w')
65
65
  file.write(rendered_doc)
66
66
  file.close
@@ -70,7 +70,7 @@ module ReqresRspec
70
70
 
71
71
  # creates an index file with iframes if does not exists
72
72
  def append_index
73
- index_file = File.join(Rails.root, 'doc', 'index.html')
73
+ index_file = File.join(ENV['REQRES_RSPEC_ROOT'], 'doc', 'index.html')
74
74
  unless File.exists?(index_file)
75
75
  tpl_path = File.join(File.dirname(__FILE__), 'templates', 'index.erb')
76
76
  rendered_doc = ERB.new(File.open(tpl_path).read).result(binding)
@@ -79,7 +79,7 @@ module ReqresRspec
79
79
  end
80
80
 
81
81
  def append_panel
82
- index_file = File.join(Rails.root, 'doc', 'panel.html')
82
+ index_file = File.join(ENV['REQRES_RSPEC_ROOT'], 'doc', 'panel.html')
83
83
  unless File.exists?(index_file)
84
84
  tpl_path = File.join(File.dirname(__FILE__), 'templates', 'panel.erb')
85
85
  rendered_doc = ERB.new(File.open(tpl_path).read).result(binding)
@@ -1,6 +1,6 @@
1
1
  <html>
2
2
  <head>
3
- <title><%= Rails.application.class.to_s.sub('::Application', '') %> API Documentation</title>
3
+ <title><%= ENV['REQRES_RSPEC_APP'] %> API Documentation</title>
4
4
  <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
5
5
  <link href='http://fonts.googleapis.com/css?family=Droid+Sans+Mono' rel='stylesheet' type='text/css'>
6
6
  <style>
@@ -58,7 +58,7 @@
58
58
  </head>
59
59
  <body>
60
60
  <div class="container">
61
- <h1><%= Rails.application.class.to_s.sub('::Application', '') %> API Documentation</h1>
61
+ <h1><%= ENV['REQRES_RSPEC_APP'] %> API Documentation</h1>
62
62
  <p>Generated <%= Time.now.strftime('%d %B %Y at %H:%m:%S')%> with <a href="https://github.com/reqres-api/reqres_rspec">reqres_rspec</a></p>
63
63
  <ul>
64
64
  <% @records.each_with_index do |record, index| %>
@@ -1,7 +1,7 @@
1
1
  <!DOCTYPE html>
2
2
  <html>
3
3
  <head>
4
- <title><%= Rails.application.class.to_s.sub('::Application', '') %> API Documentation</title>
4
+ <title><%= ENV['REQRES_RSPEC_APP'] %> API Documentation</title>
5
5
  <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
6
6
  <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
7
7
  <link href='http://fonts.googleapis.com/css?family=Droid+Sans+Mono' rel='stylesheet' type='text/css'>
@@ -1,7 +1,7 @@
1
1
  <!DOCTYPE html>
2
2
  <html>
3
3
  <head>
4
- <title><%= Rails.application.class.to_s.sub('::Application', '') %> API Documentation</title>
4
+ <title><%= ENV['REQRES_RSPEC_APP'] %> API Documentation</title>
5
5
  <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
6
6
  <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
7
7
  <link href='http://fonts.googleapis.com/css?family=Droid+Sans+Mono' rel='stylesheet' type='text/css'>
@@ -86,7 +86,7 @@
86
86
  </head>
87
87
  <body>
88
88
  <h1><a href="rspec_doc_00000.html" target="specs">
89
- <%= Rails.application.class.to_s.sub('::Application', '') %> API
89
+ <%= ENV['REQRES_RSPEC_APP'] %> API
90
90
  </a></h1>
91
91
  <% @records.group_by{|h| h[:group]}.each do |group, items| %>
92
92
  <h2><%= group %></h2>
@@ -1,6 +1,6 @@
1
1
  <html>
2
2
  <head>
3
- <title><%= Rails.application.class.to_s.sub('::Application', '') %> API Documentation</title>
3
+ <title><%= ENV['REQRES_RSPEC_APP'] %> API Documentation</title>
4
4
  <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
5
5
  <link href='http://fonts.googleapis.com/css?family=Droid+Sans+Mono' rel='stylesheet' type='text/css'>
6
6
  <style>
@@ -139,12 +139,12 @@
139
139
  margin: 0;
140
140
  padding: 0 4px;
141
141
  }
142
- ol li:first-child{
142
+ ol li:first-child {
143
143
  padding-top: 5px;
144
- }
145
- ol li:last-child{
144
+ }
145
+ ol li:last-child {
146
146
  padding-bottom: 5px;
147
- }
147
+ }
148
148
  </style>
149
149
  </head>
150
150
  <body>
@@ -155,7 +155,7 @@
155
155
  </h3>
156
156
 
157
157
  <p>
158
- <%= @record[:description].gsub("\n", '<br>'.html_safe) %>
158
+ <%= @record[:description].gsub("\n", ('<br>'.respond_to?(:html_safe) && '<br>'.html_safe) || '<br>') %>
159
159
  </p>
160
160
 
161
161
  <code><%= @record[:request][:method] %> <%= @record[:request_path] %></code>
@@ -179,7 +179,7 @@
179
179
  <% end %>
180
180
  </td>
181
181
  <td><%= param[:type] %></td>
182
- <td><%= param[:description].gsub("\n", '<br>'.html_safe) %></td>
182
+ <td><%= param[:description].gsub("\n", ('<br>'.respond_to?(:html_safe) && '<br>'.html_safe) || '<br>') %></td>
183
183
  </tr>
184
184
  <% end %>
185
185
  </table>
data/lib/reqres_rspec.rb CHANGED
@@ -10,10 +10,27 @@ if defined?(RSpec) && ENV['REQRES_RSPEC'] == '1'
10
10
  config.after(:each) do
11
11
  # TODO: remove boilerplate code
12
12
  # TODO: better options
13
- meta_data = self.class.example.metadata
14
- if meta_data[:type] == :request && !meta_data[:skip_reqres] == true
13
+
14
+ if defined?(Rails)
15
+ ENV['REQRES_RSPEC_ROOT'] = Rails.root.to_s
16
+ ENV['REQRES_RSPEC_APP'] = Rails.application.class.to_s.sub('::Application', '')
17
+
18
+ meta_data = self.class.example.metadata
19
+ if meta_data[:type] == :request && meta_data[:skip_reqres] == true
20
+ begin
21
+ collector.collect(self, self.request, self.response)
22
+ rescue NameError
23
+ raise $!
24
+ end
25
+ end
26
+ elsif defined?(Sinatra)
27
+ raise 'REQRES_RSPEC_ROOT is not defined' if ENV['REQRES_RSPEC_ROOT'].blank?
28
+ raise 'REQRES_RSPEC_APP is not defined' if ENV['REQRES_RSPEC_APP'].blank?
29
+
15
30
  begin
16
- collector.collect(self, self.request, self.response)
31
+ collector.collect(self, self.last_request, self.last_response)
32
+ rescue Rack::Test::Error
33
+ #
17
34
  rescue NameError
18
35
  raise $!
19
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reqres_rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.25
4
+ version: 0.0.26
5
5
  platform: ruby
6
6
  authors:
7
7
  - rilian
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-26 00:00:00.000000000 Z
11
+ date: 2014-09-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: coderay