onesignal-ruby 0.2.0 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 754c561ba01eaaaa715c61f8f4016309679cdd0c34a5d830dd031f1e5f905a53
4
- data.tar.gz: 51835e1af00b1ce9f0e1c4fcab7da9ddb5e9e94939236f11d054e8922cc6e71c
3
+ metadata.gz: d55ff42325f9b7c7c83a398d598df848053b95e98cb715e79b6d38355357b223
4
+ data.tar.gz: bdb457ba65dbd59d238bf2776167eb392f3b6deadda5d504155f17e5206cf839
5
5
  SHA512:
6
- metadata.gz: 535958641b3d7bfe27eaa6509155c91d2607b0c56597d91b1eeea0956fd948404c5078385613abac1061e7722663240028fe6b6cb3c7331b843a4b05c01a49eb
7
- data.tar.gz: 779675317569ebc0cde184c31be27a6b870162041ab3947870c7487974d8eb419ebb578b1df0748dc4ee054df64948017a924788de1836963a8e40107e841c6a
6
+ metadata.gz: 9c65cbfe1f08e453c4c23785d4fc394e51c377ba2f79b459caeed982c67720fe45fa34c435a16ca89d919e6ae82ee763b135b49227262c217cc8eac735fe0a9e
7
+ data.tar.gz: 4064fefacbfe49bde9f22ba865697e8b039e9b068bc474ace1d74310bceb3131a672300c22e7f9affc0552b68b6a55ab956d9872718bbba43ce47babebb15f16
@@ -0,0 +1,42 @@
1
+ version: 2
2
+ jobs:
3
+ build:
4
+ docker:
5
+ - image: circleci/ruby:2.5.1
6
+ environment:
7
+ working_directory: ~/repo
8
+
9
+ steps:
10
+ - checkout
11
+ - restore_cache:
12
+ name: Restore Bundle cache
13
+ keys:
14
+ - bundle-{{ checksum "Gemfile.lock" }}
15
+ - bundle-
16
+ - run:
17
+ name: Install dependencies
18
+ command: |
19
+ bundle install --jobs=4 --retry=3 --path vendor/bundle
20
+ - save_cache:
21
+ name: Save Bundle cache
22
+ paths:
23
+ - ./vendor/bundle
24
+ key: bundle-{{ checksum "Gemfile.lock" }}
25
+
26
+ - run:
27
+ name: Run tests
28
+ command: |
29
+ mkdir /tmp/test-results
30
+ TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)"
31
+
32
+ bundle exec rspec --format progress \
33
+ --format RspecJunitFormatter \
34
+ --out /tmp/test-results/rspec.xml \
35
+ --format progress \
36
+ $TEST_FILES
37
+
38
+ - store_test_results:
39
+ path: /tmp/test-results
40
+ - store_artifacts:
41
+ path: /tmp/test-results
42
+ destination: test-results
@@ -1,6 +1,6 @@
1
1
  GIT
2
2
  remote: https://github.com/stympy/faker.git
3
- revision: 41b212d6512eae974d612af7dab593ca8ab01349
3
+ revision: 14599cc0f7a8bdf7b842714f776477061abda6e4
4
4
  branch: master
5
5
  specs:
6
6
  faker (1.9.1)
@@ -10,7 +10,7 @@ PATH
10
10
  remote: .
11
11
  specs:
12
12
  onesignal-ruby (0.2.0)
13
- activesupport (~> 5.2, >= 5.2.2)
13
+ activesupport (~> 5.0, >= 5.0.0)
14
14
  faraday (~> 0.15, >= 0.15.4)
15
15
  simple_command (~> 0, >= 0.0.9)
16
16
 
@@ -53,6 +53,8 @@ GEM
53
53
  diff-lcs (>= 1.2.0, < 2.0)
54
54
  rspec-support (~> 3.8.0)
55
55
  rspec-support (3.8.0)
56
+ rspec_junit_formatter (0.4.1)
57
+ rspec-core (>= 2, < 4, != 2.12.0)
56
58
  safe_yaml (1.0.4)
57
59
  simple_command (0.0.9)
58
60
  thread_safe (0.3.6)
@@ -75,6 +77,7 @@ DEPENDENCIES
75
77
  onesignal-ruby!
76
78
  rake (~> 10.0)
77
79
  rspec (~> 3.0)
80
+ rspec_junit_formatter (~> 0.4)
78
81
  vcr (~> 4.0, >= 4.0.0)
