apn_client 0.0.2 → 0.0.3
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.
- data/README.md +3 -1
- data/lib/apn_client/connection.rb +0 -1
- data/lib/apn_client/delivery.rb +0 -4
- data/lib/apn_client/message.rb +4 -2
- data/lib/apn_client/version.rb +1 -1
- data/lib/apn_client.rb +5 -5
- data/spec/connection_spec.rb +0 -2
- data/spec/delivery_spec.rb +0 -2
- data/spec/message_spec.rb +26 -3
- data/spec/named_args_spec.rb +0 -2
- data/spec/spec_helper.rb +1 -0
- metadata +9 -9
data/README.md
CHANGED
@@ -13,6 +13,8 @@ This is a RubyGem that allows sending of Apple Push Notifications to iOS devices
|
|
13
13
|
### Delivering Your Messages
|
14
14
|
|
15
15
|
```
|
16
|
+
require 'apn_client'
|
17
|
+
|
16
18
|
message1 = ApnClient::Message.new(1,
|
17
19
|
:device_token => "7b7b8de5888bb742ba744a2a5c8e52c6481d1deeecc283e830533b7c6bf1d099",
|
18
20
|
:alert => "New version of the app is out. Get it now in the app store!",
|
@@ -26,7 +28,7 @@ message2 = ApnClient::Message.new(2,
|
|
26
28
|
delivery = ApnClient::Delivery.new([message1, message2],
|
27
29
|
:callbacks => {
|
28
30
|
:on_write => lambda { |d, m| puts "Wrote message #{m}" },
|
29
|
-
:on_exception => lambda { |d,
|
31
|
+
:on_exception => lambda { |d, e| puts "Exception #{e} raised when delivering message #{m}" },
|
30
32
|
:on_failure => lambda { |d, m| puts "Skipping failed message #{m}" },
|
31
33
|
:on_error => lambda { |d, message_id, error_code| puts "Received error code #{error_code} from Apple for message #{message_id}" }
|
32
34
|
},
|
data/lib/apn_client/delivery.rb
CHANGED
data/lib/apn_client/message.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'apn_client/named_args'
|
2
|
-
|
3
1
|
module ApnClient
|
4
2
|
class Message
|
5
3
|
attr_accessor :message_id, :device_token, :alert, :badge, :sound, :content_available, :custom_properties
|
@@ -29,6 +27,10 @@ module ApnClient
|
|
29
27
|
[1, message_id, self.class.expires_at, 0, 32, device_token, 0, payload_size, payload].pack('ciiccH*cca*')
|
30
28
|
end
|
31
29
|
|
30
|
+
def ==(other_message)
|
31
|
+
other_message && other_message.is_a?(self.class) && other_message.message_id == self.message_id
|
32
|
+
end
|
33
|
+
|
32
34
|
def self.error_codes
|
33
35
|
{
|
34
36
|
:no_errors_encountered => 0,
|
data/lib/apn_client/version.rb
CHANGED
data/lib/apn_client.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
require
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
1
|
+
require 'apn_client/version'
|
2
|
+
require 'apn_client/named_args'
|
3
|
+
require 'apn_client/connection'
|
4
|
+
require 'apn_client/message'
|
5
|
+
require 'apn_client/delivery'
|
data/spec/connection_spec.rb
CHANGED
data/spec/delivery_spec.rb
CHANGED
data/spec/message_spec.rb
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
require 'apn_client/message'
|
4
|
-
|
5
3
|
describe ApnClient::Message do
|
6
4
|
before(:each) do
|
7
5
|
@device_token = "7b7b8de5888bb742ba744a2a5c8e52c6481d1deeecc283e830533b7c6bf1d099"
|
6
|
+
@other_device_token = "8c7b8de5888bb742ba744a2a5c8e52c6481d1deeecc283e830533b7c6bf5e699"
|
8
7
|
@alert = "Hello, check out version 9.5 of our awesome app in the app store"
|
9
8
|
@badge = 3
|
10
9
|
end
|
@@ -43,13 +42,37 @@ describe ApnClient::Message do
|
|
43
42
|
end
|
44
43
|
end
|
45
44
|
|
45
|
+
describe "#==" do
|
46
|
+
before(:each) do
|
47
|
+
@message = create_message(3, :device_token => @device_token)
|
48
|
+
@other_message = create_message(5, :device_token => @other_device_token)
|
49
|
+
end
|
50
|
+
|
51
|
+
it "returns false for nil" do
|
52
|
+
@message.should_not == nil
|
53
|
+
end
|
54
|
+
|
55
|
+
it "returns false for an object that is not a Message" do
|
56
|
+
@message.should_not == "foobar"
|
57
|
+
end
|
58
|
+
|
59
|
+
it "returns false for a Message with a different message_id" do
|
60
|
+
@message.should_not == @other_message
|
61
|
+
end
|
62
|
+
|
63
|
+
it "returns true for a Message with the same message_id" do
|
64
|
+
@other_message.message_id = @message.message_id
|
65
|
+
@message.should == @other_message
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
46
69
|
describe "#payload_size" do
|
47
70
|
it "returns number of bytes in the payload"
|
48
71
|
end
|
49
72
|
|
50
73
|
def create_message(message_id, config = {})
|
51
74
|
message = ApnClient::Message.new(message_id, config)
|
52
|
-
message.message_id.should ==
|
75
|
+
message.message_id.should == message_id
|
53
76
|
[:device_token, :alert, :badge, :sound, :content_available].each do |attribute|
|
54
77
|
message.send(attribute).should == config[attribute]
|
55
78
|
end
|
data/spec/named_args_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: apn_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-12-05 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
16
|
-
requirement: &
|
16
|
+
requirement: &70265547611420 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70265547611420
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &70265547611000 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70265547611000
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: mocha
|
38
|
-
requirement: &
|
38
|
+
requirement: &70265547610580 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70265547610580
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: yard
|
49
|
-
requirement: &
|
49
|
+
requirement: &70265547610160 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70265547610160
|
58
58
|
description: Uses the "enhanced format" Apple protocol and deals with errors and failures
|
59
59
|
when broadcasting to many devices. Includes support for talking to the Apple Push
|
60
60
|
Notification Feedback service for dealing with uninstalled apps.
|