Commits

Michael Granger committed fe39f17

Update for Ruby 1.9.3, rvm, and hoe-deveiate.

  • Participants
  • Parent commits 71fe229

Comments (0)

Files changed (22)

.autotest

-#!/usr/bin/env ruby
-
-require 'autotest/restart'
-require_relative 'loadpath'
-
-Autotest.add_hook( :initialize ) do |at|
-	at.extra_files << "loadpath.rb"
-
-	# at.add_mapping( /dependency.rb/ ) do |f, _|
-	# 	at.files_matching( /test_.*rb$/ )
-	# end
-	# 
-	# %w(TestA TestB).each do |klass|
-	# 	at.extra_class_map[klass] = "test/test_misc.rb"
-	# end
-end
-
-Autotest.add_hook( :run_command ) do |at|
-	system "rake build"
-end
 ^misc/junk
 ^tags
 
+doc/
+^ChangeLog$
+--- 
+exclude: !ruby/regexp /tmp$|\.(hg|hoerc|DS_Store|rvm(rc|\.gems)|irbrc|pryrc|tm_.*)|(logs|docs|coverage|experiments|manual|plugins|misc|features|tmp\w*|wiki|\w+-\d+\.\d+\.\d+)\/|\.(bundle|sqlite|ru|graffle|ldif|log|sublime-\w+|pid|pem)|etc/config\.yml$/
+#!/usr/bin/env bash
+
+# This is an RVM Project .rvmrc file, used to automatically load the ruby
+# development environment upon cd'ing into the directory
+
+environment_id="ruby-1.9.3-p0@thingfish"
+
+if [[ -d "${rvm_path:-$HOME/.rvm}/environments" \
+	&& -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]]; then
+	echo "Using ${environment_id}"
+	. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
+
+	if [[ -s "${rvm_path:-$HOME/.rvm}/hooks/after_use" ]]; then
+		. "${rvm_path:-$HOME/.rvm}/hooks/after_use"
+	fi
+else
+	# If the environment file has not yet been created, use the RVM CLI to select.
+	if ! rvm --create use  "$environment_id"
+		then
+		echo "Failed to create RVM environment '${environment_id}'."
+		exit 1
+	fi
+fi
+
+filename=".rvm.gems"
+if [[ -s "$filename" ]]; then
+	rvm gemset import "$filename"
+fi
+
+echo "We told you so..."
+echo
+
+# Settings
+projectDirectory     = "$CWD"
+windowTitle          = "${CWD/^.*\///} «$TM_DISPLAYNAME»"
+excludeInFileChooser = "{$exclude,.hg}"
+
+TM_RUBY = "$HOME/.rvm/bin/rvm-auto-ruby"
+
+[ source.ruby ]
+softTabs         = false
+tabSize          = 4
+
+

History.md

-## 0.0.1 [2011-01-18] Michael Granger <ged@FaerieMUD.org>
-
-Initial release.
-
+== v0.0.1 [2011-01-18] Michael Granger <ged@FaerieMUD.org>
+
+Initial release.
+
 ChangeLog
+History.rdoc
 LICENSE
-QUICKSTART.md
-README.md
+Manifest.txt
+QUICKSTART.rdoc
+README.rdoc
 Rakefile
-TEMPLATE.rb.tpl
+bin/ml_archiver.rb
 bin/tf_plugin
 bin/thingfish
 bin/thingfishd
 spec/thingfish/urimap_spec.rb
 spec/thingfish/utils_spec.rb
 spec/thingfish_spec.rb
+start

QUICKSTART.md

-
-# Quickstart
-
-To fire up the bare-bones server so you can start playin' around:
-
-	$ rake install_dependencies
-	$ ./run
-
-The run script sets up the daemon to load its configuration from the 'etc/thingfish.conf' file,
-which by default starts ThingFish in the foreground, and stores all uploaded data in memory.
-
-After starting it, you should be able to point your browser at:
-
-	http://localhost:3474/
-
-and see the server's toplevel (completely optional) web interface. 
-
-## Further Exploration
-
-For more information about customizing and running your server, please see the included
-documentation.
-
-You can generate the manual and the API documentation (if you have the hoe-manualgen rubygem installed) by running:
-
-	$ rake manual
-
-These docs are now available for your viewing pleasure at:
-
-	http://localhost:3474/manual/
-	http://localhost:3474/api/
-
+
+# Quickstart
+
+To fire up the bare-bones server so you can start playin' around:
+
+	$ rake install_dependencies
+	$ ./run
+
+The run script sets up the daemon to load its configuration from the 'etc/thingfish.conf' file,
+which by default starts ThingFish in the foreground, and stores all uploaded data in memory.
+
+After starting it, you should be able to point your browser at:
+
+	http://localhost:3474/
+
+and see the server's toplevel (completely optional) web interface. 
+
+## Further Exploration
+
+For more information about customizing and running your server, please see the included
+documentation.
+
+You can generate the manual and the API documentation (if you have the hoe-manualgen rubygem installed) by running:
+
+	$ rake manual
+
+These docs are now available for your viewing pleasure at:
+
+	http://localhost:3474/manual/
+	http://localhost:3474/api/
+

