Skip to content
Browse files

Various fixes and documentation updates

  • Loading branch information...
1 parent 4e5b375 commit ccfb2594076755c37c0365668b75ca30b2a0cb1f @dazuma dazuma committed Aug 10, 2011
View
9 History.rdoc
@@ -1,8 +1,11 @@
-=== 0.3.2 / 2011-06-??
+=== 0.3.2 / 2011-08-10
-* Most objects can now be serialized and deserialized via Marshal or YAML. Supported objects include factories, geometries, OGC coordinate systems, and Proj4 coordinate systems.
-* The GEOS CAPI implementation can now use prepared geometries to speed up certain operations. The GEOS FFI implementation will do the same once I find out how ffi-geos will handle prepared geometries internally.
+* Some objects can now be serialized and deserialized via Marshal or YAML. Supported objects include OGC coordinate systems and Proj4 coordinate systems. Factories and geometries will be supported shortly.
+* The GEOS CAPI implementation can now use prepared geometries to speed up certain operations. The GEOS FFI implementation will do the same shortly.
* Calling dup on a Proj4 object caused a segfault. Fixed.
+* Fixed an exception in RGeo::Cartesian::BoundingBox#to_geometry. (Thanks to Travis Dempsey.)
+* WKTGenerator generated incorrect tag names for subtypes of LineString. Fixed.
+* Installation automatically finds the KyngChaos GEOS and Proj4 frameworks for Mac OS X. (Thanks to benchi.)
=== 0.3.1 / 2011-05-24
View
19 README.rdoc
@@ -45,9 +45,9 @@ RGeo is known to work with the following Ruby implementations:
* Standard "MRI" Ruby 1.8.7 or later. (1.9.2 or later preferred.)
* Rubinius 1.1 or later.
-* Partial support for JRuby 1.5 or later, but a bunch of features are
- missing or not yet stable because GEOS and Proj integration is not
- yet stable in JRuby. This is high-priority ongoing work.
+* Partial support for JRuby 1.6.3 or later. The FFI implementation of
+ GEOS is available (ffi-geos gem is required) but CAPI is not.
+ Proj4 support is expected in the future.
Some features also require the following:
@@ -71,7 +71,8 @@ Install RGeo as a gem:
Note: By default, the gem installation looks for the GEOS library in the
following locations: <tt>/usr/local</tt>, <tt>/usr/local/geos</tt>,
-<tt>/opt/local</tt>, <tt>/opt/geos</tt>, <tt>/opt</tt>, <tt>/usr</tt>.
+<tt>/opt/local</tt>, <tt>/opt/geos</tt>, <tt>/opt</tt>, <tt>/usr</tt>,
+and <tt>/Library/Frameworks/GEOS.framework/unix</tt>.
If GEOS has been installed in a different location, you must provide its
installation prefix directory using the "--with-geos-dir" option. This
@@ -83,7 +84,8 @@ switch, from the switches interpreted by the gem command. For example:
Similarly, the gem installation looks for the Proj4 library in the
following locations by default: <tt>/usr/local</tt>,
<tt>/usr/local/proj</tt>, <tt>/usr/local/proj4</tt>, <tt>/opt/local</tt>,
-<tt>/opt/proj</tt>, <tt>/opt/proj4</tt>, <tt>/opt</tt>, <tt>/usr</tt>.
+<tt>/opt/proj</tt>, <tt>/opt/proj4</tt>, <tt>/opt</tt>, <tt>/usr</tt>,
+and <tt>/Library/Frameworks/PROJ.framework/unix</tt>.
If Proj4 is installed in a different location, you must provide its
installation prefix directory using the "--with-proj-dir" option.
@@ -93,7 +95,7 @@ installation prefix directory using the "--with-proj-dir" option.
The RGeo suite of tools is evolving rapidly. The current to-do list for
the core library includes:
-* YAML and Marshal serialization support.
+* YAML and Marshal serialization support across all major entities.
* Better JRuby support.
* Ellipsoidal geography implementation, possibly utilizing geographiclib.
* Windows build support.
@@ -102,7 +104,7 @@ Each of the current add-on modules also has its own feature roadmap, and
we are planning on introducing more add-on modules, including:
* GeoRSS and KML format support.
-* Integration with the SimpleGeo API.
+* Integration with third-party APIs.
* Possible additional ActiveRecord adapters.
=== Development and support
@@ -129,6 +131,9 @@ transformations. These libraries are maintained by the Open Source
Geospatial Foundation; more information is available on OSGeo's web site
(http://www.osgeo.org).
+JRuby support is made possible by the ffi-geos (and upcoming ffi-proj4)
+gems, by J Smith (http://github.com/dark-panda).
+
=== License
Copyright 2010-2011 Daniel Azuma
View
10 Rakefile
@@ -50,7 +50,7 @@ RAKEFILE_CONFIG = {} unless defined?(::RAKEFILE_CONFIG)
# Platform info
-dlext_ = ::Config::CONFIG['DLEXT']
+dlext_ = ::RbConfig::CONFIG['DLEXT']
platform_ =
case ::RUBY_DESCRIPTION
@@ -184,13 +184,15 @@ end
# Gem release tasks
-task :build_gem do
+task :build_other
+
+task :build_gem => :build_other do
::Gem::Builder.new(gemspec_).build
mkdir_p(pkg_directory_)
mv "#{gemspec_.name}-#{gemspec_.version}.gem", "#{pkg_directory_}/"
end
-task :build_release do
+task :build_release => :build_other do
::Gem::Builder.new(release_gemspec_).build
mkdir_p(pkg_directory_)
mv "#{release_gemspec_.name}-#{release_gemspec_.version}.gem", "#{pkg_directory_}/"
@@ -205,7 +207,7 @@ end
# Unit test task
-task :test => :build_ext do
+task :test => [:build_ext, :build_other] do
$:.unshift(::File.expand_path('lib', ::File.dirname(__FILE__)))
if ::ENV['TESTCASE']
test_files_ = ::Dir.glob("test/#{::ENV['TESTCASE']}.rb")
View
2 ext/geos_c_impl/extconf.rb
@@ -49,6 +49,7 @@
'/opt/local/include',
'/opt/geos/include',
'/opt/include',
+ '/Library/Frameworks/GEOS.framework/unix/include',
::Config::CONFIG['includedir'],
'/usr/include',
]
@@ -59,6 +60,7 @@
'/opt/local/lib',
'/opt/geos/lib',
'/opt/lib',
+ '/Library/Frameworks/GEOS.framework/unix/lib',
::Config::CONFIG['libdir'],
'/usr/lib',
]
View
2 ext/proj4_c_impl/extconf.rb
@@ -51,6 +51,7 @@
'/opt/proj/include',
'/opt/proj4/include',
'/opt/include',
+ '/Library/Frameworks/PROJ.framework/unix/include',
::Config::CONFIG['includedir'],
'/usr/include',
]
@@ -63,6 +64,7 @@
'/opt/proj/lib',
'/opt/proj4/lib',
'/opt/lib',
+ '/Library/Frameworks/PROJ.framework/unix/lib',
::Config::CONFIG['libdir'],
'/usr/lib',
]
View
8 lib/rgeo/cartesian/bounding_box.rb
@@ -242,7 +242,9 @@ def to_geometry
if @min_x == @max_x || @min_y == @max_y
@factory.line(point_min_, point_max_)
else
- @factory.polygon(@factory.linear_ring(point_min_, @factory.point(@max_x, @min_y, *extras_), point_max_, @factory.point(@min_x, @max_y, *extras_), point_min_))
+ @factory.polygon(@factory.linear_ring([point_min_,
+ @factory.point(@max_x, @min_y, *extras_), point_max_,
+ @factory.point(@min_x, @max_y, *extras_), point_min_]))
end
end
else
@@ -256,10 +258,10 @@ def to_geometry
#
# Supports these options:
#
- # <tt>:ignore_z</tt>
+ # [<tt>:ignore_z</tt>]
# Ignore the Z coordinate when testing, even if both objects
# have Z. Default is false.
- # <tt>:ignore_m</tt>
+ # [<tt>:ignore_m</tt>]
# Ignore the M coordinate when testing, even if both objects
# have M. Default is false.
View
3 lib/rgeo/wkrep/wkt_generator.rb
@@ -151,6 +151,7 @@ def generate(obj_)
def _generate_feature(obj_, toplevel_=false) # :nodoc:
type_ = obj_.geometry_type
+ type_ = Feature::LineString if type_.subtype_of?(Feature::LineString)
tag_ = type_.type_name
if @tag_format == :ewkt
if @cur_support_m && !@cur_support_z
@@ -172,7 +173,7 @@ def _generate_feature(obj_, toplevel_=false) # :nodoc:
end
if type_ == Feature::Point
"#{tag_} #{_generate_point(obj_)}"
- elsif type_.subtype_of?(Feature::LineString)
+ elsif type_ == Feature::LineString
"#{tag_} #{_generate_line_string(obj_)}"
elsif type_ == Feature::Polygon
"#{tag_} #{_generate_polygon(obj_)}"
View
22 test/coord_sys/tc_ogc_cs.rb
@@ -369,12 +369,22 @@ def test_marshal_roundtrip
end
- def test_yaml_roundtrip
- input_ = 'COMPD_CS["OSGB36 / British National Grid + ODN",PROJCS["OSGB 1936 / British National Grid",GEOGCS["OSGB 1936",DATUM["OSGB 1936",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],TOWGS84[446.448,-125.157,542.06,0.15,0.247,0.842,-4.2261596151967575],AUTHORITY["EPSG","6277"]],PRIMEM["Greenwich",0.0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.017453292519943295],AXIS["Geodetic latitude",NORTH],AXIS["Geodetic longitude",EAST],AUTHORITY["EPSG","4277"]],PROJECTION["Transverse Mercator",AUTHORITY["EPSG","9807"]],PARAMETER["central_meridian",-2.0],PARAMETER["latitude_of_origin",49.0],PARAMETER["scale_factor",0.9996012717],PARAMETER["false_easting",400000.0],PARAMETER["false_northing",-100000.0],UNIT["m",1.0],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","27700"]],VERT_CS["Newlyn",VERT_DATUM["Ordnance Datum Newlyn",2005,AUTHORITY["EPSG","5101"]],UNIT["m",1.0],AXIS["Gravity-related height",UP],AUTHORITY["EPSG","5701"]],AUTHORITY["EPSG","7405"]]'
- obj1_ = ::RGeo::CoordSys::CS.create_from_wkt(input_)
- dump_ = ::YAML.dump(obj1_)
- obj2_ = ::YAML.load(dump_)
- assert_equal(obj1_, obj2_)
+ if ::RGeo.yaml_supported?
+
+
+ def test_yaml_roundtrip
+ input_ = 'COMPD_CS["OSGB36 / British National Grid + ODN",PROJCS["OSGB 1936 / British National Grid",GEOGCS["OSGB 1936",DATUM["OSGB 1936",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],TOWGS84[446.448,-125.157,542.06,0.15,0.247,0.842,-4.2261596151967575],AUTHORITY["EPSG","6277"]],PRIMEM["Greenwich",0.0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.017453292519943295],AXIS["Geodetic latitude",NORTH],AXIS["Geodetic longitude",EAST],AUTHORITY["EPSG","4277"]],PROJECTION["Transverse Mercator",AUTHORITY["EPSG","9807"]],PARAMETER["central_meridian",-2.0],PARAMETER["latitude_of_origin",49.0],PARAMETER["scale_factor",0.9996012717],PARAMETER["false_easting",400000.0],PARAMETER["false_northing",-100000.0],UNIT["m",1.0],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","27700"]],VERT_CS["Newlyn",VERT_DATUM["Ordnance Datum Newlyn",2005,AUTHORITY["EPSG","5101"]],UNIT["m",1.0],AXIS["Gravity-related height",UP],AUTHORITY["EPSG","5701"]],AUTHORITY["EPSG","7405"]]'
+ obj1_ = ::RGeo::CoordSys::CS.create_from_wkt(input_)
+ dump_ = ::Psych.dump(obj1_)
+ obj2_ = ::Psych.load(dump_)
+ assert_equal(obj1_, obj2_)
+ end
+
+
+ else
+
+ puts "WARNING: Psych not installed. Skipping YAML tests."
+
end
View
84 test/coord_sys/tc_proj4.rb
@@ -46,27 +46,27 @@ class TestProj4 < ::Test::Unit::TestCase # :nodoc:
def test_create_wgs84
- proj_ = RGeo::CoordSys::Proj4.create('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')
+ proj_ = ::RGeo::CoordSys::Proj4.create('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')
assert_equal(true, proj_.geographic?)
assert_equal('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs', proj_.original_str)
assert_equal(' +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +towgs84=0,0,0', proj_.canonical_str)
end
def test_get_wgs84_geographic
- proj_ = RGeo::CoordSys::Proj4.create('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')
+ proj_ = ::RGeo::CoordSys::Proj4.create('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')
proj2_ = proj_.get_geographic
assert_nil(proj2_.original_str)
assert_equal(true, proj2_.geographic?)
- coords_ = RGeo::CoordSys::Proj4.transform_coords(proj_, proj2_, 1, 2, 0)
+ coords_ = ::RGeo::CoordSys::Proj4.transform_coords(proj_, proj2_, 1, 2, 0)
assert_equal([1, 2, 0], coords_)
end
def test_identity_transform
- proj_ = RGeo::CoordSys::Proj4.create('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')
- assert_equal([1, 2, 0], RGeo::CoordSys::Proj4.transform_coords(proj_, proj_, 1, 2, 0))
- assert_equal([1, 2], RGeo::CoordSys::Proj4.transform_coords(proj_, proj_, 1, 2, nil))
+ proj_ = ::RGeo::CoordSys::Proj4.create('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')
+ assert_equal([1, 2, 0], ::RGeo::CoordSys::Proj4.transform_coords(proj_, proj_, 1, 2, 0))
+ assert_equal([1, 2], ::RGeo::CoordSys::Proj4.transform_coords(proj_, proj_, 1, 2, nil))
end
@@ -92,90 +92,100 @@ def _assert_xy_close(xy1_, xy2_)
def test_simple_mercator_transform
- geography_ = RGeo::CoordSys::Proj4.create('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs', :radians => true)
- projection_ = RGeo::CoordSys::Proj4.create('+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs')
- _assert_xy_close(_project_merc(0, 0), RGeo::CoordSys::Proj4.transform_coords(geography_, projection_, 0, 0, nil))
- _assert_xy_close(_project_merc(0.01, 0.01), RGeo::CoordSys::Proj4.transform_coords(geography_, projection_, 0.01, 0.01, nil))
- _assert_xy_close(_project_merc(1, 1), RGeo::CoordSys::Proj4.transform_coords(geography_, projection_, 1, 1, nil))
- _assert_xy_close(_project_merc(-1, -1), RGeo::CoordSys::Proj4.transform_coords(geography_, projection_, -1, -1, nil))
- _assert_xy_close(_unproject_merc(0, 0), RGeo::CoordSys::Proj4.transform_coords(projection_, geography_, 0, 0, nil))
- _assert_xy_close(_unproject_merc(10000, 10000), RGeo::CoordSys::Proj4.transform_coords(projection_, geography_, 10000, 10000, nil))
- _assert_xy_close(_unproject_merc(-20000000, -20000000), RGeo::CoordSys::Proj4.transform_coords(projection_, geography_, -20000000, -20000000, nil))
+ geography_ = ::RGeo::CoordSys::Proj4.create('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs', :radians => true)
+ projection_ = ::RGeo::CoordSys::Proj4.create('+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs')
+ _assert_xy_close(_project_merc(0, 0), ::RGeo::CoordSys::Proj4.transform_coords(geography_, projection_, 0, 0, nil))
+ _assert_xy_close(_project_merc(0.01, 0.01), ::RGeo::CoordSys::Proj4.transform_coords(geography_, projection_, 0.01, 0.01, nil))
+ _assert_xy_close(_project_merc(1, 1), ::RGeo::CoordSys::Proj4.transform_coords(geography_, projection_, 1, 1, nil))
+ _assert_xy_close(_project_merc(-1, -1), ::RGeo::CoordSys::Proj4.transform_coords(geography_, projection_, -1, -1, nil))
+ _assert_xy_close(_unproject_merc(0, 0), ::RGeo::CoordSys::Proj4.transform_coords(projection_, geography_, 0, 0, nil))
+ _assert_xy_close(_unproject_merc(10000, 10000), ::RGeo::CoordSys::Proj4.transform_coords(projection_, geography_, 10000, 10000, nil))
+ _assert_xy_close(_unproject_merc(-20000000, -20000000), ::RGeo::CoordSys::Proj4.transform_coords(projection_, geography_, -20000000, -20000000, nil))
end
def test_equivalence
- proj1_ = RGeo::CoordSys::Proj4.create('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')
- proj2_ = RGeo::CoordSys::Proj4.create('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')
+ proj1_ = ::RGeo::CoordSys::Proj4.create('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')
+ proj2_ = ::RGeo::CoordSys::Proj4.create('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')
assert_equal(proj1_, proj2_)
end
def test_point_projection_cast
- geography_ = RGeo::Geos.factory(:proj4 => '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs', :srid =>4326)
- projection_ = RGeo::Geos.factory(:proj4 => '+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +datum=OSGB36 +units=m +no_defs', :srid => 27700)
+ geography_ = ::RGeo::Geos.factory(:proj4 => '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs', :srid =>4326)
+ projection_ = ::RGeo::Geos.factory(:proj4 => '+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +datum=OSGB36 +units=m +no_defs', :srid => 27700)
proj_point_ = projection_.parse_wkt('POINT(473600.5000000000000000 186659.7999999999883585)')
- geo_point_ = RGeo::Feature.cast(proj_point_, :project => true, :factory => geography_)
+ geo_point_ = ::RGeo::Feature.cast(proj_point_, :project => true, :factory => geography_)
_assert_close_enough(-0.9393598527244420, geo_point_.x)
_assert_close_enough(51.5740106527552697, geo_point_.y)
end
def test_point_transform_lowlevel
- geography_ = RGeo::Geos.factory(:proj4 => '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs', :srid =>4326)
- projection_ = RGeo::Geos.factory(:proj4 => '+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +datum=OSGB36 +units=m +no_defs', :srid => 27700)
+ geography_ = ::RGeo::Geos.factory(:proj4 => '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs', :srid =>4326)
+ projection_ = ::RGeo::Geos.factory(:proj4 => '+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +datum=OSGB36 +units=m +no_defs', :srid => 27700)
proj_point_ = projection_.parse_wkt('POINT(473600.5000000000000000 186659.7999999999883585)')
- geo_point_ = RGeo::CoordSys::Proj4.transform(projection_.proj4, proj_point_, geography_.proj4, geography_)
+ geo_point_ = ::RGeo::CoordSys::Proj4.transform(projection_.proj4, proj_point_, geography_.proj4, geography_)
_assert_close_enough(-0.9393598527244420, geo_point_.x)
_assert_close_enough(51.5740106527552697, geo_point_.y)
end
def test_geocentric
- obj1_ = RGeo::CoordSys::Proj4.create('+proj=geocent +ellps=WGS84')
+ obj1_ = ::RGeo::CoordSys::Proj4.create('+proj=geocent +ellps=WGS84')
assert_equal(true, obj1_.geocentric?)
end
def test_get_geographic
- projection_ = RGeo::CoordSys::Proj4.create('+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs')
+ projection_ = ::RGeo::CoordSys::Proj4.create('+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs')
geographic_ = projection_.get_geographic
- expected_ = RGeo::CoordSys::Proj4.create('+proj=latlong +a=6378137 +b=6378137 +nadgrids=@null')
+ expected_ = ::RGeo::CoordSys::Proj4.create('+proj=latlong +a=6378137 +b=6378137 +nadgrids=@null')
assert_equal(expected_, geographic_)
end
def test_marshal_roundtrip
- obj1_ = RGeo::CoordSys::Proj4.create('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')
+ obj1_ = ::RGeo::CoordSys::Proj4.create('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')
dump_ = ::Marshal.dump(obj1_)
obj2_ = ::Marshal.load(dump_)
assert_equal(obj1_, obj2_)
end
- def test_yaml_roundtrip
- obj1_ = RGeo::CoordSys::Proj4.create('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')
- dump_ = ::YAML.dump(obj1_)
- obj2_ = ::YAML.load(dump_)
- assert_equal(obj1_, obj2_)
- end
-
-
def test_dup
- obj1_ = RGeo::CoordSys::Proj4.create('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')
+ obj1_ = ::RGeo::CoordSys::Proj4.create('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')
obj2_ = obj1_.dup
assert_equal(obj1_, obj2_)
end
def test_dup_of_get_geographic
- obj1_ = RGeo::CoordSys::Proj4.create('+proj=latlong +datum=WGS84 +ellps=WGS84')
+ obj1_ = ::RGeo::CoordSys::Proj4.create('+proj=latlong +datum=WGS84 +ellps=WGS84')
obj2_ = obj1_.get_geographic
obj3_ = obj2_.dup
assert_equal(obj1_, obj3_)
end
+ if ::RGeo.yaml_supported?
+
+
+ def test_yaml_roundtrip
+ obj1_ = ::RGeo::CoordSys::Proj4.create('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')
+ dump_ = ::Psych.dump(obj1_)
+ obj2_ = ::Psych.load(dump_)
+ assert_equal(obj1_, obj2_)
+ end
+
+
+ else
+
+ puts "WARNING: Psych not installed. Skipping YAML tests."
+
+ end
+
+
end
end

0 comments on commit ccfb259

Please sign in to comment.
Something went wrong with that request. Please try again.