sendgrid_events_pbxx 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZTI5ZmNkNDYwNWE1MjhmNGExYzBlYzk5YmYwMTUzN2JhOWUyMGQ3NA==
5
+ data.tar.gz: !binary |-
6
+ MjRjYTM4YjFmYzhkZjRlN2I2OWI1ZDM1MDQxYzcxYTg3NTgzY2Q2Yg==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ OGQ5OWM1MmM3NWE5ZWUwY2NiMTE5ODI5ZGVhZGYwYTQ0NWNhZmRkNjAyOWNh
10
+ OWU1NzAyNTYxZDEwNmQ1ZTQ5NGE5NTE5NTkxYWNhOWEyYTJmMTk1NmFkZTZl
11
+ ZTY1MmJhMTFkZGMxNjFmMTAzMDYyNzFiNWU4NjQ0ZmM0MWNjNDA=
12
+ data.tar.gz: !binary |-
13
+ YmMyNGU4MGY4NTBlMTE2MDBjZDc1ZDRmZTg1NzM3NzcwYjE3NTY5NjQ5NmM5
14
+ ZTVmZjc4MjJlMWNiMGVkNzc3YWI2OGUxZTEwZWYwNzEwNjEzOTM4NDJiNzY2
15
+ MWU5NDE0N2E2ODg5ZDgxZjIyNDZmYjQ4ZTc1YzcyZmM4YTY1Njg=
data/Gemfile CHANGED
@@ -3,4 +3,5 @@ source "http://rubygems.org"
3
3
  gemspec
4
4
 
5
5
  gem 'enumerated_field'
6
- gem 'jeweler'
6
+ gem 'jeweler'
7
+ gem 'yajl-ruby'
@@ -1,10 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sendgrid_events_pbxx (0.1.5)
4
+ sendgrid_events_pbxx (0.1.6)
5
5
  enumerated_field
6
6
  rails (~> 3.2)
7
7
  sendgrid-rails (~> 2.0)
8
+ yajl-ruby
8
9
 
9
10
  GEM
10
11
  remote: http://rubygems.org/
@@ -137,6 +138,7 @@ GEM
137
138
  websocket (1.0.7)
138
139
  xpath (1.0.0)
139
140
  nokogiri (~> 1.3)
141
+ yajl-ruby (1.1.0)
140
142
 
141
143
  PLATFORMS
142
144
  ruby
@@ -152,3 +154,4 @@ DEPENDENCIES
152
154
  rspec-rails (~> 2)
153
155
  sendgrid_events_pbxx!
154
156
  sqlite3
157
+ yajl-ruby
data/README.md CHANGED
@@ -4,6 +4,8 @@
4
4
  [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/jphenow/sendgrid_events)
