customerio 5.6.0 → 6.0.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.
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Customerio
4
+ class TriggerBroadcastRequest
5
+ AUDIENCE_FIELDS = %i[recipients emails ids per_user_data data_file_url].freeze
6
+
7
+ OPTIONAL_FIELDS = %i[data email_add_duplicates email_ignore_missing id_ignore_missing].freeze
8
+
9
+ attr_reader :broadcast_id, :message
10
+
11
+ def initialize(opts)
12
+ raise ArgumentError, "broadcast_id is required" unless opts.key?(:broadcast_id)
13
+ raise ArgumentError, "broadcast_id must be an integer" unless opts[:broadcast_id].is_a?(Integer)
14
+
15
+ @broadcast_id = opts[:broadcast_id]
16
+ @message = opts.select { |field, _value| valid_field?(field) }
17
+
18
+ audience = AUDIENCE_FIELDS.select { |field| @message.key?(field) }
19
+ raise ArgumentError, "only one of #{AUDIENCE_FIELDS.join(', ')} can be present" if audience.length > 1
20
+ end
21
+
22
+ private
23
+
24
+ def valid_field?(field)
25
+ OPTIONAL_FIELDS.include?(field) || AUDIENCE_FIELDS.include?(field)
26
+ end
27
+ end
28
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Customerio
2
- VERSION = "5.6.0"
4
+ VERSION = "6.0.0"
3
5
  end
data/lib/customerio.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "customerio/version"
2
4
 
3
5
  module Customerio
@@ -9,6 +11,7 @@ module Customerio
9
11
  require "customerio/requests/send_sms_request"
10
12
  require "customerio/requests/send_inbox_message_request"
11
13
  require "customerio/requests/send_in_app_request"
14
+ require "customerio/requests/trigger_broadcast_request"
12
15
  require "customerio/api"
13
16
  require "customerio/param_encoder"
14
17
  end
metadata CHANGED
@@ -1,29 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: customerio
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.6.0
4
+ version: 6.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Allison
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2026-04-28 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: multi_json
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '1.0'
27
12
  - !ruby/object:Gem::Dependency
28
13
  name: addressable
29
14
  requirement: !ruby/object:Gem::Requirement
@@ -44,70 +29,14 @@ dependencies:
44
29
  requirements:
45
30
  - - "~>"
46
31
  - !ruby/object:Gem::Version
47
- version: 0.3.0
32
+ version: '0.3'
48
33
  type: :runtime
49
34
  prerelease: false
50
35
  version_requirements: !ruby/object:Gem::Requirement
51
36
  requirements:
52
37
  - - "~>"
53
38
  - !ruby/object:Gem::Version
54
- version: 0.3.0
55
- - !ruby/object:Gem::Dependency
56
- name: rake
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '10.5'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '10.5'
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.10'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '3.10'
83
- - !ruby/object:Gem::Dependency
84
- name: webmock
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - '='
88
- - !ruby/object:Gem::Version
89
- version: 3.6.0
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - '='
95
- - !ruby/object:Gem::Version
96
- version: 3.6.0
97
- - !ruby/object:Gem::Dependency
98
- name: json
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
39
+ version: '0.3'
111
40
  description: A ruby client for the Customer.io event API.
112
41
  email:
113
42
  - john@customer.io
@@ -115,15 +44,9 @@ executables: []
115
44
  extensions: []
116
45
  extra_rdoc_files: []
117
46
  files:
118
- - ".github/workflows/main.yml"
119
- - ".gitignore"
120
- - ".gitpod.yml"
121
47
  - CHANGELOG.markdown
122
- - Gemfile
123
48
  - LICENSE
124
49
  - README.md
125
- - Rakefile
126
- - customerio.gemspec
127
50
  - lib/customerio.rb
128
51
  - lib/customerio/api.rb
129
52
  - lib/customerio/base_client.rb
@@ -135,16 +58,17 @@ files:
135
58
  - lib/customerio/requests/send_inbox_message_request.rb
136
59
  - lib/customerio/requests/send_push_request.rb
137
60
  - lib/customerio/requests/send_sms_request.rb
61
+ - lib/customerio/requests/trigger_broadcast_request.rb
138
62
  - lib/customerio/version.rb
139
- - spec/api_client_spec.rb
140
- - spec/base_client_spec.rb
141
- - spec/client_spec.rb
142
- - spec/spec_helper.rb
143
63
  homepage: https://customer.io
