woahdae-consumer 0.8.1 → 0.8.2

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.
@@ -6,6 +6,7 @@ README.rdoc
6
6
  Rakefile
7
7
  app_generators/consumer/USAGE
8
8
  app_generators/consumer/consumer_generator.rb
9
+ app_generators/consumer/templates/.gitignore
9
10
  app_generators/consumer/templates/LICENSE
10
11
  app_generators/consumer/templates/README.rdoc
11
12
  app_generators/consumer/templates/Rakefile
@@ -38,6 +39,7 @@ examples/active_record/xml/book.xml
38
39
  examples/active_record/xml/book_with_contributors.xml
39
40
  examples/active_record/xml/contributor.xml
40
41
  examples/active_record/xml/contributor_with_books.xml
42
+ examples/shipping/.gitignore
41
43
  examples/shipping/environment.rb
42
44
  examples/shipping/rate.rb
43
45
  examples/shipping/shipping.yml.sample
@@ -48,8 +50,6 @@ lib/consumer.rb
48
50
  lib/consumer/helper.rb
49
51
  lib/consumer/mapping.rb
50
52
  lib/consumer/request.rb
51
- rails_generators/request/USAGE
52
- rails_generators/request/request_generator.rb
53
53
  script/console
54
54
  script/destroy
55
55
  script/generate
@@ -63,9 +63,7 @@ spec/xml/rate_response.xml
63
63
  spec/xml/rate_response_error.xml
64
64
  tasks/rspec.rake
65
65
  test/test_consumer_generator.rb
66
- test/test_consumer_plugin_request_generator.rb
67
66
  test/test_generator_helper.rb
68
- test/test_rails_request_generator.rb
69
67
  website/index.html
70
68
  website/index.txt
71
69
  website/javascripts/rounded_corners_lite.inc.js
@@ -1,10 +1,12 @@
1
+ # -*- encoding: utf-8 -*-
2
+
1
3
  Gem::Specification.new do |s|
2
4
  s.name = %q{consumer}
3
- s.version = "0.8.1"
5
+ s.version = "0.8.2"
4
6
 
5
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
6
8
  s.authors = ["Woody Peterson"]
7
- s.date = %q{2009-01-29}
9
+ s.date = %q{2009-02-05}
8
10
  s.default_executable = %q{consumer}
9
11
  s.description = %q{Consumer is a library for consuming xml resources via Builder, libxml, and some request sending / response marshaling glue. It comes with an app generator that creates an empty ready-for-rails gem that itself comes with a generator for making the request/response classes, config files, and specs (see script/generate after creating a new Consumer project).}
10
12
  s.email = ["woody.peterson@gmail.com"]
@@ -17,32 +19,32 @@ Gem::Specification.new do |s|
17
19
  s.rdoc_options = ["--main", "README.rdoc"]
18
20
  s.require_paths = ["lib"]
19
21
  s.rubyforge_project = %q{consumer}
20
- s.rubygems_version = %q{1.2.0}
22
+ s.rubygems_version = %q{1.3.1}
21
23
  s.summary = %q{Consumer is a library for consuming xml resources via Builder, libxml, and some request sending / response marshaling glue}
22
- s.test_files = ["test/test_consumer_generator.rb", "test/test_consumer_plugin_request_generator.rb", "test/test_generator_helper.rb", "test/test_rails_request_generator.rb"]
24
+ s.test_files = ["test/test_consumer_generator.rb", "test/test_generator_helper.rb"]
23
25
 
24
26
  if s.respond_to? :specification_version then
25
27
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
26
28
  s.specification_version = 2
27
29
 
28
- if current_version >= 3 then
30
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
29
31
  s.add_runtime_dependency(%q<activesupport>, [">= 2.0.2"])
30
32
  s.add_runtime_dependency(%q<libxml-ruby>, [">= 0.8.3"])
31
33
  s.add_runtime_dependency(%q<builder>, [">= 2.1.2"])
32
- s.add_development_dependency(%q<newgem>, [">= 1.0.7"])
34
+ s.add_development_dependency(%q<newgem>, [">= 1.1.0"])
33
35
  s.add_development_dependency(%q<hoe>, [">= 1.8.0"])
34
36
  else
35
37
  s.add_dependency(%q<activesupport>, [">= 2.0.2"])
36
38
  s.add_dependency(%q<libxml-ruby>, [">= 0.8.3"])
37
39
  s.add_dependency(%q<builder>, [">= 2.1.2"])
38
- s.add_dependency(%q<newgem>, [">= 1.0.7"])
40
+ s.add_dependency(%q<newgem>, [">= 1.1.0"])
39
41
  s.add_dependency(%q<hoe>, [">= 1.8.0"])
40
42
  end
41
43
  else
42
44
  s.add_dependency(%q<activesupport>, [">= 2.0.2"])
43
45
  s.add_dependency(%q<libxml-ruby>, [">= 0.8.3"])
44
46
  s.add_dependency(%q<builder>, [">= 2.1.2"])
45
- s.add_dependency(%q<newgem>, [">= 1.0.7"])
47
+ s.add_dependency(%q<newgem>, [">= 1.1.0"])
46
48
  s.add_dependency(%q<hoe>, [">= 1.8.0"])
47
49
  end
48
50
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec'
2
2
  require 'environment'
3
3
 
4
- # Very broad tests to see ROXML working with Active Record
4
+ # Very broad tests to see Consumer working with Active Record
5
5
 
