lettr 1.0.4 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -13,8 +13,6 @@ For Rails 3.x or if you use Bundler drop the following line into your Gemfile:
13
13
 
14
14
  gem 'lettr'
15
15
 
16
- NOTE: In a Rails 3 Application you currently cant use Delivery Method nor Lettr::Mailer.
17
-
18
16
  ## Configuration
19
17
  There are some configuration options you can provide either inside config/environment.rb or config/environments/$RAILS_ENV.rb or create an initializer in config/initializers.
20
18
  At least you have to provide your lettr login credentials:
data/init.rb CHANGED
@@ -1,3 +1,8 @@
1
1
  if defined? ActionMailer::Base
2
- ActionMailer::Base.send(:include, Lettr::ActionMailer)
2
+ if defined? TMail
3
+ ActionMailer::Base.send(:include, Lettr::ActionMailer)
4
+ elsif defined? Mail
5
+ require 'lettr/mail_extensions'
6
+ ActionMailer::Base.add_delivery_method :lettr, Mail::Lettr
7
+ end
3
8
  end
@@ -1,3 +1,4 @@
1
+ # encoding: utf-8
1
2
  require 'active_support'
2
3
 
3
4
  module Lettr
@@ -12,6 +13,9 @@ module Lettr
12
13
  require 'lettr/collection'
13
14
  require 'lettr/rendered_mailing'
14
15
  require 'lettr/whitelist'
16
+ require 'lettr/action_mailer'
17
+ require 'lettr/mailer'
18
+ require 'lettr/mail_extensions'
15
19
 
16
20
  mattr_accessor :host
17
21
  mattr_accessor :attributes
@@ -83,6 +87,9 @@ module Lettr
83
87
  end
84
88
 
85
89
  def self.method_missing *args, &block
90
+ if args.first.to_s =~ /^to_/
91
+ super
92
+ end
86
93
  load_api_mailing_or_fail_loud *args
87
94
  rescue RestClient::ResourceNotFound
88
95
  super
@@ -3,37 +3,7 @@ module Lettr::ActionMailer
3
3
  private
4
4
 
5
5
  def perform_delivery_lettr mail
6
- lettr_request_hashes = []
7
- mail.to.each do |recipient|
8
- lettr_request_hash = {}
9
- lettr_request_hash[:recipient] = recipient
10
- lettr_request_hash[:subject] = mail.subject
11
- if mail.parts.empty?
12
- case mail.content_type
13
- when 'text/html'
14
- lettr_request_hash[:html] = mail.body
15
- when 'text/plain'
16
- lettr_request_hash[:text] = mail.body
17
- end
18
- else
19
- mail.parts.each do |part|
20
- case part.content_type
21
- when 'text/html'
22
- lettr_request_hash[:html] = part.body
23
- when 'text/plain'
24
- lettr_request_hash[:text] = part.body
25
- else
26
- lettr_request_hash[:attachments] ||= []
27
- lettr_request_hash[:attachments] << part.body
28
- end
29
- end
30
- end
31
- lettr_request_hashes << lettr_request_hash
32
- end
33
- identifier = @template
34
- lettr_request_hashes.each do |lettr_request_hash|
35
- Lettr.send(identifier, lettr_request_hash).deliver
36
- end
37
-
6
+ Mail::Lettr.new(:template => @template).deliver! mail
38
7
  end
8
+
39
9
  end
@@ -1,3 +1,4 @@
1
+ # encoding: utf-8
1
2
  module Lettr::Deliverable
2
3
 
3
4
  def self.included base
@@ -30,7 +31,7 @@ module Lettr::Deliverable
30
31
  group_variables if respond_to? :group_variables
31
32
  handle_options
32
33
  append_used_variables if respond_to? :append_used_variables
33
- Rails.logger.debug @hash.inspect
34
+ Rails.logger.debug @hash.inspect if defined? Rails
34
35
 
35
36
  # perform delivery request
36
37
  rec = Lettr::Delivery.new @hash, @files
@@ -0,0 +1,44 @@
1
+ module Mail
2
+ class Lettr
3
+
4
+ def initialize(values={})
5
+ @settings = values
6
+ end
7
+
8
+ def deliver!(mail)
9
+ lettr_request_hashes = []
10
+ raise 'no recipient' unless mail.to
11
+ mail.to.each do |recipient|
12
+ lettr_request_hash = {}
13
+ lettr_request_hash[:recipient] = recipient
14
+ lettr_request_hash[:subject] = mail.subject
15
+ if mail.parts.empty?
16
+ case mail.content_type
17
+ when /text\/html/
18
+ lettr_request_hash[:html] = mail.body
19
+ when /text\/plain/
20
+ lettr_request_hash[:text] = mail.body
21
+ end
22
+ else
23
+ mail.parts.each do |part|
24
+ case part.content_type
25
+ when /text\/html/
26
+ lettr_request_hash[:html] = part.body
27
+ when /text\/plain/
28
+ lettr_request_hash[:text] = part.body
29
+ else
30
+ lettr_request_hash[:attachments] ||= []
31
+ lettr_request_hash[:attachments] << part.body
32
+ end
33
+ end
34
+ end
35
+ lettr_request_hashes << lettr_request_hash
36
+ end
37
+ identifier = @settings[:template] || mail.subject.downcase.gsub(/\s/, '_')
38
+ lettr_request_hashes.each do |lettr_request_hash|
39
+ ::Lettr.send(identifier, lettr_request_hash).deliver
40
+ end
41
+ end
42
+ end
43
+
44
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lettr
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
+ - 1
8
9
  - 0
9
- - 4
10
- version: 1.0.4
10
+ version: 1.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Digineo GmbH
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-12-21 00:00:00 +01:00
18
+ date: 2011-01-31 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -77,6 +77,20 @@ dependencies:
77
77
  version: "0"
78
78
  type: :development
79
79
  version_requirements: *id004
80
+ - !ruby/object:Gem::Dependency
81
+ name: actionmailer
82
+ prerelease: false
83
+ requirement: &id005 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ hash: 3
89
+ segments:
90
+ - 0
91
+ version: "0"
92
+ type: :development
93
+ version_requirements: *id005
80
94
  description: lettr.de Api
81
95
  email: kontakt@digineo.de
82
96
  executables: []
@@ -97,6 +111,7 @@ files:
97
111
  - lib/lettr/deliverable.rb
98
112
  - lib/lettr/rendered_mailing.rb
99
113
  - lib/lettr/base.rb
114
+ - lib/lettr/mail_extensions.rb
100
115
  - lib/lettr/api_mailing.rb
101
116
  - lib/lettr.rb
102
117
  - lib/tasks/newsletter_boy.rake