144
64
  licenses:
145
65
  - MIT
146
- metadata: {}
147
- post_install_message:
66
+ metadata:
67
+ bug_tracker_uri: https://github.com/customerio/customerio-ruby/issues
68
+ changelog_uri: https://github.com/customerio/customerio-ruby/blob/main/CHANGELOG.markdown
69
+ homepage_uri: https://customer.io
70
+ rubygems_mfa_required: 'true'
71
+ source_code_uri: https://github.com/customerio/customerio-ruby
148
72
  rdoc_options: []
149
73
  require_paths:
150
74
  - lib
@@ -152,19 +76,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
152
76
  requirements:
153
77
  - - ">="
154
78
  - !ruby/object:Gem::Version
155
- version: '0'
79
+ version: '3.3'
156
80
  required_rubygems_version: !ruby/object:Gem::Requirement
157
81
  requirements:
158
82
  - - ">="
159
83
  - !ruby/object:Gem::Version
160
84
  version: '0'
161
85
  requirements: []
162
- rubygems_version: 3.3.26
163
- signing_key:
86
+ rubygems_version: 3.6.9
164
87
  specification_version: 4
165
88
  summary: A ruby client for the Customer.io event API.
166
- test_files:
167
- - spec/api_client_spec.rb
168
- - spec/base_client_spec.rb
169
- - spec/client_spec.rb
170
- - spec/spec_helper.rb
89
+ test_files: []
@@ -1,21 +0,0 @@
1
- name: ci
2
-
3
- on: [push,pull_request]
4
-
5
- jobs:
6
- test:
7
- strategy:
8
- matrix:
9
- ruby: ['2.5', '2.6', '2.7', '3.0', '3.1', '3.2', '3.3', '3.4']
10
- runs-on: ubuntu-latest
11
- env:
12
- BUNDLE_PATH: ${{ github.workspace }}/vendor/bundle
13
- steps:
14
- - uses: actions/checkout@v4
15
- - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1.229.0
16
- with:
17
- ruby-version: ${{ matrix.ruby }}
18
- bundler-cache: true
19
-
20
- - name: Unit Test w/ RSpec
21
- run: bundle exec rspec
data/.gitignore DELETED
@@ -1,20 +0,0 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- Gemfile.lock
6
- coverage
7
- InstalledFiles
8
- lib/bundler/man
9
- pkg
10
- rdoc
11
- spec/reports
12
- test/tmp
13
- test/version_tmp
14
- tmp
15
- vendor
16
-
17
- # YARD artifacts
18
- .yardoc
19
- _yardoc
20
- doc/
data/.gitpod.yml DELETED
@@ -1,10 +0,0 @@
1
- tasks:
2
- - init: |
3
- bundle config set --local path 'vendor/bundle'
4
- bundle install
5
-
6
- vscode:
7
- extensions:
8
- - connorshea.vscode-ruby-test-adapter
9
- - hbenl.vscode-test-explorer
10
- - hbenl.test-adapter-converter
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in customerio.gemspec
4
- gemspec
data/Rakefile DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env rake
2
- require "bundler/gem_tasks"
3
- require "rspec/core"
4
- require "rspec/core/rake_task"
5
-
6
- RSpec::Core::RakeTask.new(:spec)
7
-
8
- task :default => :spec
data/customerio.gemspec DELETED
@@ -1,27 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- require File.expand_path('../lib/customerio/version', __FILE__)
3
-
4
- Gem::Specification.new do |gem|
5
- gem.authors = ["John Allison"]
6
- gem.email = ["john@customer.io"]
7
- gem.description = "A ruby client for the Customer.io event API."
8
- gem.summary = "A ruby client for the Customer.io event API."
9
- gem.homepage = "https://customer.io"
10
- gem.license = "MIT"
11
-
12
- gem.files = `git ls-files`.split($\)
13
- gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
14
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
15
- gem.name = "customerio"
16
- gem.require_paths = ["lib"]
17
- gem.version = Customerio::VERSION
18
-
19
- gem.add_dependency('multi_json', "~> 1.0")
20
- gem.add_dependency('addressable', '~> 2.9')
21
- gem.add_dependency('base64', '~> 0.3.0')
22
-
23
- gem.add_development_dependency('rake', '~> 10.5')
24
- gem.add_development_dependency('rspec', '~> 3.10')
25
- gem.add_development_dependency('webmock', '3.6.0')
26
- gem.add_development_dependency('json')
27
- end