badcarl-dm-googlebase 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -14,7 +14,6 @@ begin
14
14
  gem.add_dependency 'dm-validations', '>= 0.10.0'
15
15
  gem.add_dependency 'gdata'
16
16
  gem.add_dependency 'nokogiri'
17
- gem.add_dependency 'builder'
18
17
  gem.add_development_dependency 'dm-sweatshop', '>= 0.10.0'
19
18
  end
20
19
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.4
1
+ 0.0.5
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{dm-googlebase}
5
- s.version = "0.0.4"
5
+ s.version = "0.0.5"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Carl Porth"]
9
- s.date = %q{2009-07-29}
9
+ s.date = %q{2009-07-31}
10
10
  s.email = %q{badcarl@gmail.com}
11
11
  s.extra_rdoc_files = [
12
12
  "LICENSE",
@@ -33,7 +33,7 @@ Gem::Specification.new do |s|
33
33
  s.homepage = %q{http://github.com/badcarl/dm-googlebase}
34
34
  s.rdoc_options = ["--charset=UTF-8"]
35
35
  s.require_paths = ["lib"]
36
- s.rubygems_version = %q{1.3.3}
36
+ s.rubygems_version = %q{1.3.5}
37
37
  s.summary = %q{A DataMapper adapter for Google Base}
38
38
  s.test_files = [
39
39
  "spec/googlebase/adapter_spec.rb",
@@ -53,7 +53,6 @@ Gem::Specification.new do |s|
53
53
  s.add_runtime_dependency(%q<dm-validations>, [">= 0.10.0"])
54
54
  s.add_runtime_dependency(%q<gdata>, [">= 0"])
55
55
  s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
56
- s.add_runtime_dependency(%q<builder>, [">= 0"])
57
56
  s.add_development_dependency(%q<dm-sweatshop>, [">= 0.10.0"])
58
57
  else
59
58
  s.add_dependency(%q<dm-core>, [">= 0.10.0"])
@@ -61,7 +60,6 @@ Gem::Specification.new do |s|
61
60
  s.add_dependency(%q<dm-validations>, [">= 0.10.0"])
62
61
  s.add_dependency(%q<gdata>, [">= 0"])
63
62
  s.add_dependency(%q<nokogiri>, [">= 0"])
64
- s.add_dependency(%q<builder>, [">= 0"])
65
63
  s.add_dependency(%q<dm-sweatshop>, [">= 0.10.0"])
66
64
  end
67
65
  else
@@ -70,7 +68,6 @@ Gem::Specification.new do |s|
70
68
  s.add_dependency(%q<dm-validations>, [">= 0.10.0"])
71
69
  s.add_dependency(%q<gdata>, [">= 0"])
72
70
  s.add_dependency(%q<nokogiri>, [">= 0"])
73
- s.add_dependency(%q<builder>, [">= 0"])
74
71
  s.add_dependency(%q<dm-sweatshop>, [">= 0.10.0"])
75
72
  end
76
73
  end
@@ -1,7 +1,6 @@
1
1
  require 'dm-core'
2
2
  require 'gdata'
3
3
  require 'nokogiri'
4
- require 'builder'
5
4
 
6
5
  module DataMapper
7
6
  class Property
@@ -114,25 +113,24 @@ module GoogleBase
114
113
  end
115
114
 
116
115
  def build_xml(resource)
117
- result = ""
116
+ builder = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
118
117
 
119
- xml = Builder::XmlMarkup.new(:target => result)
120
- xml.instruct!
118
+ xml.entry(XML_ATTRIBUTES) do
119
+ resource.model.properties.each do |property|
120
+ value = property.get(resource)
121
+ next if value.blank?
121
122
 
122
- xml.entry(XML_ATTRIBUTES) do
123
- resource.model.properties.each do |property|
124
- value = property.get(resource)
125
- next if value.blank?
126
-
127
- if to_xml = property.options[:to_xml]
128
- to_xml.call(xml, value)
129
- elsif not property.options.has_key?(:to_xml)
130
- xml.tag! property.field, value
123
+ if to_xml = property.options[:to_xml]
124
+ to_xml.call(xml, value)
125
+ elsif not property.options.has_key?(:to_xml)
126
+ xml.send "#{property.field}_", value
127
+ end
131
128
  end
132
129
  end
130
+
133
131
  end
134
132
 
135
- result
133
+ builder.to_xml
136
134
  end
137
135
 
138
136
  private
@@ -5,8 +5,7 @@ require 'dm-validations'
5
5
  module GoogleBase
6
6
  ProductProperties = LazyModule.new do
7
7
  property :id, String, :key => true, :nullable => true, :length => 255, :from_xml => 'xmlns:id'
8
- property :title, String, :from_xml => 'xmlns:title', :length => 70,
9
- :to_xml => lambda { |xml, value| xml.title value }
8
+ property :title, String, :from_xml => 'xmlns:title', :length => 70
10
9
  property :description, DataMapper::Types::Text, :field => 'content', :from_xml => 'xmlns:content', :lazy => false
11
10
  property :link, URI, :from_xml => "xmlns:link[@rel='alternate']/@href",
12
11
  :to_xml => lambda { |xml, value| xml.link :href => value, :type => 'text/html', :rel => 'alternate' }
@@ -20,11 +19,11 @@ module GoogleBase
20
19
 
21
20
  # optional
22
21
  property :expires_at, DateTime, :field => 'g:expiration_date',
23
- :to_xml => lambda { |xml, value| xml.tag! 'g:expiration_date', value.strftime('%F') }
22
+ :to_xml => lambda { |xml, value| xml.send 'g:expiration_date', value.strftime('%F') }
24
23
  property :quantity, Integer, :field => 'g:quantity'
25
24
  property :payment_accepted, String,
26
25
  :from_xml => lambda { |entry| entry.xpath('./g:payment').map { |e| e.content }.join(',') },
27
- :to_xml => lambda { |xml, values| values.split(',').each { |value| xml.tag! 'g:payment_accepted', value } }
26
+ :to_xml => lambda { |xml, values| values.split(',').each { |value| xml.send 'g:payment_accepted', value } }
28
27
  property :item_language, String, :field => 'g:item_language'
29
28
  property :target_country, String, :field => 'g:target_country'
30
29
 
@@ -218,7 +218,7 @@ describe GoogleBase::Adapter do
218
218
 
219
219
  it "builds an element via :to_xml" do
220
220
  Item.property :some_link, String,
221
- :to_xml => lambda { |xml, value| xml.tag! 'some_link_here', :href => value, :type => 'text/html', :rel => 'alternate' }
221
+ :to_xml => lambda { |xml, value| xml.some_link_here :href => value, :type => 'text/html', :rel => 'alternate' }
222
222
  xml = build_xml :some_link => 'http://example.com/something'
223
223
 
224
224
  xml.at('some_link_here')['href'].should == 'http://example.com/something'
@@ -1,7 +1,7 @@
1
1
  Spec::Matchers.define :match_xml_document do |expected|
2
2
  match do |actual|
3
- actual_doc = Nokogiri::XML.parse(actual)
4
- expected_doc = Nokogiri::XML.parse(expected)
3
+ actual_doc = Nokogiri.XML(actual) { |cfg| cfg.noblanks }
4
+ expected_doc = Nokogiri.XML(expected) { |cfg| cfg.noblanks }
5
5
 
6
6
  actual_doc.encoding.should == expected_doc.encoding
7
7
  actual_doc.root.should match_xml_node(expected_doc.root)
@@ -41,10 +41,10 @@ class MatchXMLNode
41
41
 
42
42
  def failure_message_for_should
43
43
  @actual_part = @actual.dup
44
- @actual_part.text = nil if @actual_part.child && !@actual_part.child.text?
44
+ @actual_part.content = nil if @actual_part.child && !@actual_part.child.text?
45
45
 
46
46
  @expected_part = @expected.dup
47
- @expected_part.text = nil if @expected_part.child && !@expected_part.child.text?
47
+ @expected_part.content = nil if @expected_part.child && !@expected_part.child.text?
48
48
 
49
49
  "expected:\n#{@actual_part.inspect}\n to match node:\n#{@expected_part.inspect}\n but it didn't"
50
50
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: badcarl-dm-googlebase
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carl Porth
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-07-29 00:00:00 -07:00
12
+ date: 2009-07-31 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -62,16 +62,6 @@ dependencies:
62
62
  - !ruby/object:Gem::Version
63
63
  version: "0"
64
64
  version:
65
- - !ruby/object:Gem::Dependency
66
- name: builder
67
- type: :runtime
68
- version_requirement:
69
- version_requirements: !ruby/object:Gem::Requirement
70
- requirements:
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- version: "0"
74
- version:
75
65
  - !ruby/object:Gem::Dependency
76
66
  name: dm-sweatshop
77
67
  type: :development