postini 0.0.6 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. data/History.txt +4 -0
  2. data/Manifest.txt +12 -26
  3. data/README.txt +11 -4
  4. data/Rakefile +27 -4
  5. data/features/development.feature +13 -0
  6. data/features/step_definitions/common_steps.rb +172 -0
  7. data/features/support/common.rb +29 -0
  8. data/features/support/env.rb +6 -0
  9. data/features/support/matchers.rb +11 -0
  10. data/lib/postini/automated_batch_service.rb +464 -0
  11. data/lib/postini/configuration_check.rb +25 -0
  12. data/lib/postini/endpoint_resolver_service.rb +41 -0
  13. data/lib/postini/endpoints.rb +26 -0
  14. data/lib/postini/exceptions.rb +85 -0
  15. data/lib/postini.rb +74 -102
  16. data/script/console +1 -1
  17. data/script/txt2html +5 -16
  18. data/spec/exceptions_spec.rb +19 -0
  19. data/spec/postini_spec.rb +5 -38
  20. data/spec/rcov.opts +1 -0
  21. data/spec/spec_helper.rb +1 -1
  22. data/tasks/rspec.rake +1 -19
  23. data/vendor/automatedbatch.wsdl +1 -1
  24. metadata +21 -54
  25. data/config/hoe.rb +0 -76
  26. data/config/requirements.rb +0 -15
  27. data/lib/postini/api/automatedbatch/AutomatedBatch.rb +0 -1244
  28. data/lib/postini/api/automatedbatch/AutomatedBatchDriver.rb +0 -216
  29. data/lib/postini/api/automatedbatch/AutomatedBatchMappingRegistry.rb +0 -1883
  30. data/lib/postini/api/automatedbatch/AutomatedBatchServiceClient.rb +0 -523
  31. data/lib/postini/api/endpointresolver/EndpointResolver.rb +0 -121
  32. data/lib/postini/api/endpointresolver/EndpointResolverDriver.rb +0 -51
  33. data/lib/postini/api/endpointresolver/EndpointResolverMappingRegistry.rb +0 -268
  34. data/lib/postini/api/endpointresolver/EndpointResolverServiceClient.rb +0 -38
  35. data/lib/postini/api.rb +0 -8
  36. data/lib/postini/domain.rb +0 -72
  37. data/lib/postini/helpers/attributes.rb +0 -94
  38. data/lib/postini/helpers.rb +0 -13
  39. data/lib/postini/user.rb +0 -91
  40. data/lib/postini/users/aliases.rb +0 -55
  41. data/lib/postini/version.rb +0 -9
  42. data/spec/attribute_helper_spec.rb +0 -47
  43. data/spec/domain_spec.rb +0 -36
  44. data/spec/user_spec.rb +0 -142
  45. data/website/index.html +0 -89
  46. data/website/index.txt +0 -60
  47. data/website/javascripts/rounded_corners_lite.inc.js +0 -285
  48. data/website/spam_box.png +0 -0
  49. data/website/stylesheets/screen.css +0 -143
  50. data/website/template.html.erb +0 -56
data/lib/postini.rb CHANGED
@@ -3,145 +3,117 @@ $:.unshift(File.dirname(__FILE__)) unless
3
3
 
4
4
  # requirements
5
5
  require 'rubygems'
6
- gem 'soap4r', '=1.5.8'
7
- unless defined?( ActiveSupport )
8
- gem 'activesupport', '>=2.0.2'
9
- end
10
- require 'postini/helpers'
11
- require 'postini/user'
12
- require 'postini/domain'
6
+ require 'handsoap'
13
7
 
14
- require 'postini/api/endpointresolver/EndpointResolverDriver'
8
+ require 'postini/exceptions'
15
9
 
16
10
  # = Configuration
17
- #
18
- # This module just provides access to configuration details used by the rest of
11
+ #
12
+ # This module just provides access to configuration details used by the rest of
19
13
  # the gem.
20
- #
14
+ #
21
15
  # Current configuration values are:
22
16
  # * api_key
23
17
  # * system_number
24
18
  # * username
25
19
  # * password
