badcarl-dm-googlebase 0.0.4 → 0.0.5

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/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