urbanairship 3.0.2 → 3.1.0
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.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/CHANGELOG +13 -0
- data/README.rst +111 -0
- data/docs/Makefile +192 -0
- data/docs/channel_uninstall.rst +21 -0
- data/docs/conf.py +293 -0
- data/docs/devices.rst +54 -0
- data/docs/examples.rst +118 -0
- data/docs/exceptions.rst +17 -0
- data/docs/index.rst +83 -0
- data/docs/named_user.rst +101 -0
- data/docs/push.rst +416 -0
- data/docs/reports.rst +303 -0
- data/docs/segment.rst +97 -0
- data/docs/tags.rst +49 -0
- data/lib/urbanairship/client.rb +20 -17
- data/lib/urbanairship/common.rb +47 -3
- data/lib/urbanairship/devices/channel_tags.rb +73 -0
- data/lib/urbanairship/devices/channel_uninstall.rb +35 -0
- data/lib/urbanairship/devices/devicelist.rb +61 -0
- data/lib/urbanairship/devices/named_user.rb +87 -0
- data/lib/urbanairship/devices/segment.rb +109 -0
- data/lib/urbanairship/loggable.rb +1 -0
- data/lib/urbanairship/push/audience.rb +1 -0
- data/lib/urbanairship/push/push.rb +12 -18
- data/lib/urbanairship/push/schedule.rb +1 -0
- data/lib/urbanairship/reports/per_push.rb +97 -0
- data/lib/urbanairship/reports/response_statistics.rb +157 -0
- data/lib/urbanairship/version.rb +1 -1
- data/lib/urbanairship.rb +9 -4
- data/urbanairship.gemspec +2 -2
- metadata +44 -25
- data/README.md +0 -96
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'json'
|
2
|
-
|
3
2
|
require 'urbanairship/common'
|
4
3
|
require 'urbanairship/loggable'
|
5
4
|
|
5
|
+
|
6
6
|
module Urbanairship
|
7
7
|
module Push
|
8
8
|
|
@@ -42,8 +42,7 @@ module Urbanairship
|
|
42
42
|
method: 'POST',
|
43
43
|
body: JSON.dump(payload),
|
44
44
|
url: PUSH_URL,
|
45
|
-
content_type: 'application/json'
|
46
|
-
version: 3
|
45
|
+
content_type: 'application/json'
|
47
46
|
)
|
48
47
|
pr = PushResponse.new(http_response_body: response['body'], http_response_code: response['code'].to_s)
|
49
48
|
logger.info { pr.format }
|
@@ -84,8 +83,7 @@ module Urbanairship
|
|
84
83
|
method: 'POST',
|
85
84
|
body: JSON.dump(payload),
|
86
85
|
url: SCHEDULES_URL,
|
87
|
-
content_type: 'application/json'
|
88
|
-
version: 3
|
86
|
+
content_type: 'application/json'
|
89
87
|
)
|
90
88
|
pr = PushResponse.new(http_response_body: response['body'], http_response_code: response['code'].to_s)
|
91
89
|
logger.info { pr.format }
|
@@ -103,8 +101,7 @@ module Urbanairship
|
|
103
101
|
response_body = client.send_request(
|
104
102
|
method: 'GET',
|
105
103
|
body: nil,
|
106
|
-
url: url
|
107
|
-
version: 3
|
104
|
+
url: url
|
108
105
|
)
|
109
106
|
payload = JSON.load(response_body)
|
110
107
|
|
@@ -133,8 +130,7 @@ module Urbanairship
|
|
133
130
|
method: 'DELETE',
|
134
131
|
body: nil,
|
135
132
|
url: @url,
|
136
|
-
content_type: 'application/json'
|
137
|
-
version: 3
|
133
|
+
content_type: 'application/json'
|
138
134
|
)
|
139
135
|
pr = PushResponse.new(http_response_body: response['body'], http_response_code: response['code'].to_s)
|
140
136
|
logger.info { "Result of canceling scheduled push: #{@url} was a: [#{pr.status_code}]" }
|
@@ -151,8 +147,7 @@ module Urbanairship
|
|
151
147
|
method: 'PUT',
|
152
148
|
body: JSON.dump(self.payload),
|
153
149
|
url: @url,
|
154
|
-
content_type: 'application/json'
|
155
|
-
version: 3
|
150
|
+
content_type: 'application/json'
|
156
151
|
)
|
157
152
|
pr = PushResponse.new(http_response_body: response['body'], http_response_code: response['code'].to_s)
|
158
153
|
logger.info { pr.format }
|
@@ -167,11 +162,11 @@ module Urbanairship
|
|
167
162
|
include Urbanairship::Common
|
168
163
|
|
169
164
|
def initialize(http_response_body: nil, http_response_code: nil)
|
170
|
-
@payload = http_response_body ||
|
171
|
-
@ok = @payload['ok']
|
172
|
-
@push_ids = @payload['push_ids']
|
173
|
-
@schedule_url = try_helper(:first, @payload['schedule_urls'])
|
174
|
-
@operation_id = @payload['operation_id']
|
165
|
+
@payload = ((http_response_body.nil? || http_response_body.empty?) ? {} : http_response_body)
|
166
|
+
@ok = @payload['ok']
|
167
|
+
@push_ids = @payload['push_ids']
|
168
|
+
@schedule_url = try_helper(:first, @payload['schedule_urls'])
|
169
|
+
@operation_id = @payload['operation_id']
|
175
170
|
@status_code = http_response_code
|
176
171
|
end
|
177
172
|
|
@@ -181,12 +176,11 @@ module Urbanairship
|
|
181
176
|
def format
|
182
177
|
base = "Received [#{@status_code}] response code. \nHeaders: \tBody:\n"
|
183
178
|
payload.each do |key, value|
|
184
|
-
safe_value = value.to_s ||
|
179
|
+
safe_value = value.to_s || 'None'
|
185
180
|
base << "#{key}:\t#{safe_value}\n"
|
186
181
|
end
|
187
182
|
base
|
188
183
|
end
|
189
|
-
|
190
184
|
end
|
191
185
|
end
|
192
186
|
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
require 'urbanairship'
|
2
|
+
require 'time'
|
3
|
+
|
4
|
+
|
5
|
+
module Urbanairship
|
6
|
+
module Reports
|
7
|
+
class PerPushDetail
|
8
|
+
include Urbanairship::Common
|
9
|
+
include Urbanairship::Loggable
|
10
|
+
|
11
|
+
def initialize(client: required('client'))
|
12
|
+
@client = client
|
13
|
+
end
|
14
|
+
|
15
|
+
def get_single(push_id: required('push_id'))
|
16
|
+
fail ArgumentError,
|
17
|
+
'push_id cannot be empty' if push_id.nil?
|
18
|
+
url = REPORTS_URL + 'perpush/detail/' + push_id
|
19
|
+
response = @client.send_request(
|
20
|
+
method: 'GET',
|
21
|
+
url: url
|
22
|
+
)
|
23
|
+
logger.info("Requested per-push details for #{push_id}")
|
24
|
+
response
|
25
|
+
end
|
26
|
+
|
27
|
+
def get_batch(push_ids: required('push_ids'))
|
28
|
+
fail ArgumentError,
|
29
|
+
'push_ids must be an array' unless push_ids.kind_of?(Array)
|
30
|
+
fail ArgumentError,
|
31
|
+
'push_ids cannot be empty' if push_ids.empty?
|
32
|
+
fail ArgumentError,
|
33
|
+
'push_ids cannot contain more than 100 IDs' if push_ids.count > 100
|
34
|
+
|
35
|
+
response = @client.send_request(
|
36
|
+
method: 'POST',
|
37
|
+
body: JSON.dump('push_ids' => push_ids),
|
38
|
+
url: REPORTS_URL + 'perpush/detail/',
|
39
|
+
content_type: 'application/json'
|
40
|
+
)
|
41
|
+
logger.info("Requested info for push ids: #{push_ids}")
|
42
|
+
response
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
class PerPushSeries
|
47
|
+
include Urbanairship::Common
|
48
|
+
include Urbanairship::Loggable
|
49
|
+
|
50
|
+
def initialize(client: required)
|
51
|
+
@client = client
|
52
|
+
end
|
53
|
+
|
54
|
+
def get(push_id: required('push_id'), precision:nil, start_date:nil, end_date:nil)
|
55
|
+
fail ArgumentError,
|
56
|
+
'push_id cannot be empty' if push_id.nil?
|
57
|
+
url = REPORTS_URL + 'perpush/series/' + push_id
|
58
|
+
|
59
|
+
if precision
|
60
|
+
precision_array = %w(HOURLY DAILY MONTHLY)
|
61
|
+
fail ArgumentError,
|
62
|
+
"Precision must be 'HOURLY', 'DAILY', or 'MONTHLY'" unless precision_array.include?(precision)
|
63
|
+
url += '?precision=' + precision
|
64
|
+
end
|
65
|
+
|
66
|
+
if start_date
|
67
|
+
fail ArgumentError,
|
68
|
+
'Precision must be included with start date' if precision.nil?
|
69
|
+
start_parsed = nil
|
70
|
+
end_parsed = nil
|
71
|
+
|
72
|
+
begin
|
73
|
+
start_parsed = Time.parse(start_date)
|
74
|
+
end_parsed = Time.parse(end_date) unless end_date.nil?
|
75
|
+
rescue ArgumentError
|
76
|
+
fail ArgumentError,
|
77
|
+
'start_date and end_date must be valid date strings'
|
78
|
+
end
|
79
|
+
|
80
|
+
fail ArgumentError,
|
81
|
+
'End date must be after start date' if !end_date.nil? and end_parsed <= start_parsed
|
82
|
+
url += '&start=' + start_parsed.iso8601
|
83
|
+
url += '&end=' + end_parsed.iso8601 unless end_parsed.nil?
|
84
|
+
end
|
85
|
+
|
86
|
+
response = @client.send_request(
|
87
|
+
method: 'GET',
|
88
|
+
url: url
|
89
|
+
)
|
90
|
+
logger.info("Send per push series request for push_id #{push_id} and url #{url}")
|
91
|
+
response
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
|
@@ -0,0 +1,157 @@
|
|
1
|
+
require 'urbanairship'
|
2
|
+
require 'time'
|
3
|
+
|
4
|
+
module Urbanairship
|
5
|
+
module Reports
|
6
|
+
class Helper
|
7
|
+
def get_url(start_date, end_date, precision)
|
8
|
+
fail ArgumentError,
|
9
|
+
'the parameters cannot be set to nil' if start_date.nil? or end_date.nil? or precision.nil?
|
10
|
+
precision_array = %w(HOURLY DAILY MONTHLY)
|
11
|
+
fail ArgumentError,
|
12
|
+
"Precision must be 'HOURLY', 'DAILY', or 'MONTHLY'" unless precision_array.include?(precision)
|
13
|
+
|
14
|
+
begin
|
15
|
+
start_parsed = Time.parse(start_date)
|
16
|
+
end_parsed = Time.parse(end_date)
|
17
|
+
rescue ArgumentError
|
18
|
+
fail ArgumentError,
|
19
|
+
'start_date and end_date must be valid date strings'
|
20
|
+
end
|
21
|
+
url = '?start=' + start_parsed.iso8601 + '&end=' + end_parsed.iso8601
|
22
|
+
url += '&precision=' + precision
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class IndividualResponseStats
|
27
|
+
include Urbanairship::Common
|
28
|
+
include Urbanairship::Loggable
|
29
|
+
|
30
|
+
def initialize(client: required('client'))
|
31
|
+
@client = client
|
32
|
+
end
|
33
|
+
|
34
|
+
def get(push_id: required('push_id'))
|
35
|
+
fail ArgumentError,
|
36
|
+
'push_id cannot be nil' if push_id.nil?
|
37
|
+
|
38
|
+
url = REPORTS_URL + 'responses/' + push_id
|
39
|
+
response = @client.send_request(method: 'GET', url: url)
|
40
|
+
logger.info("Retrieved info on push_id: #{push_id}")
|
41
|
+
response
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
class ResponseList < Urbanairship::Common::PageIterator
|
46
|
+
def initialize(client: required('client'), start_date: required('start_date'),
|
47
|
+
end_date: required('end_date'), limit: nil, push_id_start: nil)
|
48
|
+
super(client: client)
|
49
|
+
fail ArgumentError,
|
50
|
+
'start_date and end_date are required fields' if start_date.nil? or end_date.nil?
|
51
|
+
fail ArgumentError,
|
52
|
+
'limit must be a number' if !limit.nil? and !limit.is_a? Numeric
|
53
|
+
fail ArgumentError,
|
54
|
+
'push_id_start must be a string' if !push_id_start.nil? and !push_id_start.is_a? String
|
55
|
+
|
56
|
+
begin
|
57
|
+
start_parsed = Time.parse(start_date)
|
58
|
+
end_parsed = Time.parse(end_date)
|
59
|
+
rescue ArgumentError
|
60
|
+
fail ArgumentError,
|
61
|
+
'start_date and end_date must be valid date strings'
|
62
|
+
end
|
63
|
+
url = REPORTS_URL + 'responses/list?start=' + start_parsed.iso8601 + '&end=' + end_parsed.iso8601
|
64
|
+
url += '&limit' + limit.to_s unless limit.nil?
|
65
|
+
url += '&push_id_start&' + push_id_start unless push_id_start.nil?
|
66
|
+
@next_page = url
|
67
|
+
@data_attribute = 'pushes'
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
class DevicesReport
|
72
|
+
include Urbanairship::Common
|
73
|
+
include Urbanairship::Loggable
|
74
|
+
|
75
|
+
def initialize(client: required('client'))
|
76
|
+
@client = client
|
77
|
+
end
|
78
|
+
|
79
|
+
def get(date: required('date'))
|
80
|
+
fail ArgumentError,
|
81
|
+
'date cannot be set to nil' if date.nil?
|
82
|
+
begin
|
83
|
+
date_parsed = Time.parse(date)
|
84
|
+
rescue ArgumentError
|
85
|
+
fail ArgumentError,
|
86
|
+
'date must be a valid date string'
|
87
|
+
end
|
88
|
+
response = @client.send_request(
|
89
|
+
method: 'GET',
|
90
|
+
url: REPORTS_URL + 'devices/?date=' + date_parsed.iso8601
|
91
|
+
)
|
92
|
+
logger.info("Retrieved device report for date #{date}")
|
93
|
+
response
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
class OptInList < Urbanairship::Common::PageIterator
|
98
|
+
def initialize(client: required('client'), start_date: required('start_date'),
|
99
|
+
end_date: required('end_date'), precision: required('precision'))
|
100
|
+
super(client: client)
|
101
|
+
url = Helper.new.get_url(start_date, end_date, precision)
|
102
|
+
@next_page = REPORTS_URL + 'optins/' + url
|
103
|
+
@data_attribute = 'optins'
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
class OptOutList < Urbanairship::Common::PageIterator
|
108
|
+
def initialize(client: required('client'), start_date: required('start_date'),
|
109
|
+
end_date: required('end_date'), precision: required('precision'))
|
110
|
+
super(client: client)
|
111
|
+
url = Helper.new.get_url(start_date, end_date, precision)
|
112
|
+
@next_page = REPORTS_URL + 'optouts/' + url
|
113
|
+
@data_attribute = 'optouts'
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
class PushList < Urbanairship::Common::PageIterator
|
118
|
+
def initialize(client: required('client'), start_date: required('start_date'),
|
119
|
+
end_date: required('end_date'), precision: required('precision'))
|
120
|
+
super(client: client)
|
121
|
+
url = Helper.new.get_url(start_date, end_date, precision)
|
122
|
+
@next_page = REPORTS_URL + 'sends/' + url
|
123
|
+
@data_attribute = 'sends'
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
class ResponseReportList < Urbanairship::Common::PageIterator
|
128
|
+
def initialize(client: required('client'), start_date: required('start_date'),
|
129
|
+
end_date: required('end_date'), precision: required('precision'))
|
130
|
+
super(client: client)
|
131
|
+
url = Helper.new.get_url(start_date, end_date, precision)
|
132
|
+
@next_page = REPORTS_URL + 'responses/' + url
|
133
|
+
@data_attribute = 'responses'
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
class AppOpensList < Urbanairship::Common::PageIterator
|
138
|
+
def initialize(client: required('client'), start_date: required('start_date'),
|
139
|
+
end_date: required('end_date'), precision: required('precision'))
|
140
|
+
super(client: client)
|
141
|
+
url = Helper.new.get_url(start_date, end_date, precision)
|
142
|
+
@next_page = REPORTS_URL + 'opens/' + url
|
143
|
+
@data_attribute = 'opens'
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
class TimeInAppList < Urbanairship::Common::PageIterator
|
148
|
+
def initialize(client: required('client'), start_date: required('start_date'),
|
149
|
+
end_date: required('end_date'), precision: required('precision'))
|
150
|
+
super(client: client)
|
151
|
+
url = Helper.new.get_url(start_date, end_date, precision)
|
152
|
+
@next_page = REPORTS_URL + 'timeinapp/' + url
|
153
|
+
@data_attribute = 'timeinapp'
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
157
|
+
end
|
data/lib/urbanairship/version.rb
CHANGED
data/lib/urbanairship.rb
CHANGED
@@ -2,19 +2,24 @@ require 'urbanairship/push/audience'
|
|
2
2
|
require 'urbanairship/push/payload'
|
3
3
|
require 'urbanairship/push/schedule'
|
4
4
|
require 'urbanairship/push/push'
|
5
|
+
require 'urbanairship/devices/segment'
|
6
|
+
require 'urbanairship/devices/channel_uninstall'
|
5
7
|
require 'urbanairship/client'
|
6
8
|
require 'urbanairship/common'
|
7
9
|
require 'urbanairship/loggable'
|
8
10
|
require 'urbanairship/util'
|
9
11
|
require 'urbanairship/version'
|
12
|
+
require 'urbanairship/devices/devicelist'
|
13
|
+
require 'urbanairship/devices/channel_tags'
|
14
|
+
require 'urbanairship/devices/named_user'
|
15
|
+
require 'urbanairship/reports/per_push'
|
16
|
+
require 'urbanairship/reports/response_statistics'
|
10
17
|
|
11
18
|
module Urbanairship
|
12
|
-
# Make these functions available in the
|
13
|
-
# `Urbanairship` namespace, as in the Python
|
14
|
-
# library.
|
15
19
|
extend Urbanairship::Push::Audience
|
16
20
|
extend Urbanairship::Push::Payload
|
17
21
|
extend Urbanairship::Push::Schedule
|
18
22
|
extend Urbanairship::Push
|
19
|
-
|
23
|
+
include Urbanairship::Devices
|
24
|
+
include Urbanairship::Reports
|
20
25
|
end
|
data/urbanairship.gemspec
CHANGED
@@ -12,12 +12,12 @@ Gem::Specification.new do |spec|
|
|
12
12
|
|
13
13
|
spec.summary = 'Ruby Gem for using the Urban Airship API'
|
14
14
|
spec.description = 'A Ruby Library for using the Urban Airship web service API for push notifications and rich app pages.'
|
15
|
-
spec.homepage =
|
15
|
+
spec.homepage = 'https://github.com/urbanairship/ruby-library'
|
16
16
|
|
17
17
|
spec.required_ruby_version = '>= 2.0.0'
|
18
18
|
|
19
19
|
if spec.respond_to?(:metadata)
|
20
|
-
spec.metadata['allowed_push_host'] =
|
20
|
+
spec.metadata['allowed_push_host'] = 'https://rubygems.org'
|
21
21
|
else
|
22
22
|
fail 'RubyGems 2.0 or newer is required to protect against public gem pushes.'
|
23
23
|
end
|
metadata
CHANGED
@@ -1,117 +1,117 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: urbanairship
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0
|
4
|
+
version: 3.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Urban Airship
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-09-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: unirest
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.1'
|
20
|
-
- -
|
20
|
+
- - '>='
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: 1.1.2
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '1.1'
|
30
|
-
- -
|
30
|
+
- - '>='
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 1.1.2
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: bundler
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- -
|
37
|
+
- - ~>
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: '1'
|
40
40
|
type: :development
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
|
-
- -
|
44
|
+
- - ~>
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '1'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: guard-rspec
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
|
-
- -
|
51
|
+
- - '>='
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: '0'
|
54
54
|
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
|
-
- -
|
58
|
+
- - '>='
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: '0'
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: pry
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
64
64
|
requirements:
|
65
|
-
- -
|
65
|
+
- - ~>
|
66
66
|
- !ruby/object:Gem::Version
|
67
67
|
version: '0'
|
68
68
|
type: :development
|
69
69
|
prerelease: false
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
|
-
- -
|
72
|
+
- - ~>
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: '0'
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: rake
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
78
78
|
requirements:
|
79
|
-
- -
|
79
|
+
- - ~>
|
80
80
|
- !ruby/object:Gem::Version
|
81
81
|
version: '10.0'
|
82
82
|
type: :development
|
83
83
|
prerelease: false
|
84
84
|
version_requirements: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
|
-
- -
|
86
|
+
- - ~>
|
87
87
|
- !ruby/object:Gem::Version
|
88
88
|
version: '10.0'
|
89
89
|
- !ruby/object:Gem::Dependency
|
90
90
|
name: rspec
|
91
91
|
requirement: !ruby/object:Gem::Requirement
|
92
92
|
requirements:
|
93
|
-
- -
|
93
|
+
- - ~>
|
94
94
|
- !ruby/object:Gem::Version
|
95
95
|
version: '3'
|
96
96
|
type: :development
|
97
97
|
prerelease: false
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
|
-
- -
|
100
|
+
- - ~>
|
101
101
|
- !ruby/object:Gem::Version
|
102
102
|
version: '3'
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: terminal-notifier-guard
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|
106
106
|
requirements:
|
107
|
-
- -
|
107
|
+
- - ~>
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: '1'
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
112
|
version_requirements: !ruby/object:Gem::Requirement
|
113
113
|
requirements:
|
114
|
-
- -
|
114
|
+
- - ~>
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: '1'
|
117
117
|
description: A Ruby Library for using the Urban Airship web service API for push notifications
|
@@ -122,25 +122,44 @@ executables: []
|
|
122
122
|
extensions: []
|
123
123
|
extra_rdoc_files: []
|
124
124
|
files:
|
125
|
-
-
|
126
|
-
-
|
127
|
-
-
|
125
|
+
- .gitignore
|
126
|
+
- .rspec
|
127
|
+
- .travis.yml
|
128
128
|
- CHANGELOG
|
129
129
|
- Gemfile
|
130
130
|
- Guardfile
|
131
131
|
- LICENSE
|
132
|
-
- README.
|
132
|
+
- README.rst
|
133
133
|
- Rakefile
|
134
134
|
- bin/console
|
135
135
|
- bin/setup
|
136
|
+
- docs/Makefile
|
137
|
+
- docs/channel_uninstall.rst
|
138
|
+
- docs/conf.py
|
139
|
+
- docs/devices.rst
|
140
|
+
- docs/examples.rst
|
141
|
+
- docs/exceptions.rst
|
142
|
+
- docs/index.rst
|
143
|
+
- docs/named_user.rst
|
144
|
+
- docs/push.rst
|
145
|
+
- docs/reports.rst
|
146
|
+
- docs/segment.rst
|
147
|
+
- docs/tags.rst
|
136
148
|
- lib/urbanairship.rb
|
137
149
|
- lib/urbanairship/client.rb
|
138
150
|
- lib/urbanairship/common.rb
|
151
|
+
- lib/urbanairship/devices/channel_tags.rb
|
152
|
+
- lib/urbanairship/devices/channel_uninstall.rb
|
153
|
+
- lib/urbanairship/devices/devicelist.rb
|
154
|
+
- lib/urbanairship/devices/named_user.rb
|
155
|
+
- lib/urbanairship/devices/segment.rb
|
139
156
|
- lib/urbanairship/loggable.rb
|
140
157
|
- lib/urbanairship/push/audience.rb
|
141
158
|
- lib/urbanairship/push/payload.rb
|
142
159
|
- lib/urbanairship/push/push.rb
|
143
160
|
- lib/urbanairship/push/schedule.rb
|
161
|
+
- lib/urbanairship/reports/per_push.rb
|
162
|
+
- lib/urbanairship/reports/response_statistics.rb
|
144
163
|
- lib/urbanairship/util.rb
|
145
164
|
- lib/urbanairship/version.rb
|
146
165
|
- urbanairship.gemspec
|
@@ -155,17 +174,17 @@ require_paths:
|
|
155
174
|
- lib
|
156
175
|
required_ruby_version: !ruby/object:Gem::Requirement
|
157
176
|
requirements:
|
158
|
-
- -
|
177
|
+
- - '>='
|
159
178
|
- !ruby/object:Gem::Version
|
160
179
|
version: 2.0.0
|
161
180
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
162
181
|
requirements:
|
163
|
-
- -
|
182
|
+
- - '>='
|
164
183
|
- !ruby/object:Gem::Version
|
165
184
|
version: '0'
|
166
185
|
requirements: []
|
167
186
|
rubyforge_project:
|
168
|
-
rubygems_version: 2.
|
187
|
+
rubygems_version: 2.4.8
|
169
188
|
signing_key:
|
170
189
|
specification_version: 4
|
171
190
|
summary: Ruby Gem for using the Urban Airship API
|