Skip to content

Commit ca9dec5

Browse files
authored
Merge pull request #29 from lsmolic/feature/refactor
feature/refactor
2 parents f425db6 + 4c47413 commit ca9dec5

File tree

10 files changed

+4668
-98
lines changed

10 files changed

+4668
-98
lines changed

.rubocop.yml

Lines changed: 3923 additions & 0 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# Exponent Server SDK Ruby
2+
23
[![Build Status](https://travis-ci.org/expo/expo-server-sdk-ruby.svg?branch=master)](https://travis-ci.org/expo/expo-server-sdk-ruby)
34
[![Gem Version](https://badge.fury.io/rb/exponent-server-sdk.svg)](https://badge.fury.io/rb/exponent-server-sdk)
45

@@ -28,10 +29,9 @@ $ gem install exponent-server-sdk
2829

2930
### Client
3031

31-
The push client is the preferred way. This hits the latest version of the api.
32-
33-
Optional arguments: `gzip: true`
32+
The push client is the preferred way. This hits the latest version of the api.
3433

34+
Optional arguments: `gzip: true`
3535

3636
```ruby
3737
client = Exponent::Push::Client.new
@@ -47,9 +47,23 @@ messages = [{
4747
body: "You've got mail"
4848
}]
4949

50-
client.publish messages
50+
# @Deprecated
51+
# client.publish(messages)
52+
53+
# MAX 100 messages at a time
54+
handler = client.send_messages(messages)
55+
56+
# Array of all errors returned from the API
57+
# puts handler.errors
58+
59+
# you probably want to delay calling this because the service might take a few moments to send
60+
# I would recommend reading the expo documentation regarding delivery delays
61+
client.verify_deliveries(handler.receipt_ids)
62+
5163
```
5264

65+
See the getting started example. If you clone this repo, you can also use it to test locally by entering your ExponentPushToken. Otherwise it serves as a good copy pasta example to get you going.
66+
5367
The complete format of the messages can be found [here.](https://docs.expo.io/versions/latest/guides/push-notifications#message-format)
5468

5569
## Contributing

Rakefile

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
require "bundler/gem_tasks"
2-
require "rake/testtask"
1+
require 'bundler/gem_tasks'
2+
require 'rake/testtask'
33

4-
def load_libs(t)
5-
t.libs << "test"
6-
t.libs << "lib"
4+
def load_libs(rake_task)
5+
rake_task.libs << 'test'
6+
rake_task.libs << 'lib'
77
end
88

9-
Rake::TestTask.new(:test) do |t|
10-
load_libs t
11-
t.test_files = FileList['test/**/*-test.rb']
9+
Rake::TestTask.new(:test) do |rake_task|
10+
load_libs rake_task
11+
rake_task.test_files = FileList['test/**/*-test.rb']
1212
end
1313

14-
Rake::TestTask.new(:manual_test) do |t|
15-
load_libs t
16-
t.test_files = FileList['manual_test.rb']
14+
Rake::TestTask.new(:getting_started) do |rake_task|
15+
load_libs rake_task
16+
rake_task.test_files = FileList['examples/getting_started.rb']
1717
end
1818

19-
task :default => :test
19+
task default: :test

examples/getting_started.rb

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# frozen_string_literal: true
2+
3+
require 'exponent-server-sdk'
4+
5+
class Test
6+
def initialize
7+
# @client = Exponent::Push::Client.new
8+
9+
# OR use GZIP to be AWESOME
10+
@client = Exponent::Push::Client.new(gzip: true)
11+
end
12+
13+
def too_many_messages
14+
(0..101).map { create_message }
15+
end
16+
17+
def create_message
18+
{
19+
# REPLACE WITH YOUR EXPONENT PUSH TOKEN LIKE:
20+
# to: 'ExponentPushToken[g5sIEbOm2yFdzn5VdSSy9n]',
21+
to: "ExponentPushToken[#{(0...22).map { ('a'..'z').to_a[rand(26)] }.join}]",
22+
sound: 'default',
23+
title: 'Hello World',
24+
subtitle: 'This is a Push Notification',
25+
body: 'Here\'s a little message for you...',
26+
data: {
27+
user_id: 1,
28+
points: 23_434
29+
},
30+
ttl: 10,
31+
expiration: 1_886_207_332,
32+
priority: 'default',
33+
badge: 0,
34+
channelId: 'game'
35+
}
36+
end
37+
38+
def test
39+
# messages = too_many_messages
40+
messages = [create_message]
41+
42+
response_handler = @client.send_messages(messages)
43+
puts response_handler.response.response_body
44+
end
45+
end
46+
47+
Test.new.test

exponent-server-sdk.gemspec

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
# coding: utf-8
2-
lib = File.expand_path('../lib', __FILE__)
1+
lib = File.expand_path('lib', __dir__)
32
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
43
require 'exponent-server-sdk/version'
54

@@ -21,6 +20,7 @@ Gem::Specification.new do |spec|
2120
spec.add_dependency 'typhoeus'
2221

2322
spec.add_development_dependency 'bundler'
24-
spec.add_development_dependency 'rake'
2523
spec.add_development_dependency 'minitest'
24+
spec.add_development_dependency 'rake'
25+
spec.add_development_dependency 'rubocop'
2626
end

0 commit comments

Comments
 (0)