26
- # * xauth
27
- #
20
+ #
28
21
  # The +api_key+ is your unique API keys obtained from Postini via their Early
29
22
  # Access program.
30
- #
23
+ #
31
24
  # Postini.api_key = "your48characterkey"
32
- #
25
+ #
33
26
  # The +system_number+ can be any known system number (known to your account).
34
- # The gem uses the Postini Endpoint Resolver service, but in some cases needs a
35
- # known system to work from. Refer to the "Locating Your System" section of the
27
+ # The gem uses the Postini Endpoint Resolver service, but in some cases needs a
28
+ # known system to work from. Refer to the "Locating Your System" section of the
36
29
  # Early Access documentation for more information.
37
- #
30
+ #
38
31
  # Postini.system_number = 8
39
- #
32
+ #
40
33
  # The +username+ parameter is required if:
41
34
  # 1. Your org is using POP authentication, and thus needs the admin user's
42
35
  # authentication details, not the end-user's.
43
- # 2. You omit the optional username and password/xauth string for the request
44
- #
36
+ # 2. You omit the optional username and password string for the request
37
+ #
45
38
  # Postini.username = 'administrat@jumboinc.com'
46
- #
47
- # The +password+ and +xauth+ parameters are mutually exclusive, and cannot be
48
- # used together. This library will use the +password+ if present, ignoring the
49
- # +xauth+ string alltogether.
50
- #
39
+ #
40
+ # The +password+ parameter is require if:
41
+ # 1. Your org is using POP authentication, and thus needs the admin
42
+ # user's authentication details, not the end-users's.
43
+ # 2. You can omit the optional username and password arguments for a
44
+ # specific request.
45
+ #
51
46
  # Postini.password = 'secret'
52
- # Postini.xauth = 'format_unknown_to_author'
47
+ #
48
+ # All of the above configurations can either be preloaded from a yaml
49
+ # file or environment variables. Create a yaml file with the following
50
+ # structure:
51
+ #
52
+ # api_key:
53
+ # system_number:
54
+ # username:
55
+ # password:
56
+ #
57
+ # And call +Postini.configure!('/path/to/file.yml')+ to load the
58
+ # values. Alternatively you can set the following environment variables
59
+ # and call +Postini.configure!+ without a path.
60
+ #
61
+ # POSTINI_API_KEY
62
+ # POSTINI_SYSTEM_NUMBER
63
+ # POSTINI_USERNAME
64
+ # POSTINI_PASSWORD
53
65
  #
54
66
  # = Debugging
55
- #
67
+ #
56
68
  # Lots to debug when an API is classified as "Early access", here are different
57
69
  # controls for setting the debugging verbosity
58
- #
70
+ #
59
71
  # * logger = Ruby-logger compatibe logger
60
72
  # * debug = true/false - Enable more verbose logging
61
- # * soap4r_wiredump = true/false - Enable soap4r wiredumps
62
- # * soap4r_wiredump_dev = DEV - Alternative logfile or device for SOAP4R wiredumps
63
- #
64
- # Specify a 'Logger' compatible logging facility in order to use the debug
73
+ #
74
+ # Specify a 'Logger' compatible logging facility in order to use the debug
65
75
  # features of the gem. All the other settings increase the verbosity to varying
66
76
  # degrees, and allow you to access some soap4r internals as well.
67
77
  #
68
78
  module Postini
69
-
70
- # On the fly class variable, getter and setter generation...
71
- %w{
72
- api_key system_number username password xauth
73
- logger debug soap4r_wiredump soap4r_wiredump_dev
74
- }.each do |config|
75
- class_eval <<-EOF
76
- @@#{config} = nil
77
- def self.#{config}=( val )
78
- @@#{config} = val
79
- end
80
- def self.#{config}
81
- @@#{config}
82
- end
83
- EOF
84
- end
85
-
79
+ VERSION = "0.1.0"
80
+
81
+ autoload :ConfigurationCheck, "postini/configuration_check"
82
+ autoload :Endpoints, "postini/endpoints"
83
+ autoload :EndpointResolverService, "postini/endpoint_resolver_service"
84
+ autoload :AutomatedBatchService, "postini/automated_batch_service"
85
+
86
+ # Don't debug by default
87
+ @debug = false
88
+
86
89
  class << self
