lettr 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -45,13 +45,13 @@ Just set the Delivery Method of ActionMailer to :lettr, and all Mailings from Ac
45
45
  ### Lettr::Mailer
46
46
  Let your mailer class inherit from Lettr::Mailer instead of ActionMailer::Base.
47
47
 
48
- class BookingMailer < Lettr::Mailer
49
- FROM = 'intervillas <info@intervillas-florida.com>'
50
- def submission_mail(booking)
51
- recipients booking.email
48
+ class ExampleMailer < Lettr::Mailer
49
+ FROM = 'example <info@example.com>'
50
+ def example_mail(example)
51
+ recipients example.email
52
52
  from FROM
53
- subject I18n.t('booking_mailer.ihre_anfrage')
54
- body :booking => booking
53
+ subject I18n.t('example_mailer.example')
54
+ body :example => example
55
55
  end
56
56
  end
57
57
 
@@ -66,7 +66,7 @@ Let your mailer class inherit from Lettr::Mailer instead of ActionMailer::Base.
66
66
  #### and a hash
67
67
  Provide a hash containing the variables, that you used in your template.
68
68
 
69
- Lettr.test_mail(:test => { :variable_1 => 'foo', :variable_2 => 'bar' }).deliver
69
+ Lettr.test_mail(:recipient => 'tg@digineo.de', :test => { :variable_1 => 'foo', :variable_2 => 'bar' }).deliver
70
70
 
71
71
  #### OR
72
72
  #### and an object, which responds to :to_nb_hash
@@ -79,7 +79,7 @@ Provide a hash containing the variables, that you used in your template.
79
79
 
80
80
  test_object = TestClass.new
81
81
 
82
- Lettr.test_mail(:test => test_object ).deliver
82
+ Lettr.test_mail(:recipient => 'tg@digineo.de', :test => test_object).deliver
83
83
 
84
84
  #### OR
85
85
  #### automagic
@@ -102,7 +102,7 @@ And the following Template:
102
102
  When you do a request to the Lettr Api
103
103
 
104
104
  test_object = TestClass.new
105
- Lettr.test_mail(:test => test_object ).deliver
105
+ Lettr.test_mail(:recipient => 'tg@digineo.de', :test => test_object ).deliver
106
106
 
107
107
  Lettr will invoke the methods :variable_1 and :variable_2 on test_object and serialize their return values for the request.
108
108
  So the request will result in the following Mailing:
data/lib/lettr.rb CHANGED
@@ -17,6 +17,7 @@ module Lettr
17
17
  mattr_accessor :attributes
18
18
  mattr_accessor :protocol
19
19
  mattr_accessor :api_mailings
20
+ mattr_accessor :api_key
20
21
 
21
22
  self.attributes ||= %w{ gender firstname lastname street ccode pcode city }
22
23
  self.protocol ||= 'http'
data/lib/lettr/base.rb CHANGED
@@ -5,7 +5,9 @@ class Lettr::Base
5
5
  attr_reader :client
6
6
 
7
7
  def initialize
8
- @client = RestClient::Resource.new self.class.site_url, self.class.user, self.class.pass
8
+ resource_args = [ self.class.site_url ]
9
+ resource_args += [self.class.user, self.class.pass] unless Lettr.api_key
10
+ @client = RestClient::Resource.new *resource_args
9
11
  end
10
12
 
11
13
  def self.site_url
@@ -16,19 +18,25 @@ class Lettr::Base
16
18
  path = object.collection_path
17
19
  payload = object.to_payload
18
20
  payload.merge! :files => object.files if object.respond_to?(:files) && object.files
19
- client[path].post(payload, DEFAULT_HEADERS)
21
+ client[path].post(payload, headers)
20
22
  end
21
23
 
22
24
  def destroy object
23
- client[object.path].delete DEFAULT_HEADERS
25
+ client[object.path].delete headers
24
26
  end
25
27
 
26
28
  def find path
27
- ActiveSupport::JSON.decode(client[path].get DEFAULT_HEADERS)
29
+ ActiveSupport::JSON.decode(client[path].get headers)
28
30
  end
29
31
 
30
32
  def [] path
31
33
  client[path]
32
34
  end
33
35
 
36
+ def headers
37
+ headers = DEFAULT_HEADERS
38
+ headers.merge! 'X-Lettr-API-key' => Lettr.api_key if Lettr.api_key
39
+ headers
40
+ end
41
+
34
42
  end
@@ -17,7 +17,11 @@ class Lettr::Collection
17
17
  if element.class.respond_to? :is_whitelisted?
18
18
  raise SecurityError, "method #{var} in class #{element.class} not whitelisted" unless element.class.is_whitelisted?(var)
19
19
  end
20
- hash[var] = element.send(var)
20
+ if element.is_a?( String )
21
+ hash = element
22
+ else
23
+ hash[var] = element.send(var)
24
+ end
21
25
  end
22
26
  @context << hash
23
27
  end
@@ -30,6 +30,7 @@ module Lettr::Deliverable
30
30
  group_variables if respond_to? :group_variables
31
31
  handle_options
32
32
  append_used_variables if respond_to? :append_used_variables
33
+ Rails.logger.debug @hash.inspect
33
34
 
34
35
  # perform delivery request
35
36
  rec = Lettr::Delivery.new @hash, @files
@@ -16,7 +16,7 @@ Lettr::Recipient = Struct.new( :email, :id, :gender, :firstname, :lastname, :str
16
16
  end
17
17
 
18
18
  def self.delete_by_email email
19
- client["#{path}/destroy_by_email"].delete :email => email
19
+ client["#{path}/destroy_by_email"].delete :email => email #, 'X-Lettr-API-Key' => Lettr.api_key
20
20
  end
21
21
 
22
22
  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: 19
4
+ hash: 17
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 2
10
- version: 1.0.2
9
+ - 3
10
+ version: 1.0.3
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-11-04 00:00:00 +01:00
18
+ date: 2010-12-20 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency