griddler-cloudmailin 0.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: fedb235f9299777b382940abbebbdecb9ef76f48
4
- data.tar.gz: 10cd44cd4cc53fd480d48df5dc49a562a21fe676
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ Yjk1MmZiNTExNTBjZTQwNTdhOWEzYzU3NGI5ZDMwYWJkZDI1Yzk0OA==
5
+ data.tar.gz: !binary |-
6
+ MGRjZjRmY2MyMTY1MGEzNDYzZWQyYTJiZTM1MDk4ZmZjOGM1OTc2OA==
5
7
  SHA512:
6
- metadata.gz: 346ae7e46d5fcbec5a80da8a01acbf9acace8d883103b45b4550f8228cf8c5951c886565c4f2fa034a00fd89553bf80a00e38811998644656a1e04d2b735dd79
7
- data.tar.gz: a2e66410901a3c7056a0e692a2d7fe821a7e2a59b08fc490940d993ec7631883b1651db592c23dda197b9f9d853da1205a496cbaead507c8ec8036fce1bbec11
8
+ metadata.gz: !binary |-
9
+ YTBiNDBiNTljNGRkY2EyNTUwNGFhMjhkOTI1NjMwMDE2ZTlhMWQ4YTM2NTZh
10
+ NTUxMTI4NDgzMDZjNmRmOTFiMzhkYTQ3OTMwNzUxZTAyZjgwYmMyZmVlNTM5
11
+ ZjU1YjFmMGJiOWQyMTZiYmVkODQ4YTdhYTcwYWJkZDVhMTgzMjc=
12
+ data.tar.gz: !binary |-
13
+ NjM5MzRlMjY4ZmZlZjhhNDM5M2NjNzM0M2E2Yzc5MWFkNWFlYjgwZWI1ZDBj
14
+ ZWEwMDNmY2M3NmY1ODFhMWViNTQ5NjhlM2M3OGU0YTMzYTAxZjk4MDExMDk5
15
+ MzEyNzNkMGY0NmZiODViOTVlMjY5M2NmYTAwMzA4ZTYyNTc4MDA=
data/.gitignore CHANGED
@@ -1,3 +1,6 @@
1
+ .ruby-gemset
2
+ .ruby-version
3
+ .rspec
1
4
  *.gem
2
5
  *.rbc
3
6
  .bundle
@@ -0,0 +1,4 @@
1
+ ---
2
+ ruby:
3
+ enabled: true
4
+ config_file: .rubocop.yml
@@ -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
@@ -0,0 +1,13 @@
1
+ language: ruby
2
+ dist: trusty
3
+ rvm:
4
+ - 2.4.0
5
+ - 2.3
6
+ - 2.2
7
+ - 1.9
8
+ - jruby
9
+
10
+ before_install:
11
+ - gem update bundler
12
+
13
+ script: bundle exec rspec
data/Gemfile CHANGED
@@ -1,5 +1,22 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
- gem "griddler", github: "thoughtbot/griddler"
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
@@ -1,5 +1,4 @@
1
- Copyright (c) 2014
2
- Portions copyright (c) 2014 Caleb Thompson, Joel Oliveira and thoughtbot, inc.
1
+ Copyright (c) 2017 Dominic Sayers and Caleb Thompson
3
2
 
4
3
  MIT License
5
4
 
data/README.md CHANGED
@@ -1,4 +1,11 @@
1
1
  # Griddler::Cloudmailin
