Skip to content

Commit

Permalink
Merge pull request #3 from immateriel/v1.1.0
Browse files Browse the repository at this point in the history
V1.1.0
  • Loading branch information
ElodieAilleaume authored Mar 7, 2022
2 parents 709f84a + 4baa6d1 commit a74cc97
Show file tree
Hide file tree
Showing 6 changed files with 44 additions and 22 deletions.
34 changes: 18 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,6 @@ This gem provide classes for an easy use of the [sendrig-ruby](https://github.co

Ruby version >= 2.4 (except version [2.6.0](https://github.com/sendgrid/sendgrid-ruby/blob/main/TROUBLESHOOTING.md#ruby-versions))

## Setup Environment Variables

Update the development environment with your SENDGRID_API_KEY, for example:

```
echo "export SENDGRID_API_KEY='YOUR_API_KEY'" > sendgrid.env
echo "sendgrid.env" >> .gitignore
source ./sendgrid.env
```

## Installation

Add this line to your application's Gemfile:
Expand All @@ -32,11 +22,23 @@ Or install it yourself as:

$ gem install sendgrid-object

## Configuration

You need to configure the api key with the following code. You can add it in `/config/initializers/sendgrid.rb` for example.

```ruby
require 'sendgrid-object'

Sendgrid.config do
api_key 'YOUR_API_KEY_HERE'
end
```

## Quick start

### Find a recipient

```
```ruby
recipient = Sendgrid::Recipient.new()
recipient.find_by("email", "[email protected]")
=> {"id"=>"ID", "email"=>"[email protected]", "created_at"=>TIMESTAMP, "updated_at"=>TIMESTAMP, "last_emailed"=>TIMESTAMP, "last_clicked"=>TIMESTAMP, "last_opened"=>TIMESTAMP, "first_name"=>"John", "last_name"=>"Doe"}
Expand All @@ -50,7 +52,7 @@ end

### Create a recipient

```
```ruby
recipient = Sendgrid::Recipient.new()
recipient.create({ email: "[email protected]" })
=> "ID"
Expand All @@ -64,7 +66,7 @@ end

### Add a recipient to an existing list

```
```ruby
recipient = Sendgrid::Recipient.new()
recipient.find_by("email", "[email protected]")
list = Sendgrid::List.new()
Expand All @@ -77,7 +79,7 @@ end

OR

```
```ruby
recipient = Sendgrid::Recipient.new()
recipient.find_by("email", "[email protected]")
list = Sendgrid::List.new()
Expand All @@ -90,7 +92,7 @@ puts "User successfully added." unless list.errors

### Destroy a recipient

```
```ruby
recipient = Sendgrid::Recipient.new()
recipient.find_by("email", "[email protected]")
=> {"id"=>"ID", "email"=>"[email protected]", "created_at"=>TIMESTAMP, "updated_at"=>TIMESTAMP, "last_emailed"=>TIMESTAMP, "last_clicked"=>TIMESTAMP, "last_opened"=>TIMESTAMP, "first_name"=>"John", "last_name"=>"Doe"}
Expand All @@ -102,7 +104,7 @@ end

OR

```
```ruby
recipient = Sendgrid::Recipient.new()
recipient.destroy("ID")
puts "User successfully destroyed." unless recipient.errors
Expand Down
20 changes: 20 additions & 0 deletions lib/sendgrid.rb
Original file line number Diff line number Diff line change
@@ -1,2 +1,22 @@
module Sendgrid
extend self

def parameter(*names)
names.each do |name|
attr_accessor name

define_method name do |*values|
value = values.first
value ? self.send("#{name}=", value) : instance_variable_get("@#{name}")
end
end
end

def config(&block)
instance_eval &block
end
end

Sendgrid.config do
parameter :api_key
end
2 changes: 1 addition & 1 deletion lib/sendgrid/list.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ class Sendgrid::List
attr_accessor :name

def initialize(data = {})
@api = ::SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY'])
@api = ::SendGrid::API.new(api_key: Sendgrid.api_key)
@errors = nil
reset_properties
@name ||= data["name"]
Expand Down
2 changes: 1 addition & 1 deletion lib/sendgrid/recipient.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ class Sendgrid::Recipient
attr_accessor :email, :first_name, :last_name

def initialize
@api = ::SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY'])
@api = ::SendGrid::API.new(api_key: Sendgrid.api_key)
@errors = nil
reset_properties
end
Expand Down
2 changes: 1 addition & 1 deletion lib/sendgrid/version.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module Sendgrid
VERSION = "1.0.1"
VERSION = "1.1.0"
end
6 changes: 3 additions & 3 deletions spec/spec_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
require "sendgrid-object"
require 'webmock/rspec'

ENV['SENDGRID_API_KEY']="ThisIsAFakeKey"
Sendgrid.api_key = "ThisIsAFakeKey"

RSpec.configure do |config|

Expand All @@ -12,14 +12,14 @@
headers = {
'Accept'=>'application/json',
'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
'Authorization'=>"Bearer #{ENV['SENDGRID_API_KEY']}",
'Authorization'=>"Bearer #{Sendgrid.api_key}",
'Content-Type'=>'application/json',
'User-Agent'=>'sendgrid/6.6.1;ruby'
}
headers_without_content_type = {
'Accept'=>'application/json',
'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
'Authorization'=>"Bearer #{ENV['SENDGRID_API_KEY']}",
'Authorization'=>"Bearer #{Sendgrid.api_key}",
'User-Agent'=>'sendgrid/6.6.1;ruby'
}

Expand Down

0 comments on commit a74cc97

Please sign in to comment.