Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update libxml dependency #17

Merged
merged 3 commits into from Sep 14, 2011
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
8 changes: 8 additions & 0 deletions Gemfile
@@ -0,0 +1,8 @@
source :rubygems

gemspec

group :development do
gem 'rake'
gem "rspec", "~> 1.3"
end
6 changes: 4 additions & 2 deletions Rakefile
@@ -1,6 +1,8 @@
require 'rubygems'
require 'bundler/setup'

require 'rake'
require 'rake/rdoctask'
require 'rdoc/task'
require 'spec/rake/spectask'
require File.expand_path('../lib/happymapper/version', __FILE__)

Expand Down Expand Up @@ -33,7 +35,7 @@ task :website do
sh %{rsync -av website/ jnunemaker@rubyforge.org:/var/www/gforge-projects/happymapper}
end

Rake::RDocTask.new do |r|
RDoc::Task.new do |r|
r.title = 'HappyMapper Docs'
r.main = 'README.rdoc'
r.rdoc_dir = 'doc'
Expand Down
3 changes: 1 addition & 2 deletions happymapper.gemspec
Expand Up @@ -14,6 +14,5 @@ Gem::Specification.new do |s|
s.platform = Gem::Platform::RUBY
s.files = Dir.glob("{examples,lib,spec}/**/*") + %w[License Rakefile README.rdoc]

s.add_dependency 'libxml-ruby', '~> 1.1.3'
s.add_development_dependency 'rspec', '~> 1.3.0'
s.add_dependency 'libxml-ruby', '~> 2.0'
end
6 changes: 3 additions & 3 deletions spec/happymapper_attribute_spec.rb
@@ -1,15 +1,15 @@
require File.dirname(__FILE__) + '/spec_helper.rb'
require 'spec_helper'

describe HappyMapper::Attribute do
describe "initialization" do
before do
@attr = HappyMapper::Attribute.new(:foo, String)
end

it 'should know that it is an attribute' do
@attr.attribute?.should be_true
end

it 'should know that it is NOT an element' do
@attr.element?.should be_false
end
Expand Down
6 changes: 3 additions & 3 deletions spec/happymapper_element_spec.rb
@@ -1,15 +1,15 @@
require File.dirname(__FILE__) + '/spec_helper.rb'
require 'spec_helper'

describe HappyMapper::Element do
describe "initialization" do
before do
@attr = HappyMapper::Element.new(:foo, String)
end

it 'should know that it is an element' do
@attr.element?.should be_true
end

it 'should know that it is NOT an attribute' do
@attr.attribute?.should be_false
end
Expand Down
40 changes: 20 additions & 20 deletions spec/happymapper_item_spec.rb
@@ -1,112 +1,112 @@
require File.dirname(__FILE__) + '/spec_helper.rb'
require 'spec_helper'

module Foo
class Bar; end
end

describe HappyMapper::Item do

describe "new instance" do
before do
@item = HappyMapper::Item.new(:foo, String, :tag => 'foobar')
end

it "should accept a name" do
@item.name.should == 'foo'
end

it 'should accept a type' do
@item.type.should == String
end

it 'should accept :tag as an option' do
@item.tag.should == 'foobar'
end

it "should have a method_name" do
@item.method_name.should == 'foo'
end
end

describe "#constant" do
it "should just use type if constant" do
item = HappyMapper::Item.new(:foo, String)
item.constant.should == String
end

it "should convert string type to constant" do
item = HappyMapper::Item.new(:foo, 'String')
item.constant.should == String
end

it "should convert string with :: to constant" do
item = HappyMapper::Item.new(:foo, 'Foo::Bar')
item.constant.should == Foo::Bar
end
end

describe "#method_name" do
it "should convert dashes to underscores" do
item = HappyMapper::Item.new(:'foo-bar', String, :tag => 'foobar')
item.method_name.should == 'foo_bar'
end
end

describe "#xpath" do
it "should default to tag" do
item = HappyMapper::Item.new(:foo, String, :tag => 'foobar')
item.xpath.should == 'foobar'
end

it "should prepend with .// if options[:deep] true" do
item = HappyMapper::Item.new(:foo, String, :tag => 'foobar', :deep => true)
item.xpath.should == './/foobar'
end

it "should prepend namespace if namespace exists" do
item = HappyMapper::Item.new(:foo, String, :tag => 'foobar')
item.namespace = 'http://example.com'
item.xpath.should == 'happymapper:foobar'
end
end

describe "typecasting" do
it "should work with Strings" do
item = HappyMapper::Item.new(:foo, String)
[21, '21'].each do |a|
item.typecast(a).should == '21'
end
end

it "should work with Integers" do
item = HappyMapper::Item.new(:foo, Integer)
[21, 21.0, '21'].each do |a|
item.typecast(a).should == 21
end
end

it "should work with Floats" do
item = HappyMapper::Item.new(:foo, Float)
[21, 21.0, '21'].each do |a|
item.typecast(a).should == 21.0
end
end

it "should work with Times" do
item = HappyMapper::Item.new(:foo, Time)
item.typecast('2000-01-01 01:01:01.123456').should == Time.local(2000, 1, 1, 1, 1, 1, 123456)
end

it "should work with Dates" do
item = HappyMapper::Item.new(:foo, Date)
item.typecast('2000-01-01').should == Date.new(2000, 1, 1)
end

it "should work with DateTimes" do
item = HappyMapper::Item.new(:foo, DateTime)
item.typecast('2000-01-01 00:00:00').should == DateTime.new(2000, 1, 1, 0, 0, 0)
end

it "should work with Boolean" do
item = HappyMapper::Item.new(:foo, Boolean)
item.typecast('false').should == false
Expand Down
4 changes: 2 additions & 2 deletions spec/happymapper_spec.rb
@@ -1,4 +1,4 @@
require File.dirname(__FILE__) + '/spec_helper.rb'
require 'spec_helper'
require 'pp'
require 'uri'
require 'support/models'
Expand Down Expand Up @@ -172,7 +172,7 @@ module Bar; class Baz; include HappyMapper; end; end
address.city.should == 'Oldenburg'
address.country.should == 'Germany'
end

it "should parse xml containing a has many relationship with primitive types" do
address = MultiStreetAddress.parse(fixture_file('multi_street_address.xml'), :single => true)
address.should_not be_nil
Expand Down
3 changes: 3 additions & 0 deletions spec/spec_helper.rb
@@ -1,3 +1,6 @@
require 'rubygems'
require 'bundler/setup'

require 'spec'
require File.expand_path('../../lib/happymapper', __FILE__)

Expand Down