87
-
88
- # Return the appropriate endpoint URI for the service calls. If +user+ is
89
- # provided, the endpoint is determined using the Endpoint Resolver Service,
90
- # otherwise it is contructed from the +system_number+ configuration value.
91
- def endpoint_uri( user = nil, service = :automated_batch )
92
- raise "System Number not known" if user.nil? && system_number.nil?
93
90
 
94
- # Translate the service
95
- service = case service
96
- when :automated_batch
97
- [ Postini::API::EndpointResolver::Service::V2AutomatedBatch, "automatedbatch" ]
98
- end
91
+ attr_accessor :api_key, :system_number, :username, :password, :debug, :logger
99
92
 
100
- if user.nil?
101
- "https://api-s#{system_number}.postini.com/api2/#{service[1]}"
102
- else
103
- remote = Postini::API::EndpointResolver::EndpointResolverPort.new
104
- remote.wiredump_dev = soap4r_wiredump_dev if soap4r_wiredump?
105
-
106
- request = Postini::API::EndpointResolver::GetServiceEndpoint.new(
107
- api_key, user, service[0]
108
- )
109
- response = remote.getServiceEndpoint( request )
110
- response.endpointURI
111
- end
93
+ def configured? #:nodoc:
94
+ !self.api_key.nil? &&
95
+ !self.system_number.nil? &&
96
+ !self.username.nil? &&
97
+ !self.password.nil?
112
98
  end
113
99
 
114
- def auth( service = :automated_batch, username = nil, password = nil, xauth = nil )
115
- username ||= self.username
116
- password ||= self.password
117
- if password.nil?
118
- xauth ||= self.xauth
119
- end
100
+ # Configure the library from yaml configuration file or
101
+ # environment variables
102
+ def configure!( yaml = nil )
103
+ data = if yaml
104
+ YAML.load_file( yaml )
105
+ else
106
+ {
107
+ 'api_key' => ENV['POSTINI_API_KEY'],
108
+ 'system_number' => ENV['POSTINI_SYSTEM_NUMBER'],
109
+ 'username' => ENV['POSTINI_USERNAME'],
110
+ 'password' => ENV['POSTINI_PASSWORD']
111
+ }
112
+ end
120
113
 
121
- case service
122
- when :automated_batch
123
- API::AutomatedBatch::AuthElem.new(
124
- api_key, username, password, xauth
125
- )
114
+ data.each do |k,v|
115
+ self.send( "#{k}=", v )
126
116
  end
127
117
  end
128
-
129
- def debug?
130
- @@debug ||= false
131
- end
132
-
133
- def soap4r_wiredump?
134
- @@soap4r_wiredump ||= false
135
- end
136
-
137
- def logger
138
- @@logger ||= Logger.new('/dev/null')
139
- end
140
-
141
- def soap4r_wiredump_dev
142
- @@soap4r_wiredump_dev ||= logger
143
- end
144
-
145
118
  end
146
-
147
119
  end
data/script/console CHANGED
@@ -7,4 +7,4 @@ libs = " -r irb/completion"
7
7
  # libs << " -r #{File.dirname(__FILE__) + '/../lib/console_lib/console_logger.rb'}"
8
8
  libs << " -r #{File.dirname(__FILE__) + '/../lib/postini.rb'}"
9
9
  puts "Loading postini gem"
10
- exec "#{irb} #{libs} --simple-prompt"
10
+ exec "#{irb} #{libs} --simple-prompt"
data/script/txt2html CHANGED
@@ -1,27 +1,16 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- GEM_NAME = 'postini' # what ppl will type to install your gem
4
- RUBYFORGE_PROJECT = 'postini4r'
5
-
6
- require 'rubygems'
7
- begin
8
- require 'newgem'
9
- require 'rubyforge'
10
- rescue LoadError
11
- puts "\n\nGenerating the website requires the newgem RubyGem"
12
- puts "Install: gem install newgem\n\n"
13
- exit(1)
14
- end
3
+ load File.dirname(__FILE__) + "/../Rakefile"
4
+ require 'rubyforge'
15
5
  require 'redcloth'