README.md

-# ThingFish
-
-* http://bitbucket.org/laika/thingfish
-
-## Description
-
-ThingFish is a extensible, web-based digital asset manager. It can be used to store chunks of data on the network in an application-independent way, link the chunks together with metadata, and then search for the chunk you need later and fetch it, all through a REST API.
-
-## Authors
-
-* Michael Granger <ged@FaerieMUD.org>
-* Mahlon E. Smith <mahlon@martini.nu>
-
-## Contributors
-
-* Jeremiah Jordan <phaedrus@perlreason.com>
-* Ben Bleything <ben@bleything.net>
-* Jeff Davis <jeff-thingfish@j-davis.com>
-
-
-## Installation
-
-### Requirements
-
-ThingFish is written in ruby, and is tested using version 1.9.2:
-
-  * Ruby (>= 1.9.2): http://www.ruby-lang.org/en/downloads/
-
-Other versions may work, but are not tested.
-
-### Ruby Modules
-
-You can install ThingFish via the Rubygems package manager:
-
-  $ sudo gem install thingfish
-
-This will install the basic server and its dependencies. You can also install a collection of useful plugins via the 'thingfish-default-plugins' gem.
-
-
-## Contributing
-
-You can check out the current development source [with Mercurial][hgrepo], or
-if you prefer Git, via the project's [Github mirror][gitmirror].
-
-After checking out the source, run:
-
-	$ rake newb
-
-This task will install any missing dependencies, run the tests/specs,
-and generate the API documentation.
-
-You can submit bug reports, suggestions, and read more about future plans at
-[the project page][projectpage].
-
-
-## License
-
-Copyright (c) 2007-2011, Michael Granger and Mahlon E. Smith
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-* Neither the name of the author/s, nor the names of the project's
-  contributors may be used to endorse or promote products derived from this
-  software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-[hgrepo]:http://bitbucket.org/laika/thingfish
-[gitmirror]:https://github.com/ged/thingfish
-[projectpage]:http://bitbucket.org/laika/thingfish
-
+= ThingFish
+
+* http://bitbucket.org/laika/thingfish
+
+== Description
+
+ThingFish is a extensible, web-based digital asset manager. It can be used to
+store chunks of data on the network in an application-independent way, link the
+chunks together with metadata, and then search for the chunk you need later and
+fetch it, all through a REST API.
+
+
+== Authors
+
+* Michael Granger <ged@FaerieMUD.org>
+* Mahlon E. Smith <mahlon@martini.nu>
+
+== Contributors
+
+* Jeremiah Jordan <phaedrus@perlreason.com>
+* Ben Bleything <ben@bleything.net>
+* Jeff Davis <jeff-thingfish@j-davis.com>
+
+
+== Installation
+
+=== Requirements
+
+ThingFish is written in ruby, and is tested using version 1.9.3:
+
+  * Ruby (>= 1.9.3): http://www.ruby-lang.org/en/downloads/
+
+Other versions may work, but are not tested.
+
+=== Ruby Modules
+
+You can install ThingFish via the Rubygems package manager:
+
+  $ sudo gem install thingfish
+
+This will install the basic server and its dependencies. You can also install a collection of useful plugins via the 'thingfish-default-plugins' gem.
+
+
+== Contributing
+
+You can check out the current development source
+{with Mercurial}[http://bitbucket.org/laika/thingfish], or
+if you prefer Git, via the project's
+{Github mirror}[https://github.com/ged/thingfish].
+
+After checking out the source, run:
+
+	$ rake newb
+
+This task will install any missing dependencies, run the tests/specs, and 
+generate the API documentation.
+
+You can submit bug reports, suggestions, and read more about future plans at
+{the project page}[http://bitbucket.org/laika/thingfish].
+
+
+== License
+
+Copyright (c) 2007-2012, Michael Granger and Mahlon E. Smith
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+* Neither the name of the author/s, nor the names of the project's
+  contributors may be used to endorse or promote products derived from this
+  software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
 
 
 Hoe.plugin :mercurial
-Hoe.plugin :yard
 Hoe.plugin :signing
 Hoe.plugin :manualgen
 
 
 
 hoespec = Hoe.spec 'thingfish' do
-	self.readme_file = 'README.md'
-	self.history_file = 'History.md'
+	self.readme_file = 'README.rdoc'
+	self.history_file = 'History.rdoc'
+	self.extra_rdoc_files = Rake::FileList[ '*.rdoc' ]
 
 	self.developer 'Michael Granger', 'ged@FaerieMUD.org'
 	self.developer 'Mahlon E. Smith', 'mahlon@martini.nu'
 
-	self.extra_deps.push *{
-		'pluginfactory' => "~> 1.0.4",
-		'uuidtools'     => "~> 2.1.1",
-	}
-	self.extra_dev_deps.push *{
-		'rspec'        => '~> 2.4.0',
-		'tidy-ext'     => '~> 0.1.10',
-		'sqlite3-ruby' => '~> 1.3.2',
-		'ruby-mp3info' => '~> 0.6.13',
-		'exifr'        => "~> 1.0.3",
-		'json'         => "~> 1.4.6",
-		'rmagick'      => "~> 2.13.1",
-		'sequel'       => "~> 3.19.0",
-		'lockfile'     => "~> 1.4.3",
-	}
+	self.dependency 'pluginfactory', '~> 1.0'
+	self.dependency 'uuidtools',     '~> 2.1'
+	self.dependency 'hoe-deveiate',  '~> 0.0',  :development
+	self.dependency 'tidy-ext',      '~> 0.1',  :development
+	self.dependency 'sqlite3',       '~> 1.3',  :development
+	self.dependency 'ruby-mp3info',  '~> 0.6',  :development
+	self.dependency 'exifr',         '~> 1.0',  :development
+	self.dependency 'json',          '~> 1.4',  :development
+	self.dependency 'rmagick',       '~> 2.13', :development
+	self.dependency 'sequel',        '~> 3.31', :development
+	self.dependency 'lockfile',      '~> 1.4',  :development
 
 	self.spec_extras[:licenses] = ["BSD"]
 	self.spec_extras[:post_install_message] = %{
 
 		You can start the server with 'thingfishd', and talk to a running ThingFish 
 		server with the 'thingfish' command.
-		
+
 	}.gsub( /^\t{2}/, '' )
 
-	self.spec_extras[:signing_key] = '/Volumes/Keys/ged-private_gem_key.pem'
-	self.require_ruby_version( '>=1.9.2' )
+	self.require_ruby_version( '>=1.9.3' )
 
 	self.hg_sign_tags = true if self.respond_to?( :hg_sign_tags= )
-	self.yard_opts = [ '--use-cache', '--protected', '--verbose' ] if
-		self.respond_to?( :yard_opts= )
-
 	self.rdoc_locations << "deveiate:/usr/local/www/public/code/#{remote_rdoc_dir}"
 end
 
 ENV['VERSION'] ||= hoespec.spec.version.to_s
 
-task 'hg:precheckin' => :spec
+task 'hg:precheckin' => [ 'ChangeLog', :check_manifest, :check_history, :spec ]
 
-begin
-	include Hoe::MercurialHelpers
-
-	### Task: prerelease
-	desc "Append the package build number to package versions"
-	task :pre do
-		rev = get_numeric_rev()
-		trace "Current rev is: %p" % [ rev ]
-		hoespec.spec.version.version << "pre#{rev}"
-		Rake::Task[:gem].clear
-
-		Gem::PackageTask.new( hoespec.spec ) do |pkg|
-			pkg.need_zip = true
-			pkg.need_tar = true
-		end
-	end
-
-	### Make the ChangeLog update if the repo has changed since it was last built
-	file '.hg/branch'
-	file 'ChangeLog' => '.hg/branch' do |task|
-		$stderr.puts "Updating the changelog..."
-		content = make_changelog()
-		File.open( task.name, 'w', 0644 ) do |fh|
-			fh.print( content )
-		end
-	end
-
-	# Rebuild the ChangeLog immediately before release
-	task :prerelease => 'ChangeLog'
-
-rescue NameError => err
-	task :no_hg_helpers do
-		fail "Couldn't define the :pre task: %s: %s" % [ err.class.name, err.message ]
-	end
-
-	task :pre => :no_hg_helpers
-	task 'ChangeLog' => :no_hg_helpers
-
-end
 
 begin
 	require 'thingfish/benchmarktask'

lib/thingfish/benchmarktask.rb

 
 require 'open3'
 require 'digest/md5'
+
 require 'rake/tasklib'
+
 require 'thingfish'
 require 'thingfish/client'
 require 'thingfish/config'
 require 'thingfish/daemon'
 
 
-# 
+#
 # Benchmarking Task library
-# 
+#
 # == Version
 #
 #  $Id$
 
 	### A rake task for generating ThingFish benchmarks using 'ab'
 	class Task < Rake::Task
+		extend Rake::DSL
 
 		BENCHMARKS_DIR = Pathname.new( 'benchmarks' )
 		DEFAULT_OUTPUT_DIR = BENCHMARKS_DIR + Time.now.to_i.to_s( 16 )

lib/thingfish/config.rb

 	### Construct a fully-qualified Pathname object from the given +dir+, either as-is if it is
 	### already an absolute path, or relative to the configured +datadir+ if not.
 	def qualify_path( dir )
+		self.log.debug "Qualifying path %p with datadir %p" % [ dir, self.datadir ]
 		sp = Pathname( dir )
-		self.log.debug "Qualifying path %p with datadir %p" % [ sp, self.datadir ]
 		return sp unless sp.relative?
 		return Pathname( self.datadir ) + sp
 	end

lib/thingfish/filter/yaml.rb

 #!/usr/bin/env ruby
 
-require 'yaml'
+require 'psych'
 
 require 'thingfish'
 require 'thingfish/mixins'
 	YAML_MIMETYPE = 'text/x-yaml'
 	YAML_MIMETYPE.freeze
 
+	# The versions of the YAML spec supported by Psych
+	# :TODO: This should probably be at least based on the LIBYAML_VERSION
+	SUPPORTED_YAML_VERSIONS = [ '1.1', '1.2' ]
+	SUPPORTED_YAML_VERSIONS.freeze
+
 
 	#################################################################
 	###	I N S T A N C E   M E T H O D S
 			self.log.debug "Converting a %s request to %s" %
 				[ YAML_MIMETYPE, RUBY_MIMETYPE ]
 			request.body = YAML.load( request.body.read )
-		rescue RuntimeError, YAML::ParseError => err
+		rescue RuntimeError, Psych::SyntaxError => err
 			self.log.error "%s while attempting to convert %p to a native ruby object: %s" %
 				[ err.class.name, request.body, err.message ]
 			self.log.debug err.backtrace.join("\n")
 
 	### Returns a Hash of information about the filter; this is of the form:
 	###   {
-	###     'version'  => [ 0, 60 ],               # YAML.rb version
+	###     'version'  => [ 0, 60 ],               # Psych version
 	###     'supports' => [ [1,0], [1,1] ],        # Supported YAML versions
 	###     'rev'      => 460,                     # VCS rev of plugin
 	###   }
 	def info
-		yaml_rb_version = YAML::VERSION.split('.').collect {|i| Integer(i) }
-		supported_yaml_version = YAML::SUPPORTED_YAML_VERSIONS.collect do |v|
+		yaml_rb_version = Psych::VERSION.split('.').collect {|i| Integer(i) }
+		supported_yaml_version = SUPPORTED_YAML_VERSIONS.collect do |v|
 			v.split('.').collect {|i| Integer(i) }
 		end
 

loadpath.rb

-BEGIN {
-	require 'pathname'
-	basedir = Pathname.new( __FILE__ ).expand_path.dirname
-
-	libdir = basedir + 'lib'
-	pluginsdir = basedir + 'plugins'
-	pluginlibs = Pathname.glob( (pluginsdir + '*/lib').to_s )
-
-	$LOAD_PATH.unshift( libdir.to_s ) unless $LOAD_PATH.include?( libdir.to_s )
-	pluginlibs.each do |dir|
-		$LOAD_PATH.unshift( dir.to_s ) unless $LOAD_PATH.include?( dir.to_s )
-	end
-}
-

spec/TEMPLATE.rb.tpl

-#!/usr/bin/env ruby
-
-BEGIN {
-	require 'pathname'
-	basedir = Pathname.new( __FILE__ ).dirname.parent
-
-	libdir = basedir + "lib"
-
-	$LOAD_PATH.unshift( basedir ) unless $LOAD_PATH.include?( basedir )
-	$LOAD_PATH.unshift( libdir ) unless $LOAD_PATH.include?( libdir )
-}
-
-require 'rspec'
-
-require 'thingfish'
-require 'thingfish/#{vars[:specified_class].downcase}'
-
-
-#####################################################################
-###	E X A M P L E S
-#####################################################################
-
-describe #{vars[:class_under_test]} do
-
-end
-
-# vim: set nosta noet ts=4 sw=4:

spec/lib/helpers.rb

 
 
 RSpec.configure do |config|
+	include ThingFish::TestConstants
+
 	config.mock_with( :rspec )
+
 	config.include( ThingFish::TestConstants )
 	config.include( ThingFish::SpecHelpers )
 end

spec/thingfish/config_spec.rb

 
 
 	it "ensures the data and spool directories exist" do
-		datadir_pathname = mock( "mock datadir pathname" )
-		@config.datadir = :datadir
-		Pathname.should_receive( :new ).with( :datadir ).at_least(:once).
-			and_return( datadir_pathname )
+		@config.setup_data_directories
 
-		spooldir_pathname = mock( "mock spooldir pathname" )
-		@config.spooldir = :spooldir
-		Pathname.should_receive( :new ).with( :spooldir ).and_return( spooldir_pathname )
-
-		datadir_pathname.should_receive( :mkpath )
-		spooldir_pathname.should_receive( :relative? ).and_return( false )
-		spooldir_pathname.should_receive( :mkpath )
-
-		@config.setup_data_directories
+		@config.datadir_path.should exist()
+		@config.spooldir_path.should exist()
 	end
 
 
 
 
 		it "ensures the profiling report directory exists" do
-			datadir_pathname = stub( "mock datadir pathname", :mkpath => false )
-			@config.datadir = :datadir
-			Pathname.should_receive( :new ).with( :datadir ).at_least(:once).
-				and_return( datadir_pathname )
-
-			spooldir_pathname = stub( "mock spooldir pathname", :mkpath => false )
-			@config.spooldir = :spooldir
-			Pathname.should_receive( :new ).with( :spooldir ).and_return( spooldir_pathname )
-			spooldir_pathname.stub!( :relative? ).and_return( false )
-
-			profiledir_pathname = mock( "profiledir pathname" )
-			Pathname.should_receive( :new ).with( 'profiles' ).and_return( profiledir_pathname )
-
-			profiledir_pathname.should_receive( :relative? ).and_return( false )
-			profiledir_pathname.should_receive( :mkpath )
-
 			@config.setup_data_directories
+			@config.profiledir_path.should exist()
 		end
 
 	end

spec/thingfish/filter/ruby_spec.rb

 
 		expect {
 			self.filter.handle_response( @response, @request )
-		}.to raise_error( TypeError, /no marshal_dump/ )
+		}.to raise_error( TypeError, /no _dump_data/ )
 	end
 
 

spec/thingfish/filter/yaml_spec.rb

 describe ThingFish::YAMLFilter do
 
 	TEST_YAML_CONTENT = <<-EO_YAML
-	--- 
+	---
 	- ip_address: 127.0.0.1
 	- pine_cone: sandwiches
 	- olive_oil: pudding
 		@request.should_receive( :content_type ).
 			at_least( :once ).
 			and_return( 'text/x-yaml' )
-		bodyio = StringIO.new( TEST_YAML_CONTENT )
+		bodyio = StringIO.new( "---\n}" )
 		@request.should_receive( :body ).
 			at_least( :once ).
 			with( no_args() ).
 			and_return( bodyio )
 
-		YAML.stub!( :load ).and_raise( YAML::ParseError.new("error parsing") )
-
 		@request.should_not_receive( :body= )
 		@request.should_not_receive( :content_type= )
 
 		# even more lame.
 		@response.should_receive( :body ).
 			once.
-			and_raise( YAML::ParseError.new("couldn't parse it!") )
+			and_raise( Psych::SyntaxError.new("couldn't parse it!") )
 
 		@response.should_not_receive( :body= )
 		@response.should_not_receive( :status= )
 
 		expect {
 			self.filter.handle_response( @response, @request )
-		}.to raise_error( YAML::ParseError, "couldn't parse it!" )
+		}.to raise_error( Psych::SyntaxError, "couldn't parse it!" )
 	end