aforward-actionwebservice 2.3.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. data/.gitignore +3 -0
  2. data/Gemfile +5 -0
  3. data/History.txt +325 -0
  4. data/Manifest.txt +12 -0
  5. data/PostInstall.txt +2 -0
  6. data/README.rdoc +410 -0
  7. data/Rakefile +2 -0
  8. data/actionwebservice.gemspec +19 -0
  9. data/autotest/discover.rb +2 -0
  10. data/examples/googlesearch/README +143 -0
  11. data/examples/googlesearch/autoloading/google_search_api.rb +50 -0
  12. data/examples/googlesearch/autoloading/google_search_controller.rb +57 -0
  13. data/examples/googlesearch/delegated/google_search_service.rb +108 -0
  14. data/examples/googlesearch/delegated/search_controller.rb +7 -0
  15. data/examples/googlesearch/direct/google_search_api.rb +50 -0
  16. data/examples/googlesearch/direct/search_controller.rb +58 -0
  17. data/examples/metaWeblog/README +17 -0
  18. data/examples/metaWeblog/apis/blogger_api.rb +60 -0
  19. data/examples/metaWeblog/apis/blogger_service.rb +34 -0
  20. data/examples/metaWeblog/apis/meta_weblog_api.rb +67 -0
  21. data/examples/metaWeblog/apis/meta_weblog_service.rb +48 -0
  22. data/examples/metaWeblog/controllers/xmlrpc_controller.rb +16 -0
  23. data/generators/web_service/USAGE +28 -0
  24. data/generators/web_service/templates/api_definition.rb +5 -0
  25. data/generators/web_service/templates/controller.rb +8 -0
  26. data/generators/web_service/templates/functional_test.rb +19 -0
  27. data/generators/web_service/web_service_generator.rb +29 -0
  28. data/lib/action_web_service/api.rb +297 -0
  29. data/lib/action_web_service/base.rb +38 -0
  30. data/lib/action_web_service/casting.rb +149 -0
  31. data/lib/action_web_service/client/base.rb +28 -0
  32. data/lib/action_web_service/client/soap_client.rb +113 -0
  33. data/lib/action_web_service/client/xmlrpc_client.rb +58 -0
  34. data/lib/action_web_service/client.rb +3 -0
  35. data/lib/action_web_service/container/action_controller_container.rb +93 -0
  36. data/lib/action_web_service/container/delegated_container.rb +86 -0
  37. data/lib/action_web_service/container/direct_container.rb +69 -0
  38. data/lib/action_web_service/container.rb +3 -0
  39. data/lib/action_web_service/dispatcher/abstract.rb +207 -0
  40. data/lib/action_web_service/dispatcher/action_controller_dispatcher.rb +379 -0
  41. data/lib/action_web_service/dispatcher.rb +2 -0
  42. data/lib/action_web_service/invocation.rb +202 -0
  43. data/lib/action_web_service/protocol/abstract.rb +112 -0
  44. data/lib/action_web_service/protocol/discovery.rb +37 -0
  45. data/lib/action_web_service/protocol/soap_protocol/marshaler.rb +242 -0
  46. data/lib/action_web_service/protocol/soap_protocol.rb +176 -0
  47. data/lib/action_web_service/protocol/xmlrpc_protocol.rb +122 -0
  48. data/lib/action_web_service/protocol.rb +4 -0
  49. data/lib/action_web_service/scaffolding.rb +281 -0
  50. data/lib/action_web_service/struct.rb +64 -0
  51. data/lib/action_web_service/support/class_inheritable_options.rb +26 -0
  52. data/lib/action_web_service/support/signature_types.rb +226 -0
  53. data/lib/action_web_service/templates/scaffolds/layout.html.erb +65 -0
  54. data/lib/action_web_service/templates/scaffolds/methods.html.erb +6 -0
  55. data/lib/action_web_service/templates/scaffolds/parameters.html.erb +29 -0
  56. data/lib/action_web_service/templates/scaffolds/result.html.erb +30 -0
  57. data/lib/action_web_service/test_invoke.rb +110 -0
  58. data/lib/action_web_service/version.rb +10 -0
  59. data/lib/action_web_service.rb +50 -0
  60. data/lib/actionwebservice.rb +1 -0
  61. data/old/Rakefile +173 -0
  62. data/old/Rakefile2 +25 -0
  63. data/old/TODO +32 -0
  64. data/old/actionwebservice.gemspec +37 -0
  65. data/old/install.rb +30 -0
  66. data/old/setup.rb +1379 -0
  67. data/script/console +10 -0
  68. data/script/destroy +14 -0
  69. data/script/generate +14 -0
  70. data/test/abstract_client.rb +183 -0
  71. data/test/abstract_dispatcher.rb +548 -0
  72. data/test/abstract_unit.rb +39 -0
  73. data/test/api_test.rb +102 -0
  74. data/test/apis/auto_load_api.rb +3 -0
  75. data/test/apis/broken_auto_load_api.rb +2 -0
  76. data/test/base_test.rb +42 -0
  77. data/test/casting_test.rb +94 -0
  78. data/test/client_soap_test.rb +155 -0
  79. data/test/client_xmlrpc_test.rb +153 -0
  80. data/test/container_test.rb +73 -0
  81. data/test/dispatcher_action_controller_soap_test.rb +138 -0
  82. data/test/dispatcher_action_controller_xmlrpc_test.rb +59 -0
  83. data/test/fixtures/db_definitions/mysql.sql +8 -0
  84. data/test/fixtures/users.yml +12 -0
  85. data/test/gencov +3 -0
  86. data/test/invocation_test.rb +185 -0
  87. data/test/run +6 -0
  88. data/test/scaffolded_controller_test.rb +146 -0
  89. data/test/struct_test.rb +52 -0
  90. data/test/test_action_web_service.rb +11 -0
  91. data/test/test_actionwebservice.rb +11 -0
  92. data/test/test_helper.rb +3 -0
  93. data/test/test_invoke_test.rb +112 -0
  94. metadata +184 -0