16
6
  require 'syntax/convertors/html'
17
7
  require 'erb'
18
- require File.dirname(__FILE__) + "/../lib/#{GEM_NAME}/version.rb"
19
8
 
20
- version = Postini::VERSION::STRING
21
- download = "http://rubyforge.org/projects/#{RUBYFORGE_PROJECT}"
9
+ download = "http://rubyforge.org/projects/#{$hoe.rubyforge_name}"
10
+ version = $hoe.version
22
11
 
23
12
  def rubyforge_project_id
24
- RubyForge.new.autoconfig["group_ids"][RUBYFORGE_PROJECT]
13
+ RubyForge.new.configure.autoconfig["group_ids"][$hoe.rubyforge_name]
25
14
  end
26
15
 
27
16
  class Fixnum
@@ -0,0 +1,19 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ describe "Remote exception handling" do
4
+ it "should parse the reason" do
5
+ reason = "StatusException: You specified 'false' to the test operation - we have raised an exception as you have requested. () (Request ID B7BBF9D8-56D3-11DE-A949-FAAF5903FD3E)"
6
+
7
+ exception = Postini::RemoteException.new( reason )
8
+ exception.type.should == "StatusException"
9
+ exception.message.should == "You specified 'false' to the test operation - we have raised an exception as you have requested. ()"
10
+ exception.request_id.should == "B7BBF9D8-56D3-11DE-A949-FAAF5903FD3E"
11
+ end
12
+
13
+ it "should delegate the exception correctly" do
14
+ reason = "StatusException: You specified 'false' to the test operation - we have raised an exception as you have requested. () (Request ID B7BBF9D8-56D3-11DE-A949-FAAF5903FD3E)"
15
+
16
+ exception = Postini::RemoteException.delegate( reason )
17
+ exception.should be_a_kind_of( Postini::StatusException )
18
+ end
19
+ end
data/spec/postini_spec.rb CHANGED
@@ -1,58 +1,25 @@
1
1
  require File.dirname(__FILE__) + '/spec_helper.rb'
2
2
 
3
3
  describe "Postini master module" do
4
-
4
+
5
5
  it "must allow for setting the API Access Key" do
6
6
  Postini.api_key = "1234567890"
7
7
  Postini.api_key.should eql("1234567890")
8
8
  end
9
-
9
+
10
10
  it "must allow for setting the system number" do
11
11
  Postini.system_number = 200
12
12
  Postini.system_number.should be(200)
13
13
  end
14
-
14
+
15
15
  it "must allow for setting a username" do
16
16
  Postini.username = 'administrator@jumboinc.com'
17
17
  Postini.username.should eql('administrator@jumboinc.com')
18
18
  end
19
-
19
+
20
20
  it "must allow for setting a password" do
21
21
  Postini.password = 'secret'
22
22
  Postini.password.should eql('secret')
23
23
  end
24
-
25
- it "must allow for setting a XAuth string" do
26
- Postini.xauth = 'format_unknown_to_author'
27
- Postini.xauth.should eql('format_unknown_to_author')
28
- end
29
-
30
- it "should return a pre-built URI if no user is provided" do
31
- Postini.system_number = 0
32
- Postini.endpoint_uri.should eql('https://api-s0.postini.com/api2/automatedbatch')
33
- end
34
-
35
- it "should use the Endpoint Resolver service if a user is provided" do
36
- mock_remote = Postini::API::EndpointResolver::EndpointResolverPort.new
37
- mock_remote.expects( :getServiceEndpoint ).with(anything).returns(
38
- OpenStruct.new( :endpointURI => 'https://api-s0.postini.com/api2/automatedbatch' )
39
- )
40
- Postini::API::EndpointResolver::EndpointResolverPort.expects(:new).returns(mock_remote)
41
-
42
- Postini.endpoint_uri( 'support@jumboinc.com' ).should eql('https://api-s0.postini.com/api2/automatedbatch')
43
-
44
- pending "IMPROVE"
45
- end
46
-
47
- it "should generate auth elements without user details" do
48
- pending
49
- end
50
-
51
- it "should generate auth elements with username and passwords" do
52
- pending
53
- end
54
-
55
- it "should generate auth elements with usernames and xauth strings" do
56
- pending
57
- end
24
+
58
25
  end