2
+ [![Gem Version](https://badge.fury.io/rb/griddler-cloudmailin.svg)](https://rubygems.org/gems/griddler-cloudmailin)
3
+ [![Gem downloads](https://img.shields.io/gem/dt/griddler-cloudmailin.svg)](https://rubygems.org/gems/griddler-cloudmailin)
4
+ [![Code quality](http://img.shields.io/codeclimate/github/thoughtbot/griddler-cloudmailin.svg?style=flat)](https://codeclimate.com/github/thoughtbot/griddler-cloudmailin)
5
+ [![Dependency Status](https://gemnasium.com/badges/github.com/thoughtbot/griddler-cloudmailin.svg)](https://gemnasium.com/github.com/thoughtbot/griddler-cloudmailin)
6
+ [![Security](https://hakiri.io/github/thoughtbot/griddler-cloudmailin/master.svg)](https://hakiri.io/github/thoughtbot/griddler-cloudmailin/master)
7
+ [![Build status](https://img.shields.io/travis/thoughtbot/griddler-cloudmailin/master.svg)](https://travis-ci.org/thoughtbot/griddler-cloudmailin)
8
+ [![Coverage Status](https://coveralls.io/repos/github/thoughtbot/griddler-cloudmailin/badge.svg?branch=master)](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
- TODO: Write usage instructions here
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
- * [Cloudmailin Docs](http://docs.cloudmailin.com/)
38
+ * [Griddler](https://github.com/thoughtbot/griddler)
39
+ * [Cloudmailin documentation](http://docs.cloudmailin.com/)
data/Rakefile CHANGED
@@ -1,2 +1 @@
1
- require "bundler/gem_tasks"
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 = "griddler-cloudmailin"
7
+ spec.name = 'griddler-cloudmailin'
8
8
  spec.version = Griddler::Cloudmailin::VERSION
9
- spec.authors = ["calebthompson"]
10
- spec.email = ["caleb@calebthompson.io"]
11
- spec.summary = %q{Griddler Cloudmailin}
12
- spec.description = %q{Griddler Cloudmailin}
13
- spec.homepage = ""
14
- spec.license = "MIT"
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 -z`.split("\x0")
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
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.add_development_dependency "bundler", "~> 1.6"
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
@@ -1,5 +1,5 @@
1
- require "griddler"
2
- require "griddler/cloudmailin/version"
3
- require "griddler/cloudmailin/adapter"
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
- to: params[:envelope][:to].split(','),
18
- cc: ccs,
19
- from: params[:envelope][:from],
20
- subject: params[:headers][:Subject],
21
- text: params[:plain],
22
- attachments: params.fetch(:attachments) { [] },
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
- params[:headers][:Cc].to_s.split(',').map(&:strip)
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,5 +1,5 @@
1
1
  module Griddler
2
2
  module Cloudmailin
3
- VERSION = "0.0.1"
3
+ VERSION = '1.1.0'.freeze
4
4
  end
5
5
  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
- it_should_behave_like 'Griddler adapter', :cloudmailin, {
5
- envelope: {
6
- to: 'Hello World <hi@example.com>',
7
- from: 'There <there@example.com>',
8
- },
9
- plain: 'hi',
10
- headers: { Cc: 'emily@example.com' },
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(Griddler::Cloudmailin::Adapter.normalize_params(default_params)).to be_normalized_to({
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 'passes the received array of files' do
24
- params = default_params.merge({ attachments: [upload_1, upload_2] })
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 = Griddler::Cloudmailin::Adapter.normalize_params(params)
27
- expect(normalized_params[:attachments]).to eq [upload_1, upload_2]
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
- params = default_params
87
+ expect(normalized[:attachments]).to be_empty
88
+ end
32
89
 
33
- normalized_params = Griddler::Cloudmailin::Adapter.normalize_params(params)
34
- expect(normalized_params[:attachments]).to be_empty
90
+ it 'wraps to in an array' do
91
+ expect(normalized[:to]).to eq([BASE_PARAMS[:headers][:to]])
35
92
  end
36
93
 
37
- def default_params
38
- {
39
- envelope: { to: 'Some Identifier <some-identifier@example.com>', from: 'Joe User <joeuser@example.com>' },
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
- Reply ABOVE THIS LINE
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
- hey sup
47
- EOS
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
@@ -1,3 +1,11 @@
1
+ unless ENV['NO_SIMPLECOV']
2
+ require 'simplecov'
3
+ require 'coveralls'
4
+
5
+ SimpleCov.start { add_filter '/spec/' }
6
+ Coveralls.wear! if ENV['COVERALLS_REPO_TOKEN']
7
+ end
8
+
1
9
  require 'griddler/testing'
2
10
  require 'griddler/cloudmailin'
3
11
 
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: 0.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
- - calebthompson
7
+ - Dominic Sayers & Caleb Thompson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-27 00:00:00.000000000 Z
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 Cloudmailin
27
+ description: Griddler Plugin for cloudmailin email parsing service
70
28
  email:
71
- - caleb@calebthompson.io
29
+ - dominic@sayers.cc
72
30
  executables: []
73
31
  extensions: []
74
32
  extra_rdoc_files: []
75
33
  files:
76
- - ".gitignore"
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.4.5
68
+ rubygems_version: 2.6.11
108
69
  signing_key:
109
70
  specification_version: 4
110
- summary: Griddler Cloudmailin
71
+ summary: Griddler Plugin for cloudmailin
111
72
  test_files:
112
73
  - spec/griddler/cloudmailin/adapter_spec.rb
113
74
  - spec/spec_helper.rb