5
5
  [Ruby Gems](https://rubygems.org/gems/sendgrid_events)
6
6
 
7
+ [ ![Codeship Status for russen/sendgrid_events](https://www.codeship.io/projects/4f39bdb0-8fe0-0130-0a29-760ea69aac78/status?branch=master)](https://www.codeship.io/projects/2918)
8
+
7
9
  SendgridEvents is a gem designed to give your application [Sendgrid postbacks](http://docs.sendgrid.com/documentation/api/event-api/).
8
10
  With these postbacks you are more able to track the status of your emails programatically.
9
11
 
@@ -1,3 +1,7 @@
1
+ require 'yajl' unless defined?(Yajl)
2
+ require 'action_dispatch'
3
+ require 'action_dispatch/middleware/params_parser'
4
+
1
5
  module SendgridEvents
2
6
  class Middleware
3
7
  def initialize(app)
@@ -11,10 +15,18 @@ module SendgridEvents
11
15
 
12
16
  private
13
17
  def scrub(env)
14
- rack_input = env["rack.input"].read
15
- rack_input ="[#{rack_input.split("\r\n").join(",")}]"
16
- env["rack.input"] = StringIO.new(rack_input)
17
- rescue
18
+ parser = ::Yajl::Parser.new
19
+ data = {_json: []}
20
+
21
+ parser.on_parse_complete = lambda {|rec|
22
+ data[:_json] << rec.with_indifferent_access
23
+ }
24
+
25
+ parser.parse(env['rack.input'])
26
+ env["rack.input"] = StringIO.new(data.to_json)
27
+ rescue => e
28
+ env["rack.input"].rewind
29
+ Rails.logger.info "FAILED---- RACK.INPUT: #{env["rack.input"].read}"
18
30
  ensure
19
31
  env["rack.input"].rewind
20
32
  end
@@ -1,3 +1,3 @@
1
1
  module SendgridEvents
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
@@ -25,4 +25,5 @@ Gem::Specification.new do |gem|
25
25
  gem.add_dependency 'rails', '~> 3.2'
26
26
  gem.add_dependency 'sendgrid-rails', '~> 2.0'
27
27
  gem.add_dependency 'enumerated_field'
28
+ gem.add_dependency 'yajl-ruby'
28
29
  end
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sendgrid_events_pbxx
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
5
- prerelease:
4
+ version: 0.1.6
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jon Phenow
@@ -10,12 +9,11 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2013-04-11 00:00:00.000000000 Z
12
+ date: 2013-07-18 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: rake
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
18
  - - ! '>='
21
19
  - !ruby/object:Gem::Version
@@ -23,7 +21,6 @@ dependencies:
23
21
  type: :development
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
25
  - - ! '>='
29
26
  - !ruby/object:Gem::Version
@@ -31,7 +28,6 @@ dependencies:
31
28
  - !ruby/object:Gem::Dependency
32
29
  name: awesome_print
33
30
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
31
  requirements:
36
32
  - - ! '>='
37
33
  - !ruby/object:Gem::Version
@@ -39,7 +35,6 @@ dependencies:
39
35
  type: :development
40
36
  prerelease: false
41
37
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
38
  requirements:
44
39
  - - ! '>='
45
40
  - !ruby/object:Gem::Version
@@ -47,7 +42,6 @@ dependencies:
47
42
  - !ruby/object:Gem::Dependency
48
43
  name: rspec-rails
49
44
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
45
  requirements:
52
46
  - - ~>
53
47
  - !ruby/object:Gem::Version
@@ -55,7 +49,6 @@ dependencies:
55
49
  type: :development
56
50
  prerelease: false
57
51
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
52
  requirements:
60
53
  - - ~>
61
54
  - !ruby/object:Gem::Version
@@ -63,7 +56,6 @@ dependencies:
63
56
  - !ruby/object:Gem::Dependency
64
57
  name: capybara
65
58
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
59
  requirements:
68
60
  - - ! '>='
69
61
  - !ruby/object:Gem::Version
@@ -71,7 +63,6 @@ dependencies:
71
63
  type: :development
72
64
  prerelease: false
73
65
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
66
  requirements:
76
67
  - - ! '>='
77
68
  - !ruby/object:Gem::Version
@@ -79,7 +70,6 @@ dependencies:
79
70
  - !ruby/object:Gem::Dependency
80
71
  name: rails
81
72
  requirement: !ruby/object:Gem::Requirement
82
- none: false
83
73
  requirements:
84
74
  - - ~>
85
75
  - !ruby/object:Gem::Version
@@ -87,7 +77,6 @@ dependencies:
87
77
  type: :development
88
78
  prerelease: false
89
79
  version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
80
  requirements:
92
81
  - - ~>
93
82
  - !ruby/object:Gem::Version
@@ -95,7 +84,6 @@ dependencies:
95
84
  - !ruby/object:Gem::Dependency
96
85
  name: factory_girl_rails
97
86
  requirement: !ruby/object:Gem::Requirement
98
- none: false
99
87
  requirements:
100
88
  - - ~>
101
89
  - !ruby/object:Gem::Version
@@ -103,7 +91,6 @@ dependencies:
103
91
  type: :development
104
92
  prerelease: false
105
93
  version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
94
  requirements:
108
95
  - - ~>
109
96
  - !ruby/object:Gem::Version
@@ -111,7 +98,6 @@ dependencies:
111
98
  - !ruby/object:Gem::Dependency
112
99
  name: sqlite3
113
100
  requirement: !ruby/object:Gem::Requirement
114
- none: false
115
101
  requirements:
116
102
  - - ! '>='
117
103
  - !ruby/object:Gem::Version
@@ -119,7 +105,6 @@ dependencies:
119
105
  type: :development
120
106
  prerelease: false
121
107
  version_requirements: !ruby/object:Gem::Requirement
122
- none: false
123
108
  requirements:
124
109
  - - ! '>='
125
110
  - !ruby/object:Gem::Version
@@ -127,7 +112,6 @@ dependencies:
127
112
  - !ruby/object:Gem::Dependency
128
113
  name: rails
129
114
  requirement: !ruby/object:Gem::Requirement
130
- none: false
131
115
  requirements:
132
116
  - - ~>
133
117
  - !ruby/object:Gem::Version
@@ -135,7 +119,6 @@ dependencies:
135
119
  type: :runtime
136
120
  prerelease: false
137
121
  version_requirements: !ruby/object:Gem::Requirement
138
- none: false
139
122
  requirements:
140
123
  - - ~>
141
124
  - !ruby/object:Gem::Version
@@ -143,7 +126,6 @@ dependencies:
143
126
  - !ruby/object:Gem::Dependency
144
127
  name: sendgrid-rails
145
128
  requirement: !ruby/object:Gem::Requirement
146
- none: false
147
129
  requirements:
148
130
  - - ~>
149
131
  - !ruby/object:Gem::Version
@@ -151,7 +133,6 @@ dependencies:
151
133
  type: :runtime
152
134
  prerelease: false
153
135
  version_requirements: !ruby/object:Gem::Requirement
154
- none: false
155
136
  requirements:
156
137
  - - ~>
157
138
  - !ruby/object:Gem::Version
@@ -159,7 +140,6 @@ dependencies:
159
140
  - !ruby/object:Gem::Dependency
160
141
  name: enumerated_field
161
142
  requirement: !ruby/object:Gem::Requirement
162
- none: false
163
143
  requirements:
164
144
  - - ! '>='
165
145
  - !ruby/object:Gem::Version
@@ -167,7 +147,20 @@ dependencies:
167
147
  type: :runtime
168
148
  prerelease: false
169
149
  version_requirements: !ruby/object:Gem::Requirement
170
- none: false
150
+ requirements:
151
+ - - ! '>='
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ - !ruby/object:Gem::Dependency
155
+ name: yajl-ruby
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ! '>='
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
161
+ type: :runtime
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
171
164
  requirements:
172
165
  - - ! '>='
173
166
  - !ruby/object:Gem::Version
@@ -232,33 +225,26 @@ files:
232
225
  - spec/spec_helper.rb
233
226
  homepage: ''
234
227
  licenses: []
228
+ metadata: {}
235
229
  post_install_message:
236
230
  rdoc_options: []
237
231
  require_paths:
238
232
  - lib
239
233
  required_ruby_version: !ruby/object:Gem::Requirement
240
- none: false
241
234
  requirements:
242
235
  - - ! '>='
243
236
  - !ruby/object:Gem::Version
244
237
  version: '0'
245
- segments:
246
- - 0
247
- hash: -2059513458459870568
248
238
  required_rubygems_version: !ruby/object:Gem::Requirement
249
- none: false
250
239
  requirements:
251
240
  - - ! '>='
252
241
  - !ruby/object:Gem::Version
253
242
  version: '0'
254
- segments:
255
- - 0
256
- hash: -2059513458459870568
257
243
  requirements: []
258
244
  rubyforge_project:
259
- rubygems_version: 1.8.25
245
+ rubygems_version: 2.0.3
260
246
  signing_key:
261
- specification_version: 3
247
+ specification_version: 4
262
248
  summary: ''
263
249
  test_files:
264
250
  - spec/sendgrid_events/action_mailer_override_spec.rb