data/spec/rcov.opts ADDED
@@ -0,0 +1 @@
1
+ --exclude "spec/*,gems/*"
data/spec/spec_helper.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  begin
2
2
  require 'spec'
3
3
  rescue LoadError
4
- require 'rubygems'
4
+ require 'rubygems' unless ENV['NO_RUBYGEMS']
5
5
  gem 'rspec'
6
6
  require 'spec'
7
7
  end
data/tasks/rspec.rake CHANGED
@@ -1,7 +1,7 @@
1
1
  begin
2
2
  require 'spec'
3
3
  rescue LoadError
4
- require 'rubygems'
4
+ require 'rubygems' unless ENV['NO_RUBYGEMS']
5
5
  require 'spec'
6
6
  end
7
7
  begin
@@ -19,21 +19,3 @@ Spec::Rake::SpecTask.new do |t|
19
19
  t.spec_opts = ['--options', "spec/spec.opts"]
20
20
  t.spec_files = FileList['spec/**/*_spec.rb']
21
21
  end
22
-
23
- namespace :spec do
24
- desc "Print Specdoc for all specs (excluding plugin specs)"
25
- Spec::Rake::SpecTask.new(:doc) do |t|
26
- t.spec_opts = ["--format", "specdoc", "--dry-run"]
27
- t.spec_files = FileList['spec/**/*_spec.rb']
28
- end
29
-
30
- desc "Run all specs in spec directory with RCov (excluding plugin specs)"
31
- Spec::Rake::SpecTask.new(:rcov) do |t|
32
- t.spec_opts = ['--options', "\"#{File.dirname(__FILE__)}/../spec/spec.opts\""]
33
- t.spec_files = FileList['spec/**/*_spec.rb']
34
- t.rcov = true
35
- t.rcov_opts = lambda do
36
- IO.readlines("#{File.dirname(__FILE__)}/../spec/rcov.opts").map {|l| l.chomp.split " "}.flatten
37
- end
38
- end
39
- end
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <!-- Originating Build y6_14_9c0, y6_14_9c0, Thu May 22 11:20:45 PDT 2008-->
2
+ <!-- Originating Build y6_19_0c21, y6_19_0c21, Tue May 19 19:02:18 PDT 2009-->
3
3
 
4
4
  <wsdl:definitions
5
5
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: postini
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kenneth Kalmer
@@ -9,28 +9,18 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-03-24 00:00:00 +02:00
12
+ date: 2009-06-12 00:00:00 +02:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: activesupport
17
- type: :runtime
16
+ name: newgem
17
+ type: :development
18
18
  version_requirement:
19
19
  version_requirements: !ruby/object:Gem::Requirement
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 2.0.2
24
- version:
25
- - !ruby/object:Gem::Dependency
26
- name: soap4r
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "="
32
- - !ruby/object:Gem::Version
33
- version: 1.5.8
23
+ version: 1.4.1
34
24
  version:
35
25
  - !ruby/object:Gem::Dependency
36
26
  name: hoe
@@ -42,7 +32,7 @@ dependencies:
42
32
  - !ruby/object:Gem::Version
43
33
  version: 1.8.0
44
34
  version:
45
- description: Ruby wrapper around the Postini SOAP API (Early Access Program)
35
+ description: A Ruby wrapper library to make the Postini SOAP API more palatable. Postini is the world leader in email message scanning, filtering and archiving. This library provides users of Postini with a convenient Ruby library that exposes the Postini SOAP API (Early Access Program) through more familiar Rubyisms.
46
36
  email:
47
37
  - kenneth.kalmer@gmail.com
48
38
  executables: []
@@ -55,7 +45,6 @@ extra_rdoc_files:
55
45
  - Manifest.txt
56
46
  - PostInstall.txt
57
47
  - README.txt
58
- - website/index.txt
59
48
  files:
