ones-ruby-msm 0.3.1
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 +7 -0
- data/.circleci/config.yml +42 -0
- data/.editorconfig +14 -0
- data/.gitignore +17 -0
- data/.rspec +3 -0
- data/.rubocop.yml +182 -0
- data/CODEOWNERS +1 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +14 -0
- data/Gemfile.lock +87 -0
- data/LICENSE.txt +21 -0
- data/README.md +226 -0
- data/Rakefile +8 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/fixtures/vcr_cassettes/os-csv-export.yml +135 -0
- data/fixtures/vcr_cassettes/os-fetch-noti.yml +76 -0
- data/fixtures/vcr_cassettes/os-fetch-notifications.yml +237 -0
- data/fixtures/vcr_cassettes/os-fetch-player.yml +72 -0
- data/fixtures/vcr_cassettes/os-fetch-players.yml +72 -0
- data/fixtures/vcr_cassettes/os-send-noti.yml +145 -0
- data/lib/onesignal.rb +85 -0
- data/lib/onesignal/attachments.rb +27 -0
- data/lib/onesignal/auto_map.rb +13 -0
- data/lib/onesignal/autoloader.rb +7 -0
- data/lib/onesignal/buttons.rb +17 -0
- data/lib/onesignal/client.rb +87 -0
- data/lib/onesignal/commands.rb +7 -0
- data/lib/onesignal/commands/autoloader.rb +7 -0
- data/lib/onesignal/commands/base_command.rb +23 -0
- data/lib/onesignal/commands/create_notification.rb +15 -0
- data/lib/onesignal/commands/csv_export.rb +15 -0
- data/lib/onesignal/commands/fetch_notification.rb +15 -0
- data/lib/onesignal/commands/fetch_notifications.rb +17 -0
- data/lib/onesignal/commands/fetch_player.rb +15 -0
- data/lib/onesignal/commands/fetch_players.rb +11 -0
- data/lib/onesignal/configuration.rb +19 -0
- data/lib/onesignal/filter.rb +140 -0
- data/lib/onesignal/included_targets.rb +47 -0
- data/lib/onesignal/notification.rb +39 -0
- data/lib/onesignal/notification/contents.rb +17 -0
- data/lib/onesignal/notification/headings.rb +17 -0
- data/lib/onesignal/responses.rb +7 -0
- data/lib/onesignal/responses/autoloader.rb +7 -0
- data/lib/onesignal/responses/base_response.rb +18 -0
- data/lib/onesignal/responses/csv_export.rb +18 -0
- data/lib/onesignal/responses/notification.rb +45 -0
- data/lib/onesignal/responses/player.rb +21 -0
- data/lib/onesignal/segment.rb +23 -0
- data/lib/onesignal/sounds.rb +39 -0
- data/lib/onesignal/version.rb +6 -0
- data/onesignal-ruby.gemspec +48 -0
- metadata +268 -0
@@ -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
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'onesignal/notification/contents'
|
4
|
+
require 'onesignal/notification/headings'
|
5
|
+
|
6
|
+
module OneSignal
|
7
|
+
class Notification
|
8
|
+
attr_reader :contents, :headings, :template_id, :included_segments, :excluded_segments,
|
9
|
+
:included_targets, :send_after, :attachments, :sounds, :buttons
|
10
|
+
|
11
|
+
def initialize **params
|
12
|
+
unless params.include?(:contents) || params.include?(:template_id)
|
13
|
+
raise ArgumentError, 'missing contents or template_id'
|
14
|
+
end
|
15
|
+
|
16
|
+
@contents = params[:contents]
|
17
|
+
@headings = params[:headings]
|
18
|
+
@template_id = params[:template_id]
|
19
|
+
@included_segments = params[:included_segments]
|
20
|
+
@excluded_segments = params[:excluded_segments]
|
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]
|
26
|
+
@buttons = params[:buttons]
|
27
|
+
end
|
28
|
+
|
29
|
+
def as_json options = {}
|
30
|
+
super(options)
|
31
|
+
.except('attachments', 'sounds', 'included_targets')
|
32
|
+
.merge(@attachments&.as_json(options) || {})
|
33
|
+
.merge(@sounds&.as_json(options) || {})
|
34
|
+
.merge(@buttons&.as_json(options) || {})
|
35
|
+
.merge(@included_targets&.as_json(options) || {})
|
36
|
+
.select { |_k, v| v.present? }
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OneSignal
|
4
|
+
class Notification
|
5
|
+
class Contents
|
6
|
+
include OneSignal::AutoMap
|
7
|
+
extend Forwardable
|
8
|
+
|
9
|
+
def_delegators :@content, :as_json, :to_json
|
10
|
+
|
11
|
+
def initialize en:, **content
|
12
|
+
@content = content.merge(en: en)
|
13
|
+
create_readers **@content
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OneSignal
|
4
|
+
class Notification
|
5
|
+
class Headings
|
6
|
+
include OneSignal::AutoMap
|
7
|
+
extend Forwardable
|
8
|
+
|
9
|
+
def_delegators :@headings, :as_json, :to_json
|
10
|
+
|
11
|
+
def initialize en:, **headings
|
12
|
+
@headings = headings.merge(en: en)
|
13
|
+
create_readers **@headings
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OneSignal
|
4
|
+
module Responses
|
5
|
+
class BaseResponse
|
6
|
+
def initialize attributes = {}
|
7
|
+
@attributes = attributes.deep_symbolize_keys
|
8
|
+
.keep_if { |k, _v| self.class::ATTRIBUTES_WHITELIST.include?(k.to_sym) }
|
9
|
+
|
10
|
+
self.class::ATTRIBUTES_WHITELIST.each do |attribute|
|
11
|
+
self.class.send(:define_method, attribute) do
|
12
|
+
@attributes[attribute]
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OneSignal
|
4
|
+
module Responses
|
5
|
+
# Example JSON
|
6
|
+
# {
|
7
|
+
# "csv_file_url": "https://onesignal.s3.amazonaws.com/csv_exports/test/users_abc123.csv.gz"
|
8
|
+
# }
|
9
|
+
class CsvExport < BaseResponse
|
10
|
+
ATTRIBUTES_WHITELIST = %i[csv_file_url].freeze
|
11
|
+
|
12
|
+
def self.from_json json
|
13
|
+
body = json.is_a?(String) ? JSON.parse(json) : json
|
14
|
+
new(body)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OneSignal
|
4
|
+
module Responses
|
5
|
+
# Example JSON
|
6
|
+
# {
|
7
|
+
# "id": '481a2734-6b7d-11e4-a6ea-4b53294fa671',
|
8
|
+
# "successful": 15,
|
9
|
+
# "failed": 1,
|
10
|
+
# "converted": 3,
|
11
|
+
# "remaining": 0,
|
12
|
+
# "queued_at": 1_415_914_655,
|
13
|
+
# "send_after": 1_415_914_655,
|
14
|
+
# "completed_at": 1_415_914_656,
|
15
|
+
# "url": 'https://yourWebsiteToOpen.com',
|
16
|
+
# "data": {
|
17
|
+
# "foo": 'bar',
|
18
|
+
# "your": 'custom metadata'
|
19
|
+
# },
|
20
|
+
# "canceled": false,
|
21
|
+
# "headings": {
|
22
|
+
# "en": 'English and default language heading',
|
23
|
+
# "es": 'Spanish language heading'
|
24
|
+
# },
|
25
|
+
# "contents": {
|
26
|
+
# "en": 'English language content',
|
27
|
+
# "es": 'Hola'
|
28
|
+
# }
|
29
|
+
# }
|
30
|
+
class Notification < BaseResponse
|
31
|
+
ATTRIBUTES_WHITELIST = %i[id successful failed converted remaining
|
32
|
+
queued_at send_after completed_at url data
|
33
|
+
canceled headings contents].freeze
|
34
|
+
|
35
|
+
def canceled?
|
36
|
+
canceled
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.from_json json
|
40
|
+
body = json.is_a?(String) ? JSON.parse(json) : json
|
41
|
+
new(body)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OneSignal
|
4
|
+
module Responses
|
5
|
+
class Player < BaseResponse
|
6
|
+
ATTRIBUTES_WHITELIST = %i[id identifier session_count language timezone
|
7
|
+
game_version device_os device_type device_model tags
|
8
|
+
ad_id last_active playtime amount_spent created_at
|
9
|
+
invalid_identifier badge_count sdk test_type ip].freeze
|
10
|
+
|
11
|
+
def invalid_identifier?
|
12
|
+
invalid_identifier
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.from_json json
|
16
|
+
body = json.is_a?(String) ? JSON.parse(json) : json
|
17
|
+
new(body)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OneSignal
|
4
|
+
class Segment
|
5
|
+
ALL_USERS = 'All'
|
6
|
+
ACTIVE_USERS = 'Active Users'
|
7
|
+
ENGAGED_USERS = 'Engaged Users'
|
8
|
+
INACTIVE_USERS = 'Inactive Users'
|
9
|
+
SUBSCRIBED_USERS = 'Subscribed Users'
|
10
|
+
|
11
|
+
def initialize name:
|
12
|
+
@name = name
|
13
|
+
end
|
14
|
+
|
15
|
+
def as_json _options = nil
|
16
|
+
@name.to_s
|
17
|
+
end
|
18
|
+
|
19
|
+
def to_s
|
20
|
+
@name.to_s
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OneSignal
|
4
|
+
class Sounds
|
5
|
+
attr_reader :ios, :android, :amazon, :windows
|
6
|
+
|
7
|
+
def initialize ios: nil, android: nil, amazon: nil, windows: nil
|
8
|
+
validate ios: ios, windows: windows
|
9
|
+
|
10
|
+
@ios = ios
|
11
|
+
@android = android
|
12
|
+
@amazon = amazon
|
13
|
+
@windows = windows
|
14
|
+
end
|
15
|
+
|
16
|
+
def as_json options = nil
|
17
|
+
{
|
18
|
+
'ios_sound' => @ios.as_json(options),
|
19
|
+
'android_sound' => @android.as_json(options),
|
20
|
+
'adm_sound' => @amazon.as_json(options),
|
21
|
+
'wp_wns_sound' => @windows.as_json(options)
|
22
|
+
}
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
REGEX = /.*.\.\w*/.freeze
|
28
|
+
|
29
|
+
def validate ios: nil, windows: nil
|
30
|
+
ios_valid = !ios.nil? && (REGEX =~ ios).nil?
|
31
|
+
windows_valid = !windows.nil? && (REGEX =~ windows).nil?
|
32
|
+
raise InvalidError, "provide file extension for iOS: #{ios}" if ios_valid
|
33
|
+
raise InvalidError, "provide file extension for windows: #{ios}" if windows_valid
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
class InvalidError < StandardError
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
4
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
+
require 'onesignal/version'
|
6
|
+
|
7
|
+
Gem::Specification.new do |spec|
|
8
|
+
spec.name = 'ones-ruby-msm'
|
9
|
+
spec.version = OneSignal::VERSION
|
10
|
+
spec.authors = ['Daniel Wetteroth']
|
11
|
+
spec.email = ['danielcw@gmail.com']
|
12
|
+
|
13
|
+
spec.summary = 'OneSignal Wrapper'
|
14
|
+
spec.description = 'Test Fix version Ruby wrapper to OneSignal API, mapping to Plain Old Ruby Objects'
|
15
|
+
# spec.homepage = 'https://github.com/mi'
|
16
|
+
spec.license = 'MIT'
|
17
|
+
|
18
|
+
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
19
|
+
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
20
|
+
if spec.respond_to?(:metadata)
|
21
|
+
spec.metadata['allowed_push_host'] = 'https://rubygems.org'
|
22
|
+
else
|
23
|
+
raise 'RubyGems 2.0 or newer is required to protect against ' \
|
24
|
+
'public gem pushes.'
|
25
|
+
end
|
26
|
+
|
27
|
+
# Specify which files should be added to the gem when it is released.
|
28
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
29
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
30
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
31
|
+
end
|
32
|
+
spec.bindir = 'exe'
|
33
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
34
|
+
spec.require_paths = ['lib']
|
35
|
+
|
36
|
+
spec.add_development_dependency 'bundler', '~> 1.16'
|
37
|
+
spec.add_development_dependency 'dotenv', '~> 2.5'
|
38
|
+
spec.add_development_dependency 'factory_bot', '~> 4.11'
|
39
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
40
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
41
|
+
spec.add_development_dependency 'rspec_junit_formatter', '~> 0.4'
|
42
|
+
spec.add_development_dependency 'vcr', '~> 4.0', '>= 4.0.0'
|
43
|
+
spec.add_development_dependency 'webmock', '~> 3.4'
|
44
|
+
|
45
|
+
spec.add_runtime_dependency 'activesupport', '>= 5.0.0', '< 7'
|
46
|
+
spec.add_runtime_dependency 'faraday', '~>1.1.0' #'~> 0.15', '>= 0.15.4'
|
47
|
+
spec.add_runtime_dependency 'simple_command', '~> 0', '>= 0.0.9'
|
48
|
+
end
|
metadata
ADDED
@@ -0,0 +1,268 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ones-ruby-msm
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Daniel Wetteroth
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-11-04 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.16'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.16'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: dotenv
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.5'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '2.5'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: factory_bot
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '4.11'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '4.11'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '13.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '13.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3.0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
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'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: vcr
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 4.0.0
|
104
|
+
- - "~>"
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: '4.0'
|
107
|
+
type: :development
|
108
|
+
prerelease: false
|
109
|
+
version_requirements: !ruby/object:Gem::Requirement
|
110
|
+
requirements:
|
111
|
+
- - ">="
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: 4.0.0
|
114
|
+
- - "~>"
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '4.0'
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: webmock
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - "~>"
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '3.4'
|
124
|
+
type: :development
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - "~>"
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '3.4'
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: activesupport
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: 5.0.0
|
138
|
+
- - "<"
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: '7'
|
141
|
+
type: :runtime
|
142
|
+
prerelease: false
|
143
|
+
version_requirements: !ruby/object:Gem::Requirement
|
144
|
+
requirements:
|
145
|
+
- - ">="
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: 5.0.0
|
148
|
+
- - "<"
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '7'
|
151
|
+
- !ruby/object:Gem::Dependency
|
152
|
+
name: faraday
|
153
|
+
requirement: !ruby/object:Gem::Requirement
|
154
|
+
requirements:
|
155
|
+
- - "~>"
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: 1.1.0
|
158
|
+
type: :runtime
|
159
|
+
prerelease: false
|
160
|
+
version_requirements: !ruby/object:Gem::Requirement
|
161
|
+
requirements:
|
162
|
+
- - "~>"
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: 1.1.0
|
165
|
+
- !ruby/object:Gem::Dependency
|
166
|
+
name: simple_command
|
167
|
+
requirement: !ruby/object:Gem::Requirement
|
168
|
+
requirements:
|
169
|
+
- - "~>"
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
version: '0'
|
172
|
+
- - ">="
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: 0.0.9
|
175
|
+
type: :runtime
|
176
|
+
prerelease: false
|
177
|
+
version_requirements: !ruby/object:Gem::Requirement
|
178
|
+
requirements:
|
179
|
+
- - "~>"
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '0'
|
182
|
+
- - ">="
|
183
|
+
- !ruby/object:Gem::Version
|
184
|
+
version: 0.0.9
|
185
|
+
description: Test Fix version Ruby wrapper to OneSignal API, mapping to Plain Old
|
186
|
+
Ruby Objects
|
187
|
+
email:
|
188
|
+
- danielcw@gmail.com
|
189
|
+
executables: []
|
190
|
+
extensions: []
|
191
|
+
extra_rdoc_files: []
|
192
|
+
files:
|
193
|
+
- ".circleci/config.yml"
|
194
|
+
- ".editorconfig"
|
195
|
+
- ".gitignore"
|
196
|
+
- ".rspec"
|
197
|
+
- ".rubocop.yml"
|
198
|
+
- CODEOWNERS
|
199
|
+
- CODE_OF_CONDUCT.md
|
200
|
+
- Gemfile
|
201
|
+
- Gemfile.lock
|
202
|
+
- LICENSE.txt
|
203
|
+
- README.md
|
204
|
+
- Rakefile
|
205
|
+
- bin/console
|
206
|
+
- bin/setup
|
207
|
+
- fixtures/vcr_cassettes/os-csv-export.yml
|
208
|
+
- fixtures/vcr_cassettes/os-fetch-noti.yml
|
209
|
+
- fixtures/vcr_cassettes/os-fetch-notifications.yml
|
210
|
+
- fixtures/vcr_cassettes/os-fetch-player.yml
|
211
|
+
- fixtures/vcr_cassettes/os-fetch-players.yml
|
212
|
+
- fixtures/vcr_cassettes/os-send-noti.yml
|
213
|
+
- lib/onesignal.rb
|
214
|
+
- lib/onesignal/attachments.rb
|
215
|
+
- lib/onesignal/auto_map.rb
|
216
|
+
- lib/onesignal/autoloader.rb
|
217
|
+
- lib/onesignal/buttons.rb
|
218
|
+
- lib/onesignal/client.rb
|
219
|
+
- lib/onesignal/commands.rb
|
220
|
+
- lib/onesignal/commands/autoloader.rb
|
221
|
+
- lib/onesignal/commands/base_command.rb
|
222
|
+
- lib/onesignal/commands/create_notification.rb
|
223
|
+
- lib/onesignal/commands/csv_export.rb
|
224
|
+
- lib/onesignal/commands/fetch_notification.rb
|
225
|
+
- lib/onesignal/commands/fetch_notifications.rb
|
226
|
+
- lib/onesignal/commands/fetch_player.rb
|
227
|
+
- lib/onesignal/commands/fetch_players.rb
|
228
|
+
- lib/onesignal/configuration.rb
|
229
|
+
- lib/onesignal/filter.rb
|
230
|
+
- lib/onesignal/included_targets.rb
|
231
|
+
- lib/onesignal/notification.rb
|
232
|
+
- lib/onesignal/notification/contents.rb
|
233
|
+
- lib/onesignal/notification/headings.rb
|
234
|
+
- lib/onesignal/responses.rb
|
235
|
+
- lib/onesignal/responses/autoloader.rb
|
236
|
+
- lib/onesignal/responses/base_response.rb
|
237
|
+
- lib/onesignal/responses/csv_export.rb
|
238
|
+
- lib/onesignal/responses/notification.rb
|
239
|
+
- lib/onesignal/responses/player.rb
|
240
|
+
- lib/onesignal/segment.rb
|
241
|
+
- lib/onesignal/sounds.rb
|
242
|
+
- lib/onesignal/version.rb
|
243
|
+
- onesignal-ruby.gemspec
|
244
|
+
homepage:
|
245
|
+
licenses:
|
246
|
+
- MIT
|
247
|
+
metadata:
|
248
|
+
allowed_push_host: https://rubygems.org
|
249
|
+
post_install_message:
|
250
|
+
rdoc_options: []
|
251
|
+
require_paths:
|
252
|
+
- lib
|
253
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
254
|
+
requirements:
|
255
|
+
- - ">="
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: '0'
|
258
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
259
|
+
requirements:
|
260
|
+
- - ">="
|
261
|
+
- !ruby/object:Gem::Version
|
262
|
+
version: '0'
|
263
|
+
requirements: []
|
264
|
+
rubygems_version: 3.0.6
|
265
|
+
signing_key:
|
266
|
+
specification_version: 4
|
267
|
+
summary: OneSignal Wrapper
|
268
|
+
test_files: []
|