sendhub 0.1.16 → 0.1.17

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,29 +1,30 @@
1
1
  module Sendhub
2
2
  class Client
3
-
4
- VERSION = '0.1.16'
5
-
3
+
4
+ VERSION = '0.1.17'
5
+
6
6
  def initialize(config=nil)
7
7
  config[:host] ||= 'api.sendhub.net'
8
8
  config[:protocol] ||= 'https'
9
9
  @uri = URI.parse(config[:protocol]+'://'+config[:host]+'/')
10
-
10
+
11
11
  @api_key = config[:api_key]
12
12
  @secret_key = config[:secret_key]
13
-
14
- puts "SendhubRubyClient: #{@uri}, #{@api_key}"
13
+ @notification_url = config[:notification_url]
14
+
15
+ puts "SendhubRubyClient (v#{VERSION}): #{@uri}, #{@api_key}, #{@notification_url}"
15
16
  end
16
-
17
+
17
18
  def send_email(options={})
18
19
  res = _post '/emails', nil, options
19
20
  Sendhub::Response.new(res)
20
21
  end
21
-
22
+
22
23
  def get_email(options={})
23
24
  email_id = options.delete(:id)
24
25
  res = _get('/emails/' + email_id, options)
25
26
  Sendhub::Response.new(res)
26
27
  end
27
-
28
+
28
29
  end
29
30
  end
data/lib/sendhub/http.rb CHANGED
@@ -8,18 +8,19 @@ module Sendhub
8
8
  def _post(path, body = nil, options={})
9
9
  http(Net::HTTP::Post, path, body, options)
10
10
  end
11
-
11
+
12
12
  def securely_hash_data(data)
13
13
  Digest::SHA1.hexdigest("--#{@api_key}-#{@secret_key}-#{data}--")
14
14
  end
15
-
15
+
16
16
  def http(http_method, path, body = nil, options={})
17
17
  connection = Net::HTTP.new(@uri.host, @uri.port)
18
-
18
+
19
19
  options.merge!(:api_key => @api_key)
20
20
  options.merge!(:unique => Time.now.utc.to_i)
21
21
  options.merge!(:secret => securely_hash_data(options[:unique]))
22
-
22
+ options.merge!(:notification_url => @notification_url) if @notification_url
23
+
23
24
  if @uri.scheme == 'https'
24
25
  connection.use_ssl = true
25
26
  connection.verify_mode = OpenSSL::SSL::VERIFY_PEER
@@ -49,9 +50,9 @@ module Sendhub
49
50
  puts response.body
50
51
  return JSON.parse(response.body)
51
52
  end
52
-
53
+
53
54
  end
54
-
55
+
55
56
  def verify_ssl_certificate(preverify_ok, ssl_context)
56
57
  if preverify_ok != true || ssl_context.error != 0
57
58
  err_msg = "SSL Verification failed -- Preverify: #{preverify_ok}, Error: #{ssl_context.error_string} (#{ssl_context.error})"
@@ -1,5 +1,5 @@
1
1
  module SendhubMethods
2
-
2
+
3
3
  def self.included(base)
4
4
  base.extend(ClassMethods)
5
5
  end
@@ -12,7 +12,8 @@ module SendhubMethods
12
12
  def perform_delivery_sendhub(message)
13
13
  client = Sendhub::Client.new(
14
14
  :api_key => ActionMailer::Base.sendhub_settings[:api_key],
15
- :secret_key => ActionMailer::Base.sendhub_settings[:secret_key]
15
+ :secret_key => ActionMailer::Base.sendhub_settings[:secret_key],
16
+ :notification_url => ActionMailer::Base.sendhub_settings[:notification_url],
16
17
  )
17
18
  res = client.send_email(
18
19
  :from => message.from,
@@ -3,15 +3,16 @@ module Sendhub
3
3
  def initialize(options)
4
4
  @client = Sendhub::Client.new(
5
5
  :api_key => options[:api_key],
6
- :secret_key => options[:secret_key]
6
+ :secret_key => options[:secret_key],
7
+ :notification_url => options[:notification_url]
7
8
  )
8
9
  end
9
10
 
10
11
  def deliver!(message)
11
-
12
+
12
13
  body = message.body
13
14
  body = collect_parts(message) if message.multipart?
14
-
15
+
15
16
  res = @client.send_email(
16
17
  :from => message.from,
17
18
  :to => message.to,
@@ -21,10 +22,10 @@ module Sendhub
21
22
  :content_type => message.content_type,
22
23
  :content_transfer_encoding => message.content_transfer_encoding
23
24
  )
24
-
25
+
25
26
  puts res.inspect
26
27
  end
27
-
28
+
28
29
  def collect_parts(message)
29
30
  message.parts.inject("\n\n\n") {|x, part| x << "--#{message.boundary}\n"; x << "#{part.to_s}\n\n"}
30
31
  end
metadata CHANGED
@@ -1,38 +1,38 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: sendhub
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.17
4
5
  prerelease:
5
- version: 0.1.16
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Richard Taylor
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-07-08 00:00:00 +01:00
14
- default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
12
+ date: 2012-07-11 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
17
15
  name: json
18
- prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
20
17
  none: false
21
- requirements:
22
- - - ">="
23
- - !ruby/object:Gem::Version
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
24
21
  version: 1.1.9
25
22
  type: :runtime
26
- version_requirements: *id001
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 1.1.9
27
30
  description: sendhub is a Ruby client library for SendHub.net.
28
31
  email: moomerman@gmail.com
29
32
  executables: []
30
-
31
33
  extensions: []
32
-
33
34
  extra_rdoc_files: []
34
-
35
- files:
35
+ files:
36
36
  - LICENSE
37
37
  - README.textile
38
38
  - lib/sendhub.rb
@@ -43,34 +43,30 @@ files:
43
43
  - lib/sendhub/plugins/god.rb
44
44
  - lib/sendhub/plugins/rails2.rb
45
45
  - lib/sendhub/plugins/rails3.rb
46
- has_rdoc: true
47
46
  homepage: http://sendhub.net/
48
47
  licenses: []
49
-
50
48
  post_install_message:
51
- rdoc_options:
49
+ rdoc_options:
52
50
  - --inline-source
53
51
  - --charset=UTF-8
54
- require_paths:
52
+ require_paths:
55
53
  - lib
56
- required_ruby_version: !ruby/object:Gem::Requirement
54
+ required_ruby_version: !ruby/object:Gem::Requirement
57
55
  none: false
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: "0"
62
- required_rubygems_version: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ! '>='
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ required_rubygems_version: !ruby/object:Gem::Requirement
63
61
  none: false
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: "0"
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
68
66
  requirements: []
69
-
70
67
  rubyforge_project: sendhub
71
- rubygems_version: 1.6.2
68
+ rubygems_version: 1.8.21
72
69
  signing_key:
73
70
  specification_version: 2
74
71
  summary: sendhub is a Ruby client library for SendHub.net.
75
72
  test_files: []
76
-