79
82
  webmock (~> 3.4)
80
83
 
data/README.md CHANGED
@@ -1,4 +1,6 @@
1
1
  # OneSignal Ruby Client
2
+ [![Gem Version](https://badge.fury.io/rb/onesignal-ruby.svg)](https://badge.fury.io/rb/onesignal-ruby)
3
+ [![CircleCI](https://circleci.com/gh/mikamai/onesignal-ruby.svg?style=svg)](https://circleci.com/gh/mikamai/onesignal-ruby)
2
4
 
3
5
  A simple, pure Ruby client to the [OneSignal](https://onesignal.com/apps/22bc6dec-5150-4d6d-8628-377259d2dd14/segments) API.
4
6
 
@@ -6,7 +8,6 @@ A simple, pure Ruby client to the [OneSignal](https://onesignal.com/apps/22bc6de
6
8
 
7
9
  Add this line to your application's Gemfile:
8
10
 
9
- ### COMING SOON (not yet published)
10
11
  ```ruby
11
12
  gem 'onesignal-ruby'
12
13
  ```
@@ -30,15 +31,20 @@ It also defaults to `https://onesignal.com/api/v1` as the API URL.
30
31
  You can also turn off OneSignal entirely with a boolean flag (for example to avoid sending
31
32
  notification while in test or development environments)
32
33
 
34
+ It will also use an internal instance of the Ruby Logger at `INFO` level.
35
+
33
36
  To customize those values, call the following snippet during your
34
37
  initialization phase.
35
38
 
36
39
  ```ruby
40
+ require 'onesignal'
41
+
37
42
  OneSignal.configure do |config|
38
43
  config.app_id = 'my_app_id'
39
44
  config.api_key = 'my_api_key'
40
45
  config.api_url = 'http://my_api_url'
41
46
  config.active = false
47
+ config.logger = Logger.new # Any Logger compliant implementation
42
48
  end
43
49
  ```
44
50
  ## Usage
@@ -66,6 +72,20 @@ Then send it.
66
72
  # => #<OneSignal::Responses::Notification> the created notification
67
73
  ```
68
74
 
75
+ ### Sending a notification to specific devices
76
+
77
+ Instead of including/excluding a segment you can also target specific devices.
78
+ ```ruby
79
+ # Setup headings and content
80
+
81
+ # Select the devices
82
+ include_player_ids = ["1dd608f2-c6a1-11e3-851d-000c2940e62c"]
83
+ notification = OneSignal::Notification.new(headings: headings, contents: contents, include_player_ids: include_player_ids)
84
+ ```
85
+ You can pass the followings when creating a notification: `include_player_ids: []`, `include_email_tokens: []`, `include_ios_tokens: []`, `include_wp_wns_uris: []`, `include_amazon_reg_ids: []`, `include_chrome_reg_ids: []`, `include_chrome_web_reg_ids: []`, `include_android_reg_ids: []`.
86
+ Refer to [OneSignal's documentation](https://documentation.onesignal.com/reference#create-notification) for more information.
87
+
88
+
69
89
  ### Fetch a notification
70
90
  You can fetch an existing notification given its ID.
71
91
  ```ruby
@@ -122,7 +142,7 @@ player = OneSignal.fetch_player(player_id)
122
142
 
123
143
  ### Filters
124
144
 
125
- Filters can be created with a simple DSL. It closely matches the [JSON reference](), with a few touches of syntax
145
+ Filters can be created with a simple DSL. It closely matches the [JSON reference](https://documentation.onesignal.com/reference#section-send-to-users-based-on-filters), with a few touches of syntax
126
146
  sugar.
127
147
 
128
148
  **Example**
@@ -146,6 +166,19 @@ Becomes
146
166
  ]
147
167
  ```
148
168
 
169
+ The operator methods (`#lesser_than`, `#greater_than`, `#equals`, `#not_equals`) are also available through the following shorthands: `<`, `>`, `=`, `!=`.
170
+
171
+ **Example**
172
+ ```ruby
173
+ filters = [
174
+ OneSignal::Filter.tag('userId') == 5,
175
+ OneSignal::Filter.session_count < 2,
176
+ OneSignal::Filter.language != 'en'
177
+ ]
178
+
179
+ OneSignal::Notification.new(filters: filters)
180
+ ```
181
+
149
182
  ### Custom Sounds
150
183
  You can customize notification sounds by passing a `OneSignal::Sounds` object.
151
184
  ```ruby
@@ -153,6 +186,19 @@ sounds = OneSignal::Sounds.new(ios: 'ping.wav', android: 'ping')
153
186
  OneSignal::Notification.new(sounds: sounds)
154
187
  ```
155
188
 
189
+ ### Specific Targets
190
+ If you want to send a notification only to specific targets (a particular user's email or device) you can
191
+ pass a `OneSignal::IncludedTargets` to the notification object.
192
+ See [the official documentation](https://documentation.onesignal.com/reference#section-send-to-specific-devices) for a list of available params.
193
+ ```ruby
194
+ included_targets = OneSignal::IncludedTargets.new(include_player_ids: 'test-id-12345')
195
+ OneSignal::Notification.new(included_targets: included_targets)
196
+ ```
197
+
198
+ **WARNING**
199
+ Passing `include_player_ids` alongside other params is prohibited and will raise an `ArgumentError`.
200
+ Either use `include_player_ids` or use the other params.
201
+
156
202
  ## Development
157
203
 
158
204
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: https://onesignal.com/api/v1/notifications/?app_id=22bc6dec-5150-4d6d-8628-377259d2dd14
5
+ uri: https://onesignal.com/api/v1/notifications/?app_id
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -12,7 +12,7 @@ http_interactions:
12
12
  Content-Type:
13
13
  - application/json
14
14
  Authorization:
15
- - Basic NTc3Y2RhMTAtMjQzZC00NDIxLWE3MWUtNWU0OWM3YTVhZTlh
15
+ - Basic test
16
16
  Accept-Encoding:
17
17
  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
18
  Accept:
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: https://onesignal.com/api/v1/players/?app_id=22bc6dec-5150-4d6d-8628-377259d2dd14
5
+ uri: https://onesignal.com/api/v1/players/?app_id
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -12,7 +12,7 @@ http_interactions:
12
12
  Content-Type:
13
13
  - application/json
14
14
  Authorization:
15
- - Basic NTc3Y2RhMTAtMjQzZC00NDIxLWE3MWUtNWU0OWM3YTVhZTlh
15
+ - Basic test
16
16
  Accept-Encoding:
17
17
  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
18
  Accept:
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: https://onesignal.com/api/v1/players?app_id=22bc6dec-5150-4d6d-8628-377259d2dd14
5
+ uri: https://onesignal.com/api/v1/players?app_id
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -12,7 +12,7 @@ http_interactions:
12
12
  Content-Type:
13
13
  - application/json
14
14
  Authorization:
15
- - Basic NTc3Y2RhMTAtMjQzZC00NDIxLWE3MWUtNWU0OWM3YTVhZTlh
15
+ - Basic test
16
16
  Accept-Encoding:
17
17
  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
18
  Accept:
@@ -13,7 +13,7 @@ http_interactions:
13
13
  Content-Type:
14
14
  - application/json
15
15
  Authorization:
16
- - Basic NTc3Y2RhMTAtMjQzZC00NDIxLWE3MWUtNWU0OWM3YTVhZTlh
16
+ - Basic test
17
17
  Accept-Encoding:
18
18
  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
19
19
  Accept:
@@ -69,7 +69,7 @@ http_interactions:
69
69
  recorded_at: Thu, 28 Jun 2018 15:30:57 GMT
70
70
  - request:
71
71
  method: get
72
- uri: https://onesignal.com/api/v1/notifications/29e9c2ad-41da-46f0-94c3-e71ee5c103dc?app_id=22bc6dec-5150-4d6d-8628-377259d2dd14
72
+ uri: https://onesignal.com/api/v1/notifications/29e9c2ad-41da-46f0-94c3-e71ee5c103dc?app_id
73
73
  body:
74
74
  encoding: US-ASCII
75
75
  string: ''
@@ -15,24 +15,28 @@ module OneSignal
15
15
 
16
16
  def send_notification notification
17
17
  return unless OneSignal.config.active
18
+
18
19
  created = Commands::CreateNotification.call notification
19
20
  fetch_notification(JSON.parse(created.body)['id'])
20
21
  end
21
22
 
22
23
  def fetch_notification notification_id
23
24
  return unless OneSignal.config.active
25
+
24
26
  fetched = Commands::FetchNotification.call notification_id
25
27
  Responses::Notification.from_json fetched.body
26
28
  end
27
29
 
28
30
  def fetch_player player_id
29
31
  return unless OneSignal.config.active
32
+
30
33
  fetched = Commands::FetchPlayer.call player_id
31
34
  Responses::Player.from_json fetched.body
32
35
  end
33
36
 
34
37
  def fetch_players
35
38
  return unless OneSignal.config.active
39
+
36
40
  fetched = Commands::FetchPlayers.call
37
41
  JSON.parse(fetched.body)['players'].map { |player| Responses::Player.from_json player }
38
42
  end
@@ -4,6 +4,8 @@ require 'faraday'
4
4
 
5
5
  module OneSignal
6
6
  class Client
7
+ class ApiError < RuntimeError; end
8
+
7
9
  def initialize app_id, api_key, api_url
8
10
  @app_id = app_id
9
11
  @api_key = api_key
@@ -42,20 +44,31 @@ module OneSignal
42
44
  end
43
45
 
44
46
  def post url, body
45
- @conn.post do |req|
47
+ res = @conn.post do |req|
46
48
  req.url url
47
49
  req.body = create_body(body).to_json
48
50
  req.headers['Content-Type'] = 'application/json'
49
51
  req.headers['Authorization'] = "Basic #{@api_key}"
50
52
  end
53
+
54
+ handle_errors res
51
55
  end
52
56
 
53
57
  def get url
54
- @conn.get do |req|
58
+ res = @conn.get do |req|
55
59
  req.url url, app_id: @app_id
56
60
  req.headers['Content-Type'] = 'application/json'
57
61
  req.headers['Authorization'] = "Basic #{@api_key}"
58
62
  end
63
+
64
+ handle_errors res
65
+ end
66
+
67
+ def handle_errors res
68
+ errors = JSON.parse(res.body).fetch 'errors', []
69
+ raise ApiError, (errors.first || "Error code #{res.status}") if res.status > 399 || errors.any?
70
+
71
+ res
59
72
  end
60
73
  end
61
74
  end
@@ -1,14 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'logger'
4
+
3
5
  module OneSignal
4
6
  class Configuration
5
- attr_accessor :app_id, :api_key, :api_url, :active
7
+ attr_accessor :app_id, :api_key, :api_url, :active, :logger
6
8
 
7
9
  def initialize
8
10
  @app_id = ENV['ONESIGNAL_APP_ID']
9
11
  @api_key = ENV['ONESIGNAL_API_KEY']
10
12
  @api_url = "https://onesignal.com/api/#{OneSignal::API_VERSION}"
11
13
  @active = true
14
+ @logger = Logger.new(STDOUT).tap do |logger|
15
+ logger.level = Logger::INFO
16
+ end
12
17
  end
13
18
  end
14
19
  end
@@ -43,18 +43,18 @@ module OneSignal
43
43
  FilterBuilder.new 'app_version'
44
44
  end
45
45
 
46
+ def country
47
+ FilterBuilder.new 'country'
48
+ end
49
+
46
50
  def location radius:, lat:, long:
47
- location = OpenStruct.new(radius: radius, latitude: lat, longitude: long)
48
- new(FilterBuilder.new('location', location: location))
51
+ location = OpenStruct.new radius: radius, latitude: lat, longitude: long
52
+ new FilterBuilder.new('location', location: location)
49
53
  end
50
54
 
51
55
  def email email
52
56
  new(FilterBuilder.new('email', value: email))
53
57
  end
54
-
55
- def country
56
- FilterBuilder.new('country')
57
- end
58
58
  end
59
59
 
60
60
  def hours_ago!
@@ -70,48 +70,56 @@ module OneSignal
70
70
  private
71
71
 
72
72
  def initialize builder
73
- @field = builder.b_field
74
- @key = builder.b_key
75
- @relation = builder.b_relation
76
- @value = builder.b_value
73
+ @field = builder.b_field
74
+ @key = builder.b_key
75
+ @relation = builder.b_relation
76
+ @value = builder.b_value
77
77
  @hours_ago = builder.b_hours_ago
78
- @location = builder.b_location
78
+ @location = builder.b_location
79
79
  end
80
80
 
81
81
  class FilterBuilder
82
82
  attr_reader :b_field, :b_key, :b_relation, :b_value, :b_hours_ago, :b_location
83
83
 
84
84
  def initialize field, params = {}
85
- @b_field = field
86
- @b_key = params[:key]
85
+ @b_field = field
86
+ @b_key = params[:key]
87
87
  @b_location = params[:location]
88
- @b_value = params[:value]
88
+ @b_value = params[:value]
89
89
  end
90
90
 
91
91
  def lesser_than value
92
92
  @b_relation = '<'
93
- @b_value = value.to_s
93
+ @b_value = value.to_s
94
94
  build
95
95
  end
96
96
 
97
+ alias < lesser_than
98
+
97
99
  def greater_than value
98
100
  @b_relation = '>'
99
- @b_value = value.to_s
101
+ @b_value = value.to_s
100
102
  build
101
103
  end
102
104
 
105
+ alias > greater_than
106
+
103
107
  def equals value
104
108
  @b_relation = '='
105
- @b_value = value.to_s
109
+ @b_value = value.to_s
106
110
  build
107
111
  end
108
112
 
113
+ alias == equals
114
+
109
115
  def not_equals value
110
116
  @b_relation = '!='
111
- @b_value = value.to_s
117
+ @b_value = value.to_s
112
118
  build
113
119
  end
114
120
 
121
+ alias != not_equals
122
+
115
123
  def exists
116
124
  @b_relation = 'exists'
117
125
  build
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OneSignal
4
+ class IncludedTargets
5
+ attr_reader :include_player_ids, :include_email_tokens, :include_external_user_ids, :include_ios_tokens,
6
+ :include_wp_wns_uris, :include_amazon_reg_ids, :include_chrome_reg_ids, :include_chrome_web_reg_ids,
7
+ :include_android_reg_ids
8
+
9
+ def initialize params
10
+ raise ArgumentError, 'include_player_ids cannot be used with other targets' if params.key?(:include_player_ids) && params.keys.count > 1
11
+
12
+ @include_player_ids = params[:include_player_ids]
13
+ @include_email_tokens = params[:include_email_tokens]
14
+ @include_external_user_ids = params[:include_external_user_ids]
15
+
16
+ @include_ios_tokens = print_warning params, :include_ios_tokens
17
+ @include_wp_wns_uris = print_warning params, :include_wp_wns_uris
18
+ @include_amazon_reg_ids = print_warning params, :include_amazon_reg_ids
19
+ @include_chrome_reg_ids = print_warning params, :include_chrome_reg_ids
20
+ @include_chrome_web_reg_ids = print_warning params, :include_chrome_web_reg_ids
21
+ @include_android_reg_ids = print_warning params, :include_android_reg_ids
22
+ end
23
+
24
+ def print_warning params, name
25
+ if params.key? name
26
+ OneSignal.config.logger.warn "OneSignal WARNING - Use of #{name} is not recommended. " \
27
+ 'Use either include_player_ids, include_email_tokens or include_external_user_ids. ' \
28
+ 'See https://documentation.onesignal.com/reference#section-send-to-specific-devices'
29
+ end
30
+ params[name]
31
+ end
32
+
33
+ def as_json options = nil
34
+ {
35
+ 'include_player_ids' => @include_player_ids,
36
+ 'include_email_tokens' => @include_email_tokens,
37
+ 'include_external_user_ids' => @include_external_user_ids,
38
+ 'include_ios_tokens' => @include_ios_tokens,
39
+ 'include_wp_wns_uris' => @include_wp_wns_uris,
40
+ 'include_amazon_reg_ids' => @include_amazon_reg_ids,
41
+ 'include_chrome_reg_ids' => @include_chrome_reg_ids,
42
+ 'include_chrome_web_reg_ids' => @include_chrome_web_reg_ids,
43
+ 'include_android_reg_ids' => @include_android_reg_ids
44
+ }
45
+ end
46
+ end
47
+ end
@@ -6,29 +6,31 @@ require 'onesignal/notification/headings'
6
6
  module OneSignal
7
7
  class Notification
8
8
  attr_reader :contents, :headings, :template_id, :included_segments, :excluded_segments,
9
- :send_after, :attachments, :sounds
9
+ :included_targets, :send_after, :attachments, :sounds
10
10
 
11
11
  def initialize **params
12
12
  unless params.include?(:contents) || params.include?(:template_id)
13
13
  raise ArgumentError, 'missing contents or template_id'
14
14
  end
15
15
 
16
- @contents = params[:contents]
17
- @headings = params[:headings]
18
- @template_id = params[:template_id]
16
+ @contents = params[:contents]
17
+ @headings = params[:headings]
18
+ @template_id = params[:template_id]
19
19
  @included_segments = params[:included_segments]
20
20
  @excluded_segments = params[:excluded_segments]
21
- @send_after = params[:send_after].to_s
22
- @attachments = params[:attachments]
23
- @filters = params[:filters]
24
- @sounds = params[:sounds]
21
+ @included_targets = params[:included_targets]
22
+ @send_after = params[:send_after].to_s
23
+ @attachments = params[:attachments]
24
+ @filters = params[:filters]
25
+ @sounds = params[:sounds]
25
26
  end
26
27
 
27
28
  def as_json options = {}
28
29
  super(options)
29
- .except('attachments', 'sounds')
30
+ .except('attachments', 'sounds', 'included_targets')
30
31
  .merge(@attachments&.as_json(options) || {})
31
32
  .merge(@sounds&.as_json(options) || {})
33
+ .merge(@included_targets&.as_json(options) || {})
32
34
  .select { |_k, v| v.present? }
33
35
  end
34
36
  end
@@ -24,7 +24,7 @@ module OneSignal
24
24
 
25
25
  private
26
26
 
27
- REGEX = /.*.\.\w*/
27
+ REGEX = /.*.\.\w*/.freeze
28
28
 
29
29
  def validate ios: nil, windows: nil
30
30
  ios_valid = !ios.nil? && (REGEX =~ ios).nil?
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OneSignal
4
- VERSION = '0.2.0'
4
+ VERSION = '0.3.0'
5
5
  API_VERSION = 'v1'
6
6
  end
@@ -38,10 +38,11 @@ Gem::Specification.new do |spec|
38
38
  spec.add_development_dependency 'factory_bot', '~> 4.11'
39
39
  spec.add_development_dependency 'rake', '~> 10.0'
40
40
  spec.add_development_dependency 'rspec', '~> 3.0'
41
+ spec.add_development_dependency 'rspec_junit_formatter', '~> 0.4'
41
42
  spec.add_development_dependency 'vcr', '~> 4.0', '>= 4.0.0'
42
43
  spec.add_development_dependency 'webmock', '~> 3.4'
43
44
 
44
- spec.add_runtime_dependency 'activesupport', '~> 5.2', '>= 5.2.2'
45
+ spec.add_runtime_dependency 'activesupport', '~> 5.0', '>= 5.0.0'
45
46
  spec.add_runtime_dependency 'faraday', '~> 0.15', '>= 0.15.4'
46
47
  spec.add_runtime_dependency 'simple_command', '~> 0', '>= 0.0.9'
47
48
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: onesignal-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matteo Joliveau
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-01-07 00:00:00.000000000 Z
11
+ date: 2019-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '3.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec_junit_formatter
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.4'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.4'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: vcr
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -120,20 +134,20 @@ dependencies:
120
134
  requirements:
121
135
  - - "~>"
122
136
  - !ruby/object:Gem::Version
123
- version: '5.2'
137
+ version: '5.0'
124
138
  - - ">="
125
139
  - !ruby/object:Gem::Version
126
- version: 5.2.2
140
+ version: 5.0.0
127
141
  type: :runtime
128
142
  prerelease: false
129
143
  version_requirements: !ruby/object:Gem::Requirement
130
144
  requirements:
131
145
  - - "~>"
132
146
  - !ruby/object:Gem::Version
133
- version: '5.2'
147
+ version: '5.0'
134
148
  - - ">="
135
149
  - !ruby/object:Gem::Version
136
- version: 5.2.2
150
+ version: 5.0.0
137
151
  - !ruby/object:Gem::Dependency
138
152
  name: faraday
139
153
  requirement: !ruby/object:Gem::Requirement
@@ -181,6 +195,7 @@ executables: []
181
195
  extensions: []
182
196
  extra_rdoc_files: []
183
197
  files:
198
+ - ".circleci/config.yml"
184
199
  - ".editorconfig"
185
200
  - ".gitignore"
186
201
  - ".rspec"
@@ -211,6 +226,7 @@ files:
211
226
  - lib/onesignal/commands/fetch_players.rb
212
227
  - lib/onesignal/configuration.rb
213
228
  - lib/onesignal/filter.rb
229
+ - lib/onesignal/included_targets.rb
214
230
  - lib/onesignal/notification.rb
215
231
  - lib/onesignal/notification/contents.rb
216
232
  - lib/onesignal/notification/headings.rb