60
49
  - History.txt
61
50
  - License.txt
@@ -64,58 +53,36 @@ files:
64
53
  - README.txt
65
54
  - Rakefile
66
55
  - TODO
67
- - config/hoe.rb
68
- - config/requirements.rb
56
+ - features/development.feature
57
+ - features/step_definitions/common_steps.rb
58
+ - features/support/common.rb
59
+ - features/support/env.rb
60
+ - features/support/matchers.rb
69
61
  - lib/postini.rb
70
- - lib/postini/api.rb
71
- - lib/postini/api/automatedbatch/AutomatedBatch.rb
72
- - lib/postini/api/automatedbatch/AutomatedBatchDriver.rb
73
- - lib/postini/api/automatedbatch/AutomatedBatchMappingRegistry.rb
74
- - lib/postini/api/automatedbatch/AutomatedBatchServiceClient.rb
75
- - lib/postini/api/endpointresolver/EndpointResolver.rb
76
- - lib/postini/api/endpointresolver/EndpointResolverDriver.rb
77
- - lib/postini/api/endpointresolver/EndpointResolverMappingRegistry.rb
78
- - lib/postini/api/endpointresolver/EndpointResolverServiceClient.rb
79
- - lib/postini/domain.rb
80
- - lib/postini/helpers.rb
81
- - lib/postini/helpers/attributes.rb
82
- - lib/postini/user.rb
83
- - lib/postini/users/aliases.rb
84
- - lib/postini/version.rb
62
+ - lib/postini/automated_batch_service.rb
63
+ - lib/postini/configuration_check.rb
64
+ - lib/postini/endpoint_resolver_service.rb
65
+ - lib/postini/endpoints.rb
66
+ - lib/postini/exceptions.rb
85
67
  - script/console
86
68
  - script/destroy
87
69
  - script/generate
88
70
  - script/txt2html
89
71
  - setup.rb
90
- - spec/attribute_helper_spec.rb
91
- - spec/domain_spec.rb
72
+ - spec/exceptions_spec.rb
92
73
  - spec/postini_spec.rb
74
+ - spec/rcov.opts
93
75
  - spec/spec.opts
94
76
  - spec/spec_helper.rb
95
- - spec/user_spec.rb
96
77
  - tasks/deployment.rake
97
78
  - tasks/environment.rake
98
79
  - tasks/rspec.rake
99
80
  - tasks/website.rake
100
81
  - vendor/automatedbatch.wsdl
101
82
  - vendor/endpointresolver.wsdl
102
- - website/index.html
103
- - website/index.txt
104
- - website/javascripts/rounded_corners_lite.inc.js
105
- - website/spam_box.png
106
- - website/stylesheets/screen.css
107
- - website/template.html.erb
108
83
  has_rdoc: true
109
- homepage: http://postini4r.rubyforge.org
110
- post_install_message: |+
111
-
112
- For more information on postini4r's postini gem, see
113
- http://postini4r.rubyforge.org/postini
114
-
115
- Remember to contact your Postini provider, or Postini directly, to gain access
116
- to the Postini Early Access Program. You'll need a unique API key to make use
117
- of this gem.
118
-
84
+ homepage: http://postini4r.rubyforge.org/
85
+ post_install_message: PostInstall.txt
119
86
  rdoc_options:
120
87
  - --main
121
88
  - README.txt
@@ -139,6 +106,6 @@ rubyforge_project: postini4r
139
106
  rubygems_version: 1.3.1
140
107
  signing_key:
141
108
  specification_version: 2
142
- summary: Ruby wrapper around the Postini SOAP API (Early Access Program)
109
+ summary: A Ruby wrapper library to make the Postini SOAP API more palatable
143
110
  test_files: []
144
111
 