6
6
  describe "ROXML in ActiveRecord" do
7
7
  before(:all) do
@@ -20,9 +20,9 @@ class String
20
20
  end
21
21
 
22
22
  module Consumer
23
- VERSION = '0.8.1'
23
+ VERSION = '0.8.2'
24
24
  end
25
25
 
26
26
  require 'consumer/mapping'
27
27
  require 'consumer/request'
28
- require 'consumer/helper'
28
+ require 'consumer/helper'
@@ -19,7 +19,7 @@ module Consumer::Mapping
19
19
  # === Returns
20
20
  # Nothing in particular
21
21
  def association_from_xml(xml, association, klass = nil)
22
- klass ||= association.to_s.capitalize.singularize.constantize
22
+ klass ||= association.to_s.capitalize.singularize.camelcase.constantize
23
23
 
24
24
  association_instance = klass.from_xml(xml)
25
25
  return if association_instance.nil?
@@ -103,7 +103,7 @@ module Consumer::Mapping
103
103
 
104
104
  map[:associations].each do |association|
105
105
  # TODO: spec
106
- instance.association_from_xml(xml, association)
106
+ instance.association_from_xml(node.to_s, association)
107
107
  end
108
108
 
109
109
  b = map[:block]
@@ -1,6 +1,7 @@
1
1
  require 'net/http'
2
2
  require 'net/https'
3
3
  require 'yaml'
4
+ require 'ruby-debug'
4
5
 
5
6
  ##
6
7
  # === Class Attrubutes
@@ -69,6 +70,20 @@ class Consumer::Request
69
70
  include Consumer
70
71
 
71
72
  class << self
73
+ def basic_authentication(*args)
74
+ @request_user, @request_pass = args if !args.empty?
75
+ end
76
+
77
+ def request_user(user = nil)
78
+ @request_user = user if user
79
+ @request_user
80
+ end
81
+
82
+ def request_pass(pass = nil)
83
+ @request_pass = pass if pass
84
+ @request_pass
85
+ end
86
+
72
87
  def url(url = nil)
73
88
  @url = url if url
74
89
  @url
@@ -148,18 +163,18 @@ class Consumer::Request
148
163
 
149
164
  @request_xml = self.to_xml_etc
150
165
 
151
- http, uri = Helper.http_from_url(self.url)
152
166
  head = defined?(self.headers) ? self.headers : {}
153
-
154
- puts "\n##### Request to #{url}:\n\n#{@request_xml}\n" if $DEBUG
155
- debugger if $POST_DEBUGGER
156
- resp = http.post(uri.request_uri, @request_xml, head)
157
-
158
- if resp.response.code == "302" # moved
159
- puts "\n##### Redirected to #{resp['Location']}\n" if $DEBUG
160
- http, uri = Helper.http_from_url(resp['Location'])
161
- resp = http.post(uri.request_uri, @request_xml, head)
162
- end
167
+
168
+ resp = nil
169
+
170
+ uri = URI.parse self.url
171
+
172
+ Net::HTTP.start(uri.host,uri.port) {|http|
173
+ req = Net::HTTP::Get.new(uri.request_uri)
174
+ req.basic_auth request_user, request_pass if request_user and request_pass
175
+ req.body = @request_xml
176
+ resp = http.request(req)
177
+ }
163
178
 
164
179
  @response_xml = resp.body
165
180
  puts "\n##### Response:\n\n#{Helper.tidy(@response_xml)}\n" if $DEBUG
@@ -168,7 +183,7 @@ class Consumer::Request
168
183
 
169
184
  return response_class.from_xml(@response_xml)
170
185
  end
171
-
186
+
172
187
  def self.do(args = {})
173
188
  self.new(args).do
174
189
  end
@@ -198,6 +213,14 @@ class Consumer::Request
198
213
  raise "Invalid response_class; see docs for naming conventions etc" if !ret
199
214
  return Object.const_get(ret)
200
215
  end
216
+
217
+ def request_user
218
+ self.class.request_user
219
+ end
220
+
221
+ def request_pass
222
+ self.class.request_pass
223
+ end
201
224
 
202
225
  def error_paths
203
226
  self.class.error_paths
@@ -218,7 +241,7 @@ class Consumer::Request
218
241
  def defaults
219
242
  self.class.defaults
220
243
  end
221
-
244
+
222
245
  def config_root
223
246
  if defined?(RAILS_ROOT)
224
247
  RAILS_ROOT + "/config"
@@ -277,4 +300,4 @@ private
277
300
  hash.each {|k,v| hash[k.to_sym] = v;hash.delete(k.to_s)}
278
301
  end
279
302
  end
280
- end
303
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: woahdae-consumer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Woody Peterson
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-01-29 00:00:00 -08:00
12
+ date: 2009-02-05 00:00:00 -08:00
13
13
  default_executable: consumer
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -46,7 +46,7 @@ dependencies:
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 1.0.7
49
+ version: 1.1.0
50
50
  version:
51
51
  - !ruby/object:Gem::Dependency
52
52
  name: hoe
@@ -175,6 +175,4 @@ specification_version: 2
175
175
  summary: Consumer is a library for consuming xml resources via Builder, libxml, and some request sending / response marshaling glue
176
176
  test_files:
177
177
  - test/test_consumer_generator.rb
178
- - test/test_consumer_plugin_request_generator.rb
179
178
  - test/test_generator_helper.rb
180
- - test/test_rails_request_generator.rb