@@ -0,0 +1,30 @@
1
+ <h4>Method Invocation Result for <em><%= @scaffold_service %>#<%= @scaffold_method.public_name %></em></h4>
2
+
3
+ <p>
4
+ Invocation took <tt><%= '%f' % @method_elapsed %></tt> seconds
5
+ </p>
6
+
7
+ <p>
8
+ <strong>Return Value:</strong><br />
9
+ <pre>
10
+ <%= h @method_return_value.inspect %>
11
+ </pre>
12
+ </p>
13
+
14
+ <p>
15
+ <strong>Request XML:</strong><br />
16
+ <pre>
17
+ <%= h @method_request_xml %>
18
+ </pre>
19
+ </p>
20
+
21
+ <p>
22
+ <strong>Response XML:</strong><br />
23
+ <pre>
24
+ <%= h @method_response_xml %>
25
+ </pre>
26
+ </p>
27
+
28
+ <p>
29
+ <%= link_to "Back", :action => @scaffold_action_name + '_method_params', :method => @scaffold_method.public_name, :service => @scaffold_service.name %>
30
+ </p>
@@ -0,0 +1,110 @@
1
+ require 'test/unit'
2
+
3
+ module Test # :nodoc:
4
+ module Unit # :nodoc:
5
+ class TestCase # :nodoc:
6
+ private
7
+ # invoke the specified API method
8
+ def invoke_direct(method_name, *args)
9
+ prepare_request('api', 'api', method_name, *args)
10
+ @controller.process(@request, @response)
11
+ decode_rpc_response
12
+ end
13
+ alias_method :invoke, :invoke_direct
14
+
15
+ # invoke the specified API method on the specified service
16
+ def invoke_delegated(service_name, method_name, *args)
17
+ prepare_request(service_name.to_s, service_name, method_name, *args)
18
+ @controller.process(@request, @response)
19
+ decode_rpc_response
20
+ end
21
+
22
+ # invoke the specified layered API method on the correct service
23
+ def invoke_layered(service_name, method_name, *args)
24
+ prepare_request('api', service_name, method_name, *args)
25
+ @controller.process(@request, @response)
26
+ decode_rpc_response
27
+ end
28
+
29
+ # ---------------------- internal ---------------------------
30
+
31
+ def prepare_request(action, service_name, api_method_name, *args)
32
+ @request.recycle!
33
+ @request.request_parameters['action'] = action
34
+ @request.env['REQUEST_METHOD'] = 'POST'
35
+ @request.env['HTTP_CONTENT_TYPE'] = 'text/xml'
36
+ @request.env['RAW_POST_DATA'] = encode_rpc_call(service_name, api_method_name, *args)
37
+ case protocol
38
+ when ActionWebService::Protocol::Soap::SoapProtocol
39
+ soap_action = "/#{@controller.controller_name}/#{service_name}/#{public_method_name(service_name, api_method_name)}"
40
+ @request.env['HTTP_SOAPACTION'] = soap_action
41
+ when ActionWebService::Protocol::XmlRpc::XmlRpcProtocol
42
+ @request.env.delete('HTTP_SOAPACTION')
43
+ end
44
+ end
45
+
46
+ def encode_rpc_call(service_name, api_method_name, *args)
47
+ case @controller.web_service_dispatching_mode
48
+ when :direct
49
+ api = @controller.class.web_service_api
50
+ when :delegated, :layered
51
+ api = @controller.web_service_object(service_name.to_sym).class.web_service_api
52
+ end
53
+ protocol.register_api(api)
54
+ method = api.api_methods[api_method_name.to_sym]
55
+ raise ArgumentError, "wrong number of arguments for rpc call (#{args.length} for #{method.expects.length})" if method && method.expects && args.length != method.expects.length
56
+ protocol.encode_request(public_method_name(service_name, api_method_name), args.dup, method.expects)
57
+ end
58
+
59
+ def decode_rpc_response
60
+ public_method_name, return_value = protocol.decode_response(@response.body)
61
+ exception = is_exception?(return_value)
62
+ raise exception if exception
63
+ return_value
64
+ end
65
+
66
+ def public_method_name(service_name, api_method_name)
67
+ public_name = service_api(service_name).public_api_method_name(api_method_name)
68
+ if @controller.web_service_dispatching_mode == :layered && protocol.is_a?(ActionWebService::Protocol::XmlRpc::XmlRpcProtocol)
69
+ '%s.%s' % [service_name.to_s, public_name]
70
+ else
71
+ public_name
72
+ end
73
+ end
74
+
75
+ def service_api(service_name)
76
+ case @controller.web_service_dispatching_mode
77
+ when :direct
78
+ @controller.class.web_service_api
79
+ when :delegated, :layered
80
+ @controller.web_service_object(service_name.to_sym).class.web_service_api
81
+ end
82
+ end
83
+
84
+ def protocol
85
+ if @protocol.nil?
86
+ @protocol ||= ActionWebService::Protocol::Soap::SoapProtocol.create(@controller)
87
+ else
88
+ case @protocol
89
+ when :xmlrpc
90
+ @protocol = ActionWebService::Protocol::XmlRpc::XmlRpcProtocol.create(@controller)
91
+ when :soap
92
+ @protocol = ActionWebService::Protocol::Soap::SoapProtocol.create(@controller)
93
+ else
94
+ @protocol
95
+ end
96
+ end
97
+ end
98
+
99
+ def is_exception?(obj)
100
+ case protocol
101
+ when :soap, ActionWebService::Protocol::Soap::SoapProtocol
102
+ (obj.respond_to?(:detail) && obj.detail.respond_to?(:cause) && \
103
+ obj.detail.cause.is_a?(Exception)) ? obj.detail.cause : nil
104
+ when :xmlrpc, ActionWebService::Protocol::XmlRpc::XmlRpcProtocol
105
+ obj.is_a?(XMLRPC::FaultException) ? obj : nil
106
+ end
107
+ end
108
+ end
109
+ end
110
+ end
@@ -0,0 +1,10 @@
1
+ module ActionWebService
2
+ module VERSION #:nodoc:
3
+ MAJOR = 2
4
+ MINOR = 3
5
+ TINY = 8
6
+ BUILD = 1
7
+
8
+ STRING = [MAJOR, MINOR, TINY, BUILD].join('.')
9
+ end
10
+ end
@@ -0,0 +1,50 @@
1
+ $:.unshift(File.dirname(__FILE__)) unless
2
+ $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
+
4
+ module ActionWebService
5
+ VERSION = '2.3.8'
6
+ end
7
+
8
+ begin
9
+ require 'active_support'
10
+ require 'action_controller'
11
+ require 'active_record'
12
+ rescue LoadError
13
+ require 'rubygems'
14
+ gem 'activesupport', '>= 2.3.0'
15
+ gem 'actionpack', '>= 2.3.0'
16
+ gem 'activerecord', '>= 2.3.0'
17
+ end
18
+
19
+ $:.unshift(File.dirname(__FILE__) + "/action_web_service/vendor/")
20
+
21
+ require 'action_web_service/support/class_inheritable_options'
22
+ require 'action_web_service/support/signature_types'
23
+ require 'action_web_service/base'
24
+ require 'action_web_service/client'
25
+ require 'action_web_service/invocation'
26
+ require 'action_web_service/api'
27
+ require 'action_web_service/casting'
28
+ require 'action_web_service/struct'
29
+ require 'action_web_service/container'
30
+ require 'action_web_service/protocol'
31
+ require 'action_web_service/dispatcher'
32
+ require 'action_web_service/scaffolding'
33
+
34
+ ActionWebService::Base.class_eval do
35
+ include ActionWebService::Container::Direct
36
+ include ActionWebService::Invocation
37
+ end
38
+
39
+ ActionController::Base.class_eval do
40
+ include ActionWebService::Protocol::Discovery
41
+ include ActionWebService::Protocol::Soap
42
+ include ActionWebService::Protocol::XmlRpc
43
+ include ActionWebService::Container::Direct
44
+ include ActionWebService::Container::Delegated
45
+ include ActionWebService::Container::ActionController
46
+ include ActionWebService::Invocation
47
+ include ActionWebService::Dispatcher
48
+ include ActionWebService::Dispatcher::ActionController
49
+ include ActionWebService::Scaffolding
50
+ end
@@ -0,0 +1 @@
1
+ require 'action_web_service'
data/old/Rakefile ADDED
@@ -0,0 +1,173 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'rake/testtask'
4
+ require 'rake/rdoctask'
5
+ require 'rake/packagetask'
6
+ require 'rake/gempackagetask'
7
+ require 'rake/contrib/rubyforgepublisher'
8
+ require 'fileutils'
9
+ require File.join(File.dirname(__FILE__), 'lib', 'action_web_service', 'version')
10
+
11
+ PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
12
+ PKG_NAME = 'actionwebservice'
13
+ PKG_VERSION = ActionWebService::VERSION::STRING + PKG_BUILD
14
+ PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
15
+ PKG_DESTINATION = ENV["RAILS_PKG_DESTINATION"] || "../#{PKG_NAME}"
16
+
17
+ RELEASE_NAME = "REL #{PKG_VERSION}"
18
+
19
+ RUBY_FORGE_PROJECT = "aws"
20
+ RUBY_FORGE_USER = "webster132"
21
+
22
+ desc "Default Task"
23
+ task :default => [ :test ]
24
+
25
+
26
+ # Run the unit tests
27
+ Rake::TestTask.new { |t|
28
+ t.libs << "test"
29
+ t.test_files = Dir['test/*_test.rb']
30
+ t.verbose = true
31
+ }
32
+
33
+ SCHEMA_PATH = File.join(File.dirname(__FILE__), *%w(test fixtures db_definitions))
34
+
35
+ desc 'Build the MySQL test database'
36
+ task :build_database do
37
+ %x( mysqladmin -uroot create actionwebservice_unittest )
38
+ %x( mysql -uroot actionwebservice_unittest < #{File.join(SCHEMA_PATH, 'mysql.sql')} )
39
+ end
40
+
41
+
42
+ # Generate the RDoc documentation
43
+ Rake::RDocTask.new { |rdoc|
44
+ rdoc.rdoc_dir = 'doc'
45
+ rdoc.title = "Action Web Service -- Web services for Action Pack"
46
+ rdoc.options << '--line-numbers' << '--inline-source'
47
+ rdoc.options << '--charset' << 'utf-8'
48
+ rdoc.template = "#{ENV['template']}.rb" if ENV['template']
49
+ rdoc.rdoc_files.include('README')
50
+ rdoc.rdoc_files.include('CHANGELOG')
51
+ rdoc.rdoc_files.include('lib/action_web_service.rb')
52
+ rdoc.rdoc_files.include('lib/action_web_service/*.rb')
53
+ rdoc.rdoc_files.include('lib/action_web_service/api/*.rb')
54
+ rdoc.rdoc_files.include('lib/action_web_service/client/*.rb')
55
+ rdoc.rdoc_files.include('lib/action_web_service/container/*.rb')
56
+ rdoc.rdoc_files.include('lib/action_web_service/dispatcher/*.rb')
57
+ rdoc.rdoc_files.include('lib/action_web_service/protocol/*.rb')
58
+ rdoc.rdoc_files.include('lib/action_web_service/support/*.rb')
59
+ }
60
+
61
+
62
+ # Create compressed packages
63
+ spec = Gem::Specification.new do |s|
64
+ s.platform = Gem::Platform::RUBY
65
+ s.name = PKG_NAME
66
+ s.summary = "Web service support for Action Pack."
67
+ s.description = %q{Adds WSDL/SOAP and XML-RPC web service support to Action Pack}
68
+ s.version = PKG_VERSION
69
+
70
+ s.author = "Leon Breedt, Kent Sibilev"
71
+ s.email = "bitserf@gmail.com, ksibilev@yahoo.com"
72
+ s.rubyforge_project = "aws"
73
+ s.homepage = "http://www.rubyonrails.org"
74
+
75
+ s.add_dependency('actionpack', '> 2.3.0' + PKG_BUILD)
76
+ s.add_dependency('activerecord', '> 2.3.0' + PKG_BUILD)
77
+
78
+ s.has_rdoc = true
79
+ s.requirements << 'none'
80
+ s.require_path = 'lib'
81
+ s.autorequire = 'actionwebservice'
82
+
83
+ s.files = [ "Rakefile", "setup.rb", "README", "TODO", "CHANGELOG", "MIT-LICENSE" ]
84
+ s.files = s.files + Dir.glob( "examples/**/*" ).delete_if { |item| item.match( /\.(svn|git)/ ) }
85
+ s.files = s.files + Dir.glob( "lib/**/*" ).delete_if { |item| item.match( /\.(svn|git)/ ) }
86
+ s.files = s.files + Dir.glob( "test/**/*" ).delete_if { |item| item.match( /\.(svn|git)/ ) }
87
+ s.files = s.files + Dir.glob( "generators/**/*" ).delete_if { |item| item.match( /\.(svn|git)/ ) }
88
+ end
89
+ Rake::GemPackageTask.new(spec) do |p|
90
+ p.gem_spec = spec
91
+ p.need_tar = true
92
+ p.need_zip = true
93
+ end
94
+
95
+
96
+ # Publish beta gem
97
+ desc "Publish the API documentation"
98
+ task :pgem => [:package] do
99
+ Rake::SshFilePublisher.new("davidhh@wrath.rubyonrails.org", "public_html/gems/gems", "pkg", "#{PKG_FILE_NAME}.gem").upload
100
+ `ssh davidhh@wrath.rubyonrails.org './gemupdate.sh'`
101
+ end
102
+
103
+ # Publish documentation
104
+ desc "Publish the API documentation"
105
+ task :pdoc => [:rdoc] do
106
+ Rake::SshDirPublisher.new("davidhh@wrath.rubyonrails.org", "public_html/aws", "doc").upload
107
+ end
108
+
109
+
110
+ def each_source_file(*args)
111
+ prefix, includes, excludes, open_file = args
112
+ prefix ||= File.dirname(__FILE__)
113
+ open_file = true if open_file.nil?
114
+ includes ||= %w[lib\/action_web_service\.rb$ lib\/action_web_service\/.*\.rb$]
115
+ excludes ||= %w[lib\/action_web_service\/vendor]
116
+ Find.find(prefix) do |file_name|
117
+ next if file_name =~ /\.svn/
118
+ file_name.gsub!(/^\.\//, '')
119
+ continue = false
120
+ includes.each do |inc|
121
+ if file_name.match(/#{inc}/)
122
+ continue = true
123
+ break
124
+ end
125
+ end
126
+ next unless continue
127
+ excludes.each do |exc|
128
+ if file_name.match(/#{exc}/)
129
+ continue = false
130
+ break
131
+ end
132
+ end
133
+ next unless continue
134
+ if open_file
135
+ File.open(file_name) do |f|
136
+ yield file_name, f
137
+ end
138
+ else
139
+ yield file_name
140
+ end
141
+ end
142
+ end
143
+
144
+ desc "Count lines of the AWS source code"
145
+ task :lines do
146
+ total_lines = total_loc = 0
147
+ puts "Per File:"
148
+ each_source_file do |file_name, f|
149
+ file_lines = file_loc = 0
150
+ while line = f.gets
151
+ file_lines += 1
152
+ next if line =~ /^\s*$/
153
+ next if line =~ /^\s*#/
154
+ file_loc += 1
155
+ end
156
+ puts " #{file_name}: Lines #{file_lines}, LOC #{file_loc}"
157
+ total_lines += file_lines
158
+ total_loc += file_loc
159
+ end
160
+ puts "Total:"
161
+ puts " Lines #{total_lines}, LOC #{total_loc}"
162
+ end
163
+
164
+ desc "Publish the release files to RubyForge."
165
+ task :release => [ :package ] do
166
+ require 'rubyforge'
167
+
168
+ packages = %w( gem tgz zip ).collect{ |ext| "pkg/#{PKG_NAME}-#{PKG_VERSION}.#{ext}" }
169
+
170
+ rubyforge = RubyForge.new
171
+ rubyforge.login
172
+ rubyforge.add_release(PKG_NAME, PKG_NAME, "REL #{PKG_VERSION}", *packages)
173
+ end
data/old/Rakefile2 ADDED
@@ -0,0 +1,25 @@
1
+ require 'rubygems'
2
+ gem 'hoe', '>= 2.1.0'
3
+ require 'hoe'
4
+ require 'fileutils'
5
+ require './lib/action_web_service'
6
+
7
+ Hoe.plugin :newgem
8
+ # Hoe.plugin :website
9
+ # Hoe.plugin :cucumberfeatures
10
+
11
+ # Generate all the Rake tasks
12
+ # Run 'rake -T' to see list of generated tasks (from gem root directory)
13
+ $hoe = Hoe.spec 'actionwebservice' do
14
+ self.developer 'Andrew Forward', 'andrew.forward@cenx.com'
15
+ self.summary="Fork of datanoise-actionwebservice to enable plugin with Rails 2.3.8"
16
+ self.post_install_message = 'PostInstall.txt'
17
+ self.extra_deps = [['rails','>= 2.3.0']]
18
+ end
19
+
20
+ require 'newgem/tasks'
21
+ Dir['tasks/**/*.rake'].each { |t| load t }
22
+
23
+ # TODO - want other tests/tasks run by default? Add them to the list
24
+ # remove_task :default
25
+ # task :default => [:spec, :features]
data/old/TODO ADDED
@@ -0,0 +1,32 @@
1
+ = Post-1.0
2
+ - Document/Literal SOAP support
3
+ - URL-based dispatching, URL identifies method
4
+
5
+ - Add :rest dispatching mode, a.l.a. Backpack API. Clean up dispatching
6
+ in general. Support vanilla XML-format as a "Rails" protocol?
7
+ XML::Simple deserialization into params?
8
+
9
+ web_service_dispatching_mode :rest
10
+
11
+ def method1(params)
12
+ end
13
+
14
+ def method2(params)
15
+ end
16
+
17
+
18
+ /ws/method1
19
+ <xml>
20
+ /ws/method2
21
+ <yaml>
22
+
23
+ - Allow locking down a controller to only accept messages for a particular
24
+ protocol. This will allow us to generate fully conformant error messages
25
+ in cases where we currently fudge it if we don't know the protocol.
26
+
27
+ - Allow AWS user to participate in typecasting, so they can centralize
28
+ workarounds for buggy input in one place
29
+
30
+ = Refactoring
31
+ - Don't have clean way to go from SOAP Class object to the xsd:NAME type
32
+ string -- NaHi possibly looking at remedying this situation
@@ -0,0 +1,37 @@
1
+ # -*- encoding: utf-8 -*-
2
+ Gem::Specification.new do |s|
3
+
4
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
5
+ s.author =
6
+ s.date = %q{2010-12-14}
7
+ s.description = %q{Geokit Premier Gem}
8
+ s.email = ["aforward@gmail.com"]
9
+ s.extra_rdoc_files = ["Manifest.txt", "README.rdoc"]
10
+
11
+ s.files = ["Manifest.txt", "README.rdoc", "Rakefile" ]
12
+ s.files = s.files +
13
+ ["examples/googlesearch", "examples/googlesearch/autoloading", "examples/googlesearch/autoloading/google_search_api.rb", "examples/googlesearch/autoloading/google_search_controller.rb", "examples/googlesearch/delegated", "examples/googlesearch/delegated/google_search_service.rb", "examples/googlesearch/delegated/search_controller.rb", "examples/googlesearch/direct", "examples/googlesearch/direct/google_search_api.rb", "examples/googlesearch/direct/search_controller.rb", "examples/googlesearch/README", "examples/metaWeblog", "examples/metaWeblog/apis", "examples/metaWeblog/apis/blogger_api.rb", "examples/metaWeblog/apis/blogger_service.rb", "examples/metaWeblog/apis/meta_weblog_api.rb", "examples/metaWeblog/apis/meta_weblog_service.rb", "examples/metaWeblog/controllers", "examples/metaWeblog/controllers/xmlrpc_controller.rb", "examples/metaWeblog/README"]
14
+ s.files = s.files +
15
+ ["lib/action_web_service", "lib/action_web_service/api.rb", "lib/action_web_service/base.rb", "lib/action_web_service/casting.rb", "lib/action_web_service/client", "lib/action_web_service/client/base.rb", "lib/action_web_service/client/soap_client.rb", "lib/action_web_service/client/xmlrpc_client.rb", "lib/action_web_service/client.rb", "lib/action_web_service/container", "lib/action_web_service/container/action_controller_container.rb", "lib/action_web_service/container/delegated_container.rb", "lib/action_web_service/container/direct_container.rb", "lib/action_web_service/container.rb", "lib/action_web_service/dispatcher", "lib/action_web_service/dispatcher/abstract.rb", "lib/action_web_service/dispatcher/action_controller_dispatcher.rb", "lib/action_web_service/dispatcher.rb", "lib/action_web_service/invocation.rb", "lib/action_web_service/protocol", "lib/action_web_service/protocol/abstract.rb", "lib/action_web_service/protocol/discovery.rb", "lib/action_web_service/protocol/soap_protocol", "lib/action_web_service/protocol/soap_protocol/marshaler.rb", "lib/action_web_service/protocol/soap_protocol.rb", "lib/action_web_service/protocol/xmlrpc_protocol.rb", "lib/action_web_service/protocol.rb", "lib/action_web_service/scaffolding.rb", "lib/action_web_service/struct.rb", "lib/action_web_service/support", "lib/action_web_service/support/class_inheritable_options.rb", "lib/action_web_service/support/signature_types.rb", "lib/action_web_service/templates", "lib/action_web_service/templates/scaffolds", "lib/action_web_service/templates/scaffolds/layout.html.erb", "lib/action_web_service/templates/scaffolds/methods.html.erb", "lib/action_web_service/templates/scaffolds/parameters.html.erb", "lib/action_web_service/templates/scaffolds/result.html.erb", "lib/action_web_service/test_invoke.rb", "lib/action_web_service/version.rb", "lib/action_web_service.rb", "lib/actionwebservice.rb"]
16
+ s.files = s.files +
17
+ ["test/abstract_client.rb", "test/abstract_dispatcher.rb", "test/abstract_unit.rb", "test/api_test.rb", "test/apis", "test/apis/auto_load_api.rb", "test/apis/broken_auto_load_api.rb", "test/base_test.rb", "test/casting_test.rb", "test/client_soap_test.rb", "test/client_xmlrpc_test.rb", "test/container_test.rb", "test/dispatcher_action_controller_soap_test.rb", "test/dispatcher_action_controller_xmlrpc_test.rb", "test/fixtures", "test/fixtures/db_definitions", "test/fixtures/db_definitions/mysql.sql", "test/fixtures/users.yml", "test/gencov", "test/invocation_test.rb", "test/run", "test/scaffolded_controller_test.rb", "test/struct_test.rb", "test/test_invoke_test.rb"]
18
+ s.files = s.files +
19
+ ["generators/web_service", "generators/web_service/templates", "generators/web_service/templates/api_definition.rb", "generators/web_service/templates/controller.rb", "generators/web_service/templates/functional_test.rb", "generators/web_service/USAGE", "generators/web_service/web_service_generator.rb"]
20
+
21
+
22
+ s.has_rdoc = true
23
+ s.homepage = %q{http://github.com/aforward/actionwebservice}
24
+ s.rdoc_options = ["--main", "README.markdown"]
25
+ s.require_paths = ["lib"]
26
+ s.rubygems_version = %q{1.3.5}
27
+ s.summary = %q{none}
28
+ s.test_files = ["spec/geocoder_spec.rb", "test/test_base_geocoder.rb", "test/test_bounds.rb", "test/test_ca_geocoder.rb", "test/test_geoloc.rb",
29
+ "test/test_geoplugin_geocoder.rb", "test/test_google_geocoder.rb", "test/test_google_reverse_geocoder.rb",
30
+ "test/test_inflector.rb", "test/test_ipgeocoder.rb", "test/test_latlng.rb", "test/test_multi_geocoder.rb",
31
+ "test/test_multi_ip_geocoder.rb", "test/test_us_geocoder.rb", "test/test_yahoo_geocoder.rb"]
32
+
33
+ if s.respond_to? :specification_version then
34
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
35
+ s.specification_version = 2
36
+ end
37
+ end
data/old/install.rb ADDED
@@ -0,0 +1,30 @@
1
+ require 'rbconfig'
2
+ require 'find'
3
+ require 'ftools'
4
+
5
+ include Config
6
+
7
+ # this was adapted from rdoc's install.rb by way of Log4r
8
+
9
+ $sitedir = CONFIG["sitelibdir"]
10
+ unless $sitedir
11
+ version = CONFIG["MAJOR"] + "." + CONFIG["MINOR"]
12
+ $libdir = File.join(CONFIG["libdir"], "ruby", version)
13
+ $sitedir = $:.find {|x| x =~ /site_ruby/ }
14
+ if !$sitedir
15
+ $sitedir = File.join($libdir, "site_ruby")
16
+ elsif $sitedir !~ Regexp.quote(version)
17
+ $sitedir = File.join($sitedir, version)
18
+ end
19
+ end
20
+
21
+ # the acual gruntwork
22
+ Dir.chdir("lib")
23
+
24
+ Find.find("action_web_service", "action_web_service.rb") { |f|
25
+ if f[-3..-1] == ".rb"
26
+ File::install(f, File.join($sitedir, *f.split(/\//)), 0644, true)
27
+ else
28
+ File::makedirs(File.join($sitedir, *f.split(/\//)))
29
+ end
30
+ }