data/config/hoe.rb DELETED
@@ -1,76 +0,0 @@
1
- require 'postini/version'
2
-
3
- AUTHOR = 'Kenneth Kalmer' # can also be an array of Authors
4
- EMAIL = "kenneth.kalmer@gmail.com"
5
- DESCRIPTION = "Ruby wrapper around the Postini SOAP API (Early Access Program)"
6
- GEM_NAME = 'postini' # what ppl will type to install your gem
7
- RUBYFORGE_PROJECT = 'postini4r' # The unix name for your project
8
- HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
9
- DOWNLOAD_PATH = "http://rubyforge.org/projects/#{RUBYFORGE_PROJECT}"
10
- EXTRA_DEPENDENCIES = [
11
- ['activesupport', '>=2.0.2'],
12
- ['soap4r', '=1.5.8']
13
- ] # An array of rubygem dependencies [name, version]
14
-
15
- @config_file = "~/.rubyforge/user-config.yml"
16
- @config = nil
17
- RUBYFORGE_USERNAME = "kennethkalmer"
18
- def rubyforge_username
19
- unless @config
20
- begin
21
- @config = YAML.load(File.read(File.expand_path(@config_file)))
22
- rescue
23
- puts <<-EOS
24
- ERROR: No rubyforge config file found: #{@config_file}
25
- Run 'rubyforge setup' to prepare your env for access to Rubyforge
26
- - See http://newgem.rubyforge.org/rubyforge.html for more details
27
- EOS
28
- exit
29
- end
30
- end
31
- RUBYFORGE_USERNAME.replace @config["username"]
32
- end
33
-
34
-
35
- REV = nil
36
- # UNCOMMENT IF REQUIRED:
37
- # REV = YAML.load(`svn info`)['Revision']
38
- VERS = Postini::VERSION::STRING + (REV ? ".#{REV}" : "")
39
- RDOC_OPTS = ['--quiet', '--title', 'postini documentation',
40
- "--opname", "index.html",
41
- "--line-numbers",
42
- "--main", "README",
43
- "--inline-source",
44
- "--exclude", "*.wsdl"
45
- ]
46
-
47
- class Hoe
48
- def extra_deps
49
- @extra_deps.reject! { |x| Array(x).first == 'hoe' }
50
- @extra_deps
51
- end
52
- end
53
-
54
- # Generate all the Rake tasks
55
- # Run 'rake -T' to see list of generated tasks (from gem root directory)
56
- $hoe = Hoe.new(GEM_NAME, VERS) do |p|
57
- p.developer(AUTHOR, EMAIL)
58
- p.description = DESCRIPTION
59
- p.summary = DESCRIPTION
60
- p.url = HOMEPATH
61
- p.rubyforge_name = RUBYFORGE_PROJECT if RUBYFORGE_PROJECT
62
- p.test_globs = ["test/**/test_*.rb"]
63
- p.clean_globs |= ['**/.*.sw?', '*.gem', '.config', '**/.DS_Store'] #An array of file patterns to delete on clean.
64
-
65
- # == Optional
66
- p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
67
- p.extra_deps = EXTRA_DEPENDENCIES
68
-
69
- #p.spec_extras = {} # A hash of extra values to set in the gemspec.
70
- end
71
-
72
- CHANGES = $hoe.paragraphs_of('History.txt', 0..1).join("\\n\\n")
73
- PATH = (RUBYFORGE_PROJECT == GEM_NAME) ? RUBYFORGE_PROJECT : "#{RUBYFORGE_PROJECT}/#{GEM_NAME}"
74
- $hoe.remote_rdoc_dir = File.join(PATH.gsub(/^#{RUBYFORGE_PROJECT}\/?/,''), 'rdoc')
75
- $hoe.rsync_args = '-av --delete --ignore-errors'
76
- $hoe.spec.post_install_message = File.open(File.dirname(__FILE__) + "/../PostInstall.txt").read rescue ""
@@ -1,15 +0,0 @@
1
- require 'fileutils'
2
- include FileUtils
3
-
4
- require 'rubygems'
5
- %w[rake hoe newgem rubigen].each do |req_gem|
6
- begin
7
- require req_gem
8
- rescue LoadError
9
- puts "This Rakefile requires the '#{req_gem}' RubyGem."
10
- puts "Installation: gem install #{req_gem} -y"
11
- exit
12
- end
13
- end
14
-
15
- $:.unshift(File.join(File.dirname(__FILE__), %w[.. lib]))