vcr 1.5.0 → 1.5.1
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.
- data/CHANGELOG.md +9 -1
- data/Gemfile.lock +1 -1
- data/Rakefile +4 -1
- data/lib/vcr/structs.rb +8 -1
- data/lib/vcr/version.rb +1 -1
- data/script/FullBuildRakeFile +35 -7
- data/spec/vcr/structs_spec.rb +14 -0
- metadata +4 -4
data/CHANGELOG.md
CHANGED
@@ -2,7 +2,15 @@
|
|
2
2
|
|
3
3
|
## In git
|
4
4
|
|
5
|
-
[Full Changelog](http://github.com/myronmarston/vcr/compare/v1.5.
|
5
|
+
[Full Changelog](http://github.com/myronmarston/vcr/compare/v1.5.1...master)
|
6
|
+
|
7
|
+
## 1.5.1 (January 12, 2011)
|
8
|
+
|
9
|
+
[Full Changelog](http://github.com/myronmarston/vcr/compare/v1.5.0...v1.5.1)
|
10
|
+
|
11
|
+
* Fix response and request serialization so that the headers are raw
|
12
|
+
strings. This fixes intermittent YAML seg faults for paperclip
|
13
|
+
uploads to S3. But reported by [Rob Slifka](https://github.com/rslifka).
|
6
14
|
|
7
15
|
## 1.5.0 (January 12, 2011)
|
8
16
|
|
data/Gemfile.lock
CHANGED
data/Rakefile
CHANGED
@@ -5,7 +5,10 @@ Bundler::GemHelper.install_tasks
|
|
5
5
|
require 'rake'
|
6
6
|
require "rspec/core/rake_task"
|
7
7
|
|
8
|
-
RSpec::Core::RakeTask.new(:spec)
|
8
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
9
|
+
t.verbose = false
|
10
|
+
t.rspec_opts = %w[--format progress] if ENV['FULL_BUILD']
|
11
|
+
end
|
9
12
|
|
10
13
|
desc "Run all examples using rcov"
|
11
14
|
RSpec::Core::RakeTask.new :rcov => :cleanup_rcov_files do |t|
|
data/lib/vcr/structs.rb
CHANGED
@@ -61,7 +61,14 @@ module VCR
|
|
61
61
|
important_vals = important_header_values(k, val_array)
|
62
62
|
next unless important_vals.size > 0
|
63
63
|
|
64
|
-
|
64
|
+
# Ensure the values are raw strings.
|
65
|
+
# Apparently for Paperclip uploads to S3, headers
|
66
|
+
# get serialized with some extra stuff which leads
|
67
|
+
# to a seg fault. See this issue for more info:
|
68
|
+
# https://github.com/myronmarston/vcr/issues#issue/39
|
69
|
+
string_vals = important_vals.map { |v| String.new(v) }
|
70
|
+
|
71
|
+
new_headers[k] = string_vals
|
65
72
|
end if headers
|
66
73
|
|
67
74
|
self.headers = new_headers.empty? ? nil : new_headers
|
data/lib/vcr/version.rb
CHANGED
data/script/FullBuildRakeFile
CHANGED
@@ -1,19 +1,46 @@
|
|
1
1
|
# this is in a separate rakefile because our main one depends on the bundled gems
|
2
2
|
# already being installed. This must be able to run w/o bundled gems installed.
|
3
3
|
|
4
|
+
def rake(command = "")
|
5
|
+
sh "rake #{command} FULL_BUILD=true"
|
6
|
+
end
|
7
|
+
|
4
8
|
desc "Run a full build: install necessary gems with bundler, runs specs, run cukes"
|
5
|
-
task :build => :
|
6
|
-
|
7
|
-
|
9
|
+
task :build => :bundle_install do
|
10
|
+
rake
|
11
|
+
end
|
12
|
+
|
13
|
+
desc "Install necessary gems with bundler and runs specs"
|
14
|
+
task :spec => :bundle_install do
|
15
|
+
rake "spec"
|
16
|
+
end
|
17
|
+
|
18
|
+
desc "Install necessary gems with bundler and runs cukes"
|
19
|
+
task :cucumber => :bundle_install do
|
20
|
+
rake "cucumber"
|
21
|
+
end
|
22
|
+
|
23
|
+
desc "Prints description of current ruby interpreter"
|
24
|
+
task :print_ruby_description do
|
25
|
+
description = if defined?(RUBY_DESCRIPTION)
|
26
|
+
RUBY_DESCRIPTION
|
27
|
+
else
|
28
|
+
# RUBY_DESCRIPTION is undefined on 1.8.6
|
29
|
+
"ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE} patchlevel #{RUBY_PATCHLEVEL}) [#{RUBY_PLATFORM}]"
|
30
|
+
end
|
31
|
+
|
32
|
+
puts
|
33
|
+
puts "=" * 80
|
34
|
+
puts "Using #{description}"
|
35
|
+
puts "=" * 80
|
36
|
+
puts
|
8
37
|
end
|
9
38
|
|
10
|
-
|
11
|
-
task :spec => :ensure_bundler_installed do
|
39
|
+
task :bundle_install => :ensure_bundler_installed do
|
12
40
|
sh "bundle install"
|
13
|
-
sh "rake spec"
|
14
41
|
end
|
15
42
|
|
16
|
-
task :ensure_bundler_installed do
|
43
|
+
task :ensure_bundler_installed => :print_ruby_description do
|
17
44
|
installed = begin
|
18
45
|
require 'rubygems'
|
19
46
|
require 'bundler'
|
@@ -26,3 +53,4 @@ task :ensure_bundler_installed do
|
|
26
53
|
sh "gem install bundler"
|
27
54
|
end
|
28
55
|
end
|
56
|
+
|
data/spec/vcr/structs_spec.rb
CHANGED
@@ -23,6 +23,20 @@ shared_examples_for "a header normalizer" do
|
|
23
23
|
it 'sets empty hash header to nil' do
|
24
24
|
with_headers({}).headers.should be_nil
|
25
25
|
end
|
26
|
+
|
27
|
+
it 'ensures header keys are serialized to yaml as raw strings' do
|
28
|
+
key = 'my-key'
|
29
|
+
key.instance_variable_set(:@foo, 7)
|
30
|
+
instance = with_headers(key => ['value1'])
|
31
|
+
instance.headers.to_yaml.should == { 'my-key' => ['value1'] }.to_yaml
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'ensures header values are serialized to yaml as raw strings' do
|
35
|
+
value = 'my-value'
|
36
|
+
value.instance_variable_set(:@foo, 7)
|
37
|
+
instance = with_headers('my-key' => [value])
|
38
|
+
instance.headers.to_yaml.should == { 'my-key' => ['my-value'] }.to_yaml
|
39
|
+
end
|
26
40
|
end
|
27
41
|
|
28
42
|
shared_examples_for "a body normalizer" do
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vcr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 1
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 5
|
9
|
-
-
|
10
|
-
version: 1.5.
|
9
|
+
- 1
|
10
|
+
version: 1.5.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Myron Marston
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-01-
|
18
|
+
date: 2011-01-21 00:00:00 -08:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|