griddler 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,18 +1,14 @@
1
1
  require 'iconv'
2
2
 
3
3
  class Griddler::Email
4
- attr_accessor :to, :from, :body, :subject
4
+ attr_accessor :to, :from, :body, :subject, :attachments
5
5
 
6
6
  def initialize(params)
7
7
  @to = extract_address(params[:to], config.to)
8
8
  @from = extract_address(params[:from], :email)
9
9
  @subject = params[:subject]
10
-
11
- if config.raw_body
12
- @body = params[:text]
13
- else
14
- @body = extract_body(params[:text], params[:charsets])
15
- end
10
+ @body = raw_or_extracted_body(params)
11
+ @attachments = extract_attachments(params)
16
12
 
17
13
  handler_class = config.handler_class
18
14
  handler_method = config.handler_method
@@ -21,6 +17,10 @@ class Griddler::Email
21
17
 
22
18
  private
23
19
 
20
+ def config
21
+ Griddler.configuration
22
+ end
23
+
24
24
  def extract_address(address, type)
25
25
  parsed = EmailParser.parse_address(address)
26
26
  if type == :hash
@@ -30,6 +30,17 @@ class Griddler::Email
30
30
  end
31
31
  end
32
32
 
33
+ def extract_attachments(params)
34
+ attachment_count = params[:attachments].to_i
35
+ attachment_files = []
36
+
37
+ attachment_count.times do |index|
38
+ attachment_files << params["attachment#{index + 1}".to_sym]
39
+ end
40
+
41
+ attachment_files
42
+ end
43
+
33
44
  def extract_body(body_text, charsets)
34
45
  if charsets.present?
35
46
  charsets = ActiveSupport::JSON.decode(charsets)
@@ -39,7 +50,11 @@ class Griddler::Email
39
50
  EmailParser.extract_reply_body(body_text)
40
51
  end
41
52
 
42
- def config
43
- Griddler.configuration
53
+ def raw_or_extracted_body(params)
54
+ if config.raw_body
55
+ @body = params[:text]
56
+ else
57
+ @body = extract_body(params[:text], params[:charsets])
58
+ end
44
59
  end
45
60
  end
@@ -1,3 +1,3 @@
1
1
  module Griddler
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: griddler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2012-11-06 00:00:00.000000000 Z
14
+ date: 2012-11-10 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
@@ -96,18 +96,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
96
96
  - - ! '>='
97
97
  - !ruby/object:Gem::Version
98
98
  version: '0'
99
- segments:
100
- - 0
101
- hash: -1174056135577180289
102
99
  required_rubygems_version: !ruby/object:Gem::Requirement
103
100
  none: false
104
101
  requirements:
105
102
  - - ! '>='
106
103
  - !ruby/object:Gem::Version
107
104
  version: '0'
108
- segments:
109
- - 0
110
- hash: -1174056135577180289
111
105
  requirements: []
112
106
  rubyforge_project:
113
107
  rubygems_version: 1.8.24