griddler-cloudmailin 0.0.1 → 1.1.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.
- checksums.yaml +13 -5
- data/.gitignore +3 -0
- data/.hound.yml +4 -0
- data/.rubocop.yml +53 -0
- data/.travis.yml +13 -0
- data/Gemfile +19 -2
- data/LICENSE.txt +1 -2
- data/README.md +21 -3
- data/Rakefile +1 -2
- data/griddler-cloudmailin.gemspec +12 -16
- data/lib/griddler/cloudmailin.rb +3 -3
- data/lib/griddler/cloudmailin/adapter.rb +56 -15
- data/lib/griddler/cloudmailin/version.rb +1 -1
- data/spec/griddler/cloudmailin/adapter_spec.rb +142 -27
- data/spec/spec_helper.rb +8 -0
- metadata +16 -55
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
Yjk1MmZiNTExNTBjZTQwNTdhOWEzYzU3NGI5ZDMwYWJkZDI1Yzk0OA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MGRjZjRmY2MyMTY1MGEzNDYzZWQyYTJiZTM1MDk4ZmZjOGM1OTc2OA==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
YTBiNDBiNTljNGRkY2EyNTUwNGFhMjhkOTI1NjMwMDE2ZTlhMWQ4YTM2NTZh
|
10
|
+
NTUxMTI4NDgzMDZjNmRmOTFiMzhkYTQ3OTMwNzUxZTAyZjgwYmMyZmVlNTM5
|
11
|
+
ZjU1YjFmMGJiOWQyMTZiYmVkODQ4YTdhYTcwYWJkZDVhMTgzMjc=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NjM5MzRlMjY4ZmZlZjhhNDM5M2NjNzM0M2E2Yzc5MWFkNWFlYjgwZWI1ZDBj
|
14
|
+
ZWEwMDNmY2M3NmY1ODFhMWViNTQ5NjhlM2M3OGU0YTMzYTAxZjk4MDExMDk5
|
15
|
+
MzEyNzNkMGY0NmZiODViOTVlMjY5M2NmYTAwMzA4ZTYyNTc4MDA=
|
data/.gitignore
CHANGED
data/.hound.yml
ADDED
data/.rubocop.yml
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
---
|
2
|
+
AllCops:
|
3
|
+
TargetRubyVersion: 1.9
|
4
|
+
DisplayCopNames: true
|
5
|
+
Exclude:
|
6
|
+
- 'tmp/**/*'
|
7
|
+
|
8
|
+
Metrics/BlockLength:
|
9
|
+
CountComments: false # count full line comments?
|
10
|
+
Exclude:
|
11
|
+
- '**/*_spec.rb'
|
12
|
+
|
13
|
+
StringLiterals:
|
14
|
+
EnforcedStyle: single_quotes
|
15
|
+
Enabled: true
|
16
|
+
|
17
|
+
DotPosition:
|
18
|
+
Description: 'Checks the position of the dot in multi-line method calls.'
|
19
|
+
EnforcedStyle: leading
|
20
|
+
Enabled: true
|
21
|
+
|
22
|
+
ClassAndModuleChildren:
|
23
|
+
Description: 'Checks style of children classes and modules.'
|
24
|
+
EnforcedStyle: nested
|
25
|
+
Enabled: true
|
26
|
+
|
27
|
+
Documentation:
|
28
|
+
Description: 'Document classes and non-namespace modules.'
|
29
|
+
Enabled: false
|
30
|
+
|
31
|
+
FileName:
|
32
|
+
Description: 'Use snake_case for source file names.'
|
33
|
+
Enabled: true
|
34
|
+
|
35
|
+
LineLength:
|
36
|
+
Max: 120
|
37
|
+
Enabled: true
|
38
|
+
|
39
|
+
Style/ExtraSpacing:
|
40
|
+
Description: 'Do not use unnecessary spacing.'
|
41
|
+
Enabled: true
|
42
|
+
|
43
|
+
Lint/LiteralInInterpolation:
|
44
|
+
Description: 'Avoid interpolating literals in strings'
|
45
|
+
AutoCorrect: true
|
46
|
+
|
47
|
+
Style/TrailingCommaInLiteral:
|
48
|
+
EnforcedStyleForMultiline: no_comma
|
49
|
+
Enabled: true
|
50
|
+
|
51
|
+
Style/TrailingCommaInArguments:
|
52
|
+
EnforcedStyleForMultiline: no_comma
|
53
|
+
Enabled: true
|
data/.travis.yml
ADDED
data/Gemfile
CHANGED
@@ -1,5 +1,22 @@
|
|
1
|
-
source
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
gem
|
3
|
+
gem 'griddler', github: 'thoughtbot/griddler' # So as to include the spec folder
|
4
|
+
gem 'nokogiri', (RUBY_VERSION < '2' ? '< 1.7' : '> 0') # Nokogiri >= 1.7 requires Ruby 2+
|
4
5
|
|
5
6
|
gemspec
|
7
|
+
|
8
|
+
group :development do
|
9
|
+
gem 'bundler'
|
10
|
+
gem 'gem-release'
|
11
|
+
gem 'guard'
|
12
|
+
gem 'guard-rspec'
|
13
|
+
gem 'guard-rubocop'
|
14
|
+
end
|
15
|
+
|
16
|
+
group :test do
|
17
|
+
gem 'coveralls'
|
18
|
+
gem 'fuubar'
|
19
|
+
gem 'rspec'
|
20
|
+
gem 'rspec_junit_formatter'
|
21
|
+
gem 'simplecov', '~> 0.13'
|
22
|
+
end
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,11 @@
|
|
1
1
|
# Griddler::Cloudmailin
|
2
|
+
[](https://rubygems.org/gems/griddler-cloudmailin)
|
3
|
+
[](https://rubygems.org/gems/griddler-cloudmailin)
|
4
|
+
[](https://codeclimate.com/github/thoughtbot/griddler-cloudmailin)
|
5
|
+
[](https://gemnasium.com/github.com/thoughtbot/griddler-cloudmailin)
|
6
|
+
[](https://hakiri.io/github/thoughtbot/griddler-cloudmailin/master)
|
7
|
+
[](https://travis-ci.org/thoughtbot/griddler-cloudmailin)
|
8
|
+
[](https://coveralls.io/github/thoughtbot/griddler-cloudmailin?branch=master)
|
2
9
|
|
3
10
|
An adapter for [Griddler](https://github.com/thoughtbot/griddler) to allow
|
4
11
|
[Cloudmailin](http://cloudmailin.com) to be used with the gem.
|
@@ -8,14 +15,25 @@ An adapter for [Griddler](https://github.com/thoughtbot/griddler) to allow
|
|
8
15
|
Add this line to your application's Gemfile:
|
9
16
|
|
10
17
|
```ruby
|
11
|
-
gem 'griddler'
|
12
18
|
gem 'griddler-cloudmailin'
|
13
19
|
```
|
14
20
|
|
15
21
|
## Usage
|
16
22
|
|
17
|
-
|
23
|
+
See the [Griddler](https://github.com/thoughtbot/griddler) gem for usage instructions
|
24
|
+
|
25
|
+
## Upgrading from version 0.0.1
|
26
|
+
|
27
|
+
Griddler::Cloudmailin now includes all details of the recipients of the email in the `to` array of a `Griddler::Email`
|
28
|
+
object. In version 0.0.1 this method returned the bare address of the Cloudmailin recipient only.
|
29
|
+
|
30
|
+
The email `date` is now returned as well.
|
31
|
+
|
32
|
+
There is an additional `bcc` array which contains the Cloudmailin recipient if it was BCCed on the email.
|
33
|
+
|
34
|
+
Attachments are now returned in the `attachments` array.
|
18
35
|
|
19
36
|
## More Information
|
20
37
|
|
21
|
-
* [
|
38
|
+
* [Griddler](https://github.com/thoughtbot/griddler)
|
39
|
+
* [Cloudmailin documentation](http://docs.cloudmailin.com/)
|
data/Rakefile
CHANGED
@@ -1,2 +1 @@
|
|
1
|
-
require
|
2
|
-
|
1
|
+
require 'bundler/gem_tasks'
|
@@ -4,23 +4,19 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'griddler/cloudmailin/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'griddler-cloudmailin'
|
8
8
|
spec.version = Griddler::Cloudmailin::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
11
|
-
spec.summary =
|
12
|
-
spec.description =
|
13
|
-
spec.homepage =
|
14
|
-
spec.license =
|
9
|
+
spec.authors = ['Dominic Sayers & Caleb Thompson']
|
10
|
+
spec.email = ['dominic@sayers.cc']
|
11
|
+
spec.summary = 'Griddler Plugin for cloudmailin'
|
12
|
+
spec.description = 'Griddler Plugin for cloudmailin email parsing service'
|
13
|
+
spec.homepage = 'https://github.com/thoughtbot/griddler-cloudmailin'
|
14
|
+
spec.license = 'MIT'
|
15
15
|
|
16
|
-
spec.files = `git ls-files
|
17
|
-
spec.executables = spec.files.grep(%r{^bin
|
18
|
-
spec.test_files = spec.files.grep(%r{^(test|spec|features)
|
19
|
-
spec.require_paths = [
|
16
|
+
spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
17
|
+
spec.executables = spec.files.grep(%r{^bin\/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features|coverage)\/})
|
19
|
+
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.
|
22
|
-
spec.add_development_dependency "rake"
|
23
|
-
spec.add_development_dependency "rspec"
|
24
|
-
|
25
|
-
spec.add_dependency "griddler"
|
21
|
+
spec.add_dependency 'griddler'
|
26
22
|
end
|
data/lib/griddler/cloudmailin.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
1
|
+
require 'griddler'
|
2
|
+
require 'griddler/cloudmailin/version'
|
3
|
+
require 'griddler/cloudmailin/adapter'
|
4
4
|
|
5
5
|
Griddler.adapter_registry.register(:cloudmailin, Griddler::Cloudmailin::Adapter)
|
@@ -1,35 +1,76 @@
|
|
1
|
-
require 'active_support/core_ext/string/strip'
|
2
|
-
|
3
1
|
module Griddler
|
4
2
|
module Cloudmailin
|
5
3
|
class Adapter
|
6
|
-
def initialize(params)
|
7
|
-
@params = params
|
8
|
-
end
|
9
|
-
|
10
4
|
def self.normalize_params(params)
|
11
5
|
adapter = new(params)
|
12
6
|
adapter.normalize_params
|
13
7
|
end
|
14
8
|
|
15
9
|
def normalize_params
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
}
|
10
|
+
normalized_params = base_params
|
11
|
+
normalized_params[:bcc] = bcc unless bcc.empty?
|
12
|
+
normalized_params
|
13
|
+
end
|
14
|
+
|
15
|
+
def legacy?
|
16
|
+
@legacy ||= headers.key? :From
|
24
17
|
end
|
25
18
|
|
26
19
|
private
|
27
20
|
|
28
21
|
attr_reader :params
|
29
22
|
|
23
|
+
def initialize(params)
|
24
|
+
@params = params
|
25
|
+
end
|
26
|
+
|
27
|
+
def recipients(field)
|
28
|
+
headers[field].to_s.split(',').map(&:strip)
|
29
|
+
end
|
30
|
+
|
30
31
|
def ccs
|
31
|
-
|
32
|
+
@ccs ||= recipients(header_keys[:cc])
|
33
|
+
end
|
34
|
+
|
35
|
+
def tos
|
36
|
+
@tos ||= recipients(header_keys[:to])
|
37
|
+
end
|
38
|
+
|
39
|
+
def envelope_to
|
40
|
+
@envelope_to ||= params[:envelope][:to]
|
41
|
+
end
|
42
|
+
|
43
|
+
def header_emails
|
44
|
+
@header_emails ||= (tos | ccs).map { |addressee| Griddler::EmailParser.parse_address(addressee)[:email] }
|
45
|
+
end
|
46
|
+
|
47
|
+
def bcc
|
48
|
+
@bcc ||= header_emails.include?(envelope_to) ? [] : [envelope_to]
|
49
|
+
end
|
50
|
+
|
51
|
+
def headers
|
52
|
+
@headers ||= params[:headers]
|
32
53
|
end
|
54
|
+
|
55
|
+
def base_params # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
56
|
+
@base_params ||= {
|
57
|
+
to: tos,
|
58
|
+
cc: ccs,
|
59
|
+
from: headers[header_keys[:from]],
|
60
|
+
date: headers[header_keys[:date]].try(:to_datetime),
|
61
|
+
subject: headers[header_keys[:subject]],
|
62
|
+
text: params[:plain],
|
63
|
+
html: params[:html],
|
64
|
+
attachments: params.fetch(:attachments) { {} }.values,
|
65
|
+
headers: headers
|
66
|
+
}
|
67
|
+
end
|
68
|
+
|
69
|
+
def header_keys
|
70
|
+
@header_keys ||= Hash[legacy? ? KEY_LIST.map { |s| [s, s.capitalize] } : KEY_LIST.map { |s| [s, s] }]
|
71
|
+
end
|
72
|
+
|
73
|
+
KEY_LIST = [:from, :to, :cc, :date, :subject].freeze
|
33
74
|
end
|
34
75
|
end
|
35
76
|
end
|
@@ -1,50 +1,165 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
+
describe Griddler::Cloudmailin::Adapter do
|
4
|
+
it 'registers itself with griddler' do
|
5
|
+
expect(Griddler.adapter_registry[:cloudmailin]).to be(
|
6
|
+
Griddler::Cloudmailin::Adapter
|
7
|
+
)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
3
11
|
describe Griddler::Cloudmailin::Adapter, '.normalize_params' do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
+
context 'without bcc' do
|
13
|
+
it_should_behave_like(
|
14
|
+
'Griddler adapter',
|
15
|
+
:cloudmailin,
|
16
|
+
envelope: {
|
17
|
+
to: 'hi@example.com',
|
18
|
+
from: 'there@example.com'
|
19
|
+
},
|
20
|
+
plain: 'hi',
|
21
|
+
headers: {
|
22
|
+
From: 'there@example.com',
|
23
|
+
To: 'Hello World <hi@example.com>',
|
24
|
+
Cc: 'emily@example.com'
|
25
|
+
}
|
26
|
+
)
|
27
|
+
end
|
28
|
+
|
29
|
+
context 'with bcc' do
|
30
|
+
it_should_behave_like(
|
31
|
+
'Griddler adapter',
|
32
|
+
:cloudmailin,
|
33
|
+
envelope: {
|
34
|
+
to: 'sandra@example.com',
|
35
|
+
from: 'there@example.com'
|
36
|
+
},
|
37
|
+
plain: 'hi',
|
38
|
+
headers: {
|
39
|
+
From: 'there@example.com',
|
40
|
+
To: 'Hello World <hi@example.com>',
|
41
|
+
Cc: 'emily@example.com'
|
42
|
+
}
|
43
|
+
)
|
44
|
+
end
|
12
45
|
|
13
46
|
it 'normalizes parameters' do
|
14
|
-
expect(
|
47
|
+
expect(normalized).to be_normalized_to(
|
48
|
+
to: ['Some Identifier <some-identifier@example.com>'],
|
49
|
+
cc: ['emily@example.com'],
|
50
|
+
from: 'Joe User <joeuser@example.com>',
|
51
|
+
subject: 'Re: [ThisApp] That thing',
|
52
|
+
text: /Dear bob/
|
53
|
+
)
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'normalizes parameters where the recipient has been BCCed' do
|
57
|
+
expect(normalized(bcc_params)).to be_normalized_to(
|
15
58
|
to: ['Some Identifier <some-identifier@example.com>'],
|
16
59
|
cc: ['emily@example.com'],
|
60
|
+
bcc: ['sandra@example.com'],
|
17
61
|
from: 'Joe User <joeuser@example.com>',
|
18
62
|
subject: 'Re: [ThisApp] That thing',
|
19
63
|
text: /Dear bob/
|
20
|
-
|
64
|
+
)
|
21
65
|
end
|
22
66
|
|
23
|
-
it '
|
24
|
-
|
67
|
+
it 'normalizes parameters where the recipient has been CCed' do
|
68
|
+
expect(normalized(cc_params)).to be_normalized_to(
|
69
|
+
cc: ['Some Identifier <some-identifier@example.com>'],
|
70
|
+
to: ['emily@example.com'],
|
71
|
+
from: 'Joe User <joeuser@example.com>',
|
72
|
+
subject: 'Re: [ThisApp] That thing',
|
73
|
+
text: /Dear bob/
|
74
|
+
)
|
75
|
+
end
|
76
|
+
|
77
|
+
it 'changes attachments to an array of files' do
|
78
|
+
params = BASE_PARAMS.merge(attachments: { '0' => upload_1, '1' => upload_2 })
|
25
79
|
|
26
|
-
normalized_params =
|
27
|
-
expect(normalized_params[:attachments]).to
|
80
|
+
normalized_params = normalized(params)
|
81
|
+
expect(normalized_params[:attachments]).to include(upload_1, upload_2)
|
82
|
+
expect(normalized_params[:attachments]).not_to include('0')
|
83
|
+
expect(normalized_params[:attachments]).not_to include('1')
|
28
84
|
end
|
29
85
|
|
30
86
|
it 'has no attachments' do
|
31
|
-
|
87
|
+
expect(normalized[:attachments]).to be_empty
|
88
|
+
end
|
32
89
|
|
33
|
-
|
34
|
-
expect(
|
90
|
+
it 'wraps to in an array' do
|
91
|
+
expect(normalized[:to]).to eq([BASE_PARAMS[:headers][:to]])
|
35
92
|
end
|
36
93
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
headers: { Subject: 'Re: [ThisApp] That thing', Cc: 'emily@example.com' },
|
41
|
-
plain: <<-EOS.strip_heredoc.strip
|
42
|
-
Dear bob
|
94
|
+
it 'wraps cc in an array' do
|
95
|
+
expect(normalized[:cc]).to eq([BASE_PARAMS[:headers][:cc]])
|
96
|
+
end
|
43
97
|
|
44
|
-
|
98
|
+
it 'returns the date' do
|
99
|
+
expect(normalized[:date]).to eq(BASE_PARAMS[:headers][:date].to_datetime)
|
100
|
+
end
|
101
|
+
|
102
|
+
it 'returns an array even if cc is empty' do
|
103
|
+
expect(normalized(nocc_params)[:cc]).to eq([])
|
104
|
+
end
|
105
|
+
|
106
|
+
it 'detects which format of params is in use' do
|
107
|
+
expect(Griddler::Cloudmailin::Adapter.new(BASE_PARAMS).legacy?).to be_falsey
|
108
|
+
expect(Griddler::Cloudmailin::Adapter.new(BASE_PARAMS_LEGACY).legacy?).to be_truthy
|
109
|
+
end
|
110
|
+
|
111
|
+
def normalized(params = BASE_PARAMS)
|
112
|
+
Griddler::Cloudmailin::Adapter.normalize_params(params)
|
113
|
+
end
|
114
|
+
|
115
|
+
def bcc_params
|
116
|
+
BASE_PARAMS.merge(
|
117
|
+
envelope: BASE_PARAMS[:envelope].merge(to: 'sandra@example.com')
|
118
|
+
)
|
119
|
+
end
|
120
|
+
|
121
|
+
def nocc_params
|
122
|
+
BASE_PARAMS.merge(
|
123
|
+
headers: BASE_PARAMS[:headers].except(:cc)
|
124
|
+
)
|
125
|
+
end
|
45
126
|
|
46
|
-
|
47
|
-
|
48
|
-
|
127
|
+
def cc_params
|
128
|
+
BASE_PARAMS.merge(
|
129
|
+
headers: BASE_PARAMS[:headers].merge(
|
130
|
+
cc: 'Some Identifier <some-identifier@example.com>',
|
131
|
+
to: 'emily@example.com'
|
132
|
+
)
|
133
|
+
)
|
49
134
|
end
|
135
|
+
|
136
|
+
BASE_PARAMS = {
|
137
|
+
envelope: {
|
138
|
+
to: 'some-identifier@example.com',
|
139
|
+
from: 'joeuser@example.com'
|
140
|
+
},
|
141
|
+
headers: {
|
142
|
+
subject: 'Re: [ThisApp] That thing',
|
143
|
+
from: 'Joe User <joeuser@example.com>',
|
144
|
+
to: 'Some Identifier <some-identifier@example.com>',
|
145
|
+
cc: 'emily@example.com',
|
146
|
+
date: 'Fri, 30 Sep 2016 10:30:15 +0200'
|
147
|
+
},
|
148
|
+
plain: "Dear bob\n\nReply ABOVE THIS LINE\n\nhey sup"
|
149
|
+
}.freeze
|
150
|
+
|
151
|
+
BASE_PARAMS_LEGACY = {
|
152
|
+
envelope: {
|
153
|
+
to: 'some-identifier@example.com',
|
154
|
+
from: 'joeuser@example.com'
|
155
|
+
},
|
156
|
+
headers: {
|
157
|
+
Subject: 'Re: [ThisApp] That thing',
|
158
|
+
From: 'Joe User <joeuser@example.com>',
|
159
|
+
To: 'Some Identifier <some-identifier@example.com>',
|
160
|
+
Cc: 'emily@example.com',
|
161
|
+
Date: 'Fri, 30 Sep 2016 10:30:15 +0200'
|
162
|
+
},
|
163
|
+
plain: "Dear bob\n\nReply ABOVE THIS LINE\n\nhey sup"
|
164
|
+
}.freeze
|
50
165
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,79 +1,40 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: griddler-cloudmailin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Dominic Sayers & Caleb Thompson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-04-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: bundler
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.6'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '1.6'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rake
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rspec
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
13
|
- !ruby/object:Gem::Dependency
|
56
14
|
name: griddler
|
57
15
|
requirement: !ruby/object:Gem::Requirement
|
58
16
|
requirements:
|
59
|
-
- -
|
17
|
+
- - ! '>='
|
60
18
|
- !ruby/object:Gem::Version
|
61
19
|
version: '0'
|
62
20
|
type: :runtime
|
63
21
|
prerelease: false
|
64
22
|
version_requirements: !ruby/object:Gem::Requirement
|
65
23
|
requirements:
|
66
|
-
- -
|
24
|
+
- - ! '>='
|
67
25
|
- !ruby/object:Gem::Version
|
68
26
|
version: '0'
|
69
|
-
description: Griddler
|
27
|
+
description: Griddler Plugin for cloudmailin email parsing service
|
70
28
|
email:
|
71
|
-
-
|
29
|
+
- dominic@sayers.cc
|
72
30
|
executables: []
|
73
31
|
extensions: []
|
74
32
|
extra_rdoc_files: []
|
75
33
|
files:
|
76
|
-
-
|
34
|
+
- .gitignore
|
35
|
+
- .hound.yml
|
36
|
+
- .rubocop.yml
|
37
|
+
- .travis.yml
|
77
38
|
- Gemfile
|
78
39
|
- LICENSE.txt
|
79
40
|
- README.md
|
@@ -84,7 +45,7 @@ files:
|
|
84
45
|
- lib/griddler/cloudmailin/version.rb
|
85
46
|
- spec/griddler/cloudmailin/adapter_spec.rb
|
86
47
|
- spec/spec_helper.rb
|
87
|
-
homepage:
|
48
|
+
homepage: https://github.com/thoughtbot/griddler-cloudmailin
|
88
49
|
licenses:
|
89
50
|
- MIT
|
90
51
|
metadata: {}
|
@@ -94,20 +55,20 @@ require_paths:
|
|
94
55
|
- lib
|
95
56
|
required_ruby_version: !ruby/object:Gem::Requirement
|
96
57
|
requirements:
|
97
|
-
- -
|
58
|
+
- - ! '>='
|
98
59
|
- !ruby/object:Gem::Version
|
99
60
|
version: '0'
|
100
61
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
62
|
requirements:
|
102
|
-
- -
|
63
|
+
- - ! '>='
|
103
64
|
- !ruby/object:Gem::Version
|
104
65
|
version: '0'
|
105
66
|
requirements: []
|
106
67
|
rubyforge_project:
|
107
|
-
rubygems_version: 2.
|
68
|
+
rubygems_version: 2.6.11
|
108
69
|
signing_key:
|
109
70
|
specification_version: 4
|
110
|
-
summary: Griddler
|
71
|
+
summary: Griddler Plugin for cloudmailin
|
111
72
|
test_files:
|
112
73
|
- spec/griddler/cloudmailin/adapter_spec.rb
|
113
74
|
- spec/spec_helper.rb
|