woahdae-consumer 0.8.1 → 0.8.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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