braze_ruby 0.8.0 → 0.9.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: 92627ab40d55d8abadf9acd07b143a0eae13586d0caad935e657c8e4fb074d54
4
- data.tar.gz: e21b4acbf9aef12c2f7ab37029aece94f421a3a9e2d45afd0c41216316b3a402
3
+ metadata.gz: 13d93e632f509eb5ccaef744c1e378092fc25c68829f0819524484c1612e5438
4
+ data.tar.gz: f3827d451cf7ba1d424a23365676c74e83d0d3e999a0dfc295bacc0240de4261
5
5
  SHA512:
6
- metadata.gz: 841f8f3d844ee4881f2d98745eaca37cbf47f7e3352e13373a39bf95567cfd10950df47b60ace6810f805db7962e76bcdcf707dd2ae363f7a16a14850e558b57
7
- data.tar.gz: 5163647859b894bb7946503995fdbad55bc8becd0eb25fb3378b11cfb5283d1ae0cf01f8003a683246693d9c4e52b085f1b7af99e3e4cab0d6053189e10739df
6
+ metadata.gz: fc3543daf80e77fa1a59d0cbcb11825ca0078426c02802dc7acd66b48f9e745baaa0a0e7f19b86c22c7678b0732c9a04d53fbe92e521daa50e32734f12298b78
7
+ data.tar.gz: 89d604660de041f123a0d051d1a075d9b51ccf389e6e2342966657ea557aa6408fc149340855523d23454106d2efba65fbb8881cb1c63cf29aad27bb9b8c042f
data/.circleci/config.yml CHANGED
@@ -23,4 +23,4 @@ workflows:
23
23
  - test:
24
24
  matrix:
25
25
  parameters:
26
- ruby-version: ["ruby:3.0.1", "ruby:2.7.3", "ruby:2.6.7"]
26
+ ruby-version: ["ruby:3.1.6", "ruby:3.2.5", "ruby:3.3.5"]
@@ -1,13 +1,15 @@
1
1
  name: release
2
+
2
3
  on:
3
4
  push:
4
5
  tags:
5
6
  - v*
7
+
6
8
  jobs:
7
9
  release:
8
10
  runs-on: ubuntu-latest
9
11
  steps:
10
- - uses: actions/checkout@v2
12
+ - uses: actions/checkout@v3
11
13
  - name: Setup rubygems
12
14
  run: |
13
15
  mkdir ~/.gem
data/.rspec CHANGED
@@ -1 +1,3 @@
1
1
  --color
2
+ --order random
3
+ --require spec_helper
data/CHANGELOG.md ADDED
@@ -0,0 +1,126 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog][] and this project adheres to
6
+ [Semantic Versioning][].
7
+
8
+ [Keep a Changelog]: https://keepachangelog.com
9
+ [Semantic Versioning]: https://semver.org
10
+
11
+ ## [Unreleased][]
12
+
13
+ ### Added
14
+
15
+ ### Changed
16
+
17
+ ### Deprecated
18
+
19
+ ### Removed
20
+
21
+ ### Fixed
22
+
23
+ ### Security
24
+
25
+ ## [0.9.0][] - 2024-10-25
26
+
27
+ ### Added
28
+
29
+ * Add a CHANGELOG ([#61][])
30
+ * Add console script ([#63][])
31
+
32
+ ### Changed
33
+
34
+ * Improve configuration support ([#64][])
35
+ * Improve release script ([#65][])
36
+
37
+ ### Fixed
38
+
39
+ * Fix CircleCI builds ([#62][])
40
+
41
+ ## [0.8.0][] - 2022-01-24
42
+
43
+ ### Added
44
+
45
+ * Add a Configuration class ([#42][])
46
+ * Add an endpoint for messages that are scheduled ([#43][])
47
+ * Document #scheduled_messages ([#45][])
48
+ * Add support for deleting scheduled triggers ([#47][])
49
+
50
+ ### Changed
51
+
52
+ * Standardize rest test code structure ([#44][])
53
+
54
+ ### Fixed
55
+
56
+ * Fix typo in README code example ([#46][])
57
+
58
+ ## [0.7.0][] - 2021-09-29
59
+
60
+ ### Added
61
+
62
+ * Add campaign scheduling endpoint ([#41][])
63
+
64
+ ### Fixed
65
+
66
+ * Fix syntax error in "send campaigns" example ([#38][])
67
+
68
+ ## [0.6.0][] - 2021-07-23
69
+
70
+ ### Added
71
+
72
+ * Add retry configuration pass through ([#31][])
73
+ * Endpoint for 'remove email address from spam' ([#32][])
74
+ * Ability to set Faraday connection options ([#34][])
75
+
76
+ ### Changed
77
+
78
+ * Publish via GitHub actions ([#36][])
79
+ * Allow options when exporting users by ids ([#37][])
80
+
81
+ ## [0.5.0][] - 2021-05-06
82
+
83
+ ### Added
84
+
85
+ * Add .circleci/config.yml ([#25][])
86
+ * Setup and comply with standardrb ([#28][])
87
+ * Add release workflow to publish gem from CI ([#29][])
88
+ * Add script to help automate releases ([#30][])
89
+
90
+ ### Changed
91
+
92
+ * Modernize a few files and tinker with CI setup ([#26][])
93
+ * Update authors and license ([#27][])
94
+
95
+ [Unreleased]: https://github.com/jonallured/braze_ruby/compare/v0.9.0...HEAD
96
+
97
+ [0.5.0]: https://github.com/jonallured/braze_ruby/releases/tag/v0.5.0
98
+ [0.6.0]: https://github.com/jonallured/braze_ruby/releases/tag/v0.6.0
99
+ [0.7.0]: https://github.com/jonallured/braze_ruby/releases/tag/v0.7.0
100
+ [0.8.0]: https://github.com/jonallured/braze_ruby/releases/tag/v0.8.0
101
+ [0.9.0]: https://github.com/jonallured/braze_ruby/releases/tag/v0.9.0
102
+
103
+ [#25]: https://github.com/jonallured/braze_ruby/pull/25
104
+ [#26]: https://github.com/jonallured/braze_ruby/pull/26
105
+ [#27]: https://github.com/jonallured/braze_ruby/pull/27
106
+ [#28]: https://github.com/jonallured/braze_ruby/pull/28
107
+ [#29]: https://github.com/jonallured/braze_ruby/pull/29
108
+ [#30]: https://github.com/jonallured/braze_ruby/pull/30
109
+ [#31]: https://github.com/jonallured/braze_ruby/pull/31
110
+ [#32]: https://github.com/jonallured/braze_ruby/pull/32
111
+ [#34]: https://github.com/jonallured/braze_ruby/pull/34
112
+ [#36]: https://github.com/jonallured/braze_ruby/pull/36
113
+ [#37]: https://github.com/jonallured/braze_ruby/pull/37
114
+ [#38]: https://github.com/jonallured/braze_ruby/pull/38
115
+ [#41]: https://github.com/jonallured/braze_ruby/pull/41
116
+ [#42]: https://github.com/jonallured/braze_ruby/pull/42
117
+ [#43]: https://github.com/jonallured/braze_ruby/pull/43
118
+ [#44]: https://github.com/jonallured/braze_ruby/pull/44
119
+ [#45]: https://github.com/jonallured/braze_ruby/pull/45
120
+ [#46]: https://github.com/jonallured/braze_ruby/pull/46
121
+ [#47]: https://github.com/jonallured/braze_ruby/pull/47
122
+ [#61]: https://github.com/jonallured/braze_ruby/pull/61
123
+ [#62]: https://github.com/jonallured/braze_ruby/pull/62
124
+ [#63]: https://github.com/jonallured/braze_ruby/pull/63
125
+ [#64]: https://github.com/jonallured/braze_ruby/pull/64
126
+ [#65]: https://github.com/jonallured/braze_ruby/pull/65
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2021 Jon Allured
3
+ Copyright (c) 2024 Jon Allured
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -19,22 +19,43 @@ Or install it yourself as:
19
19
 
20
20
  ### Configuration
21
21
 
22
- Configuration options may be passed when a new API object is instantiated:
22
+ Configuration settings may be passed when a new API object is instantiated:
23
23
 
24
24
  ```ruby
25
- BrazeRuby::API.new('<braze-rest-api-key>', '<braze-rest-url', {<additional options>})
25
+ api_key = "instance-api-key"
26
+ braze_url = "instance-braze-url"
27
+ options = { key: "instance-options" }
28
+
29
+ api = BrazeRuby::API.new(api_key, braze_url, options)
30
+
31
+ api.api_key
32
+ # => "instance-api-key"
33
+ api.braze_url
34
+ # => "instance-braze-url"
35
+ api.options
36
+ # => {:key=>"instance-options"}
26
37
  ```
27
38
 
28
39
  Alternatively, you can pass your [Braze REST API key][braze_api_key], [Braze
29
40
  REST URL][braze_url], and any required [Faraday options][faraday_options] to the
30
- `BrazeRuby::configure` method:
41
+ `BrazeRuby::configure` method. Then, if you instantiate an API object with no
42
+ arguments it will use these global configuration settings:
31
43
 
32
44
  ```ruby
33
45
  BrazeRuby.configure do |config|
34
- config.rest_api_key = '<braze-rest-api-key>'
35
- config.rest_url = '<braze-rest-url>'
36
- config.options = {<additional options>}
46
+ config.rest_api_key = "global-api-key"
47
+ config.rest_url = "global-braze-url"
48
+ config.options = { key: "global-options" }
37
49
  end
50
+
51
+ api = BrazeRuby::API.new
52
+
53
+ api.api_key
54
+ # => "global-api-key"
55
+ api.braze_url
56
+ # => "global-braze-url"
57
+ api.options
58
+ # => {:key=>"global-options"}
38
59
  ```
39
60
 
40
61
  ## Examples
@@ -307,6 +328,18 @@ export BRAZE_RUBY_DEBUG=true
307
328
  bundle exec rails whatever
308
329
  ```
309
330
 
331
+ ## Releasing
332
+
333
+ Before releasing the CHANGELOG should be updated so that the new version has
334
+ it's own section and an empty Unreleased section is ready for the next change.
335
+ New versions are released by running a script locally that bumps the minor level
336
+ of the gem and then pushes to a GitHub Action that actually sends the new
337
+ version to RubyGems.org:
338
+
339
+ ```
340
+ $ ./bin/release
341
+ ```
342
+
310
343
  ## Contributing
311
344
 
312
345
  1. Fork it
@@ -314,6 +347,7 @@ bundle exec rails whatever
314
347
  3. Commit your changes (`git commit -am 'Add some feature'`)
315
348
  4. Push to the branch (`git push origin my-new-feature`)
316
349
  5. Create new Pull Request
350
+ 6. Update CHANGELOG
317
351
 
318
352
  [badge]: https://circleci.com/gh/jonallured/braze_ruby.svg?style=svg
319
353
  [braze_api_key]: https://www.braze.com/docs/api/api_key/
data/bin/console ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "braze_ruby"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ require "irb"
10
+ IRB.start(__FILE__)
data/bin/release CHANGED
@@ -1,16 +1,6 @@
1
1
  #! /bin/sh
2
2
  set -ex
3
3
 
4
- old_version=$1
5
- new_version=$2
6
-
7
- version_files="lib/braze_ruby/version.rb Gemfile.lock"
8
- commit_message="Bumping version numbers for $new_version"
9
- tag_message="Tagging version $new_version"
10
-
11
- sed -i "" "s/$old_version/$new_version/g" $version_files
12
- git add .
13
- git commit --message "$commit_message"
4
+ bundle exec bump minor --tag
14
5
  git push origin main
15
- git tag --annotate v$new_version --message "$tag_message"
16
6
  git push origin --tags
data/braze_ruby.gemspec CHANGED
@@ -4,7 +4,7 @@ Gem::Specification.new do |spec|
4
4
  spec.name = "braze_ruby"
5
5
  spec.version = BrazeRuby::VERSION
6
6
  spec.authors = ["Josh Nussbaum", "Hugo Bastien", "Justin Boltz", "Jonathan Allured"]
7
- spec.email = %w[josh@godynamo.com hugo@godynamo.com justin.boltz@takl.com jon.allured@gmail.com]
7
+ spec.email = %w[josh@godynamo.com hugo@godynamo.com justin.boltz@takl.com jon@jonallured.com]
8
8
 
9
9
  spec.summary = "A wrapper gem for the Braze REST API."
10
10
  spec.description = "Wrapper for Braze API"
@@ -19,11 +19,11 @@ Gem::Specification.new do |spec|
19
19
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
20
20
  end
21
21
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
22
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
23
22
  spec.require_paths = ["lib"]
24
23
 
25
24
  spec.add_dependency "faraday"
26
25
 
26
+ spec.add_development_dependency "bump"
27
27
  spec.add_development_dependency "dotenv"
28
28
  spec.add_development_dependency "factory_bot"
29
29
  spec.add_development_dependency "pry"
@@ -43,10 +43,10 @@ module BrazeRuby
43
43
 
44
44
  attr_reader :api_key, :braze_url, :options
45
45
 
46
- def initialize(api_key, braze_url, options = {})
47
- @api_key = api_key || configuration.rest_api_key
48
- @braze_url = braze_url || configuration.rest_url
49
- @options = options || configuration.options
46
+ def initialize(api_key = nil, braze_url = nil, options = nil)
47
+ @api_key = api_key || BrazeRuby.configuration.rest_api_key
48
+ @braze_url = braze_url || BrazeRuby.configuration.rest_url
49
+ @options = options || BrazeRuby.configuration.options || {}
50
50
  end
51
51
  end
52
52
  end
@@ -7,7 +7,7 @@ module BrazeRuby
7
7
 
8
8
  def initialize(api_key, braze_url, options, **params)
9
9
  @params = params
10
- super api_key, braze_url, options
10
+ super(api_key, braze_url, options)
11
11
  end
12
12
 
13
13
  def perform
@@ -7,7 +7,7 @@ module BrazeRuby
7
7
 
8
8
  def initialize(api_key, braze_url, options, **params)
9
9
  @params = params
10
- super api_key, braze_url, options
10
+ super(api_key, braze_url, options)
11
11
  end
12
12
 
13
13
  def perform
@@ -8,7 +8,7 @@ module BrazeRuby
8
8
  def initialize(api_key, braze_url, options, email: nil, status: nil)
9
9
  @email = email
10
10
  @status = status
11
- super api_key, braze_url, options
11
+ super(api_key, braze_url, options)
12
12
  end
13
13
 
14
14
  def perform
@@ -7,7 +7,7 @@ module BrazeRuby
7
7
 
8
8
  def initialize(api_key, braze_url, options, **params)
9
9
  @params = params
10
- super api_key, braze_url, options
10
+ super(api_key, braze_url, options)
11
11
  end
12
12
 
13
13
  def perform
@@ -10,7 +10,7 @@ module BrazeRuby
10
10
  @time = time
11
11
  @external_user_ids = external_user_ids
12
12
  @in_local_time = in_local_time
13
- super api_key, braze_url, options
13
+ super(api_key, braze_url, options)
14
14
  end
15
15
 
16
16
  def perform
@@ -7,7 +7,7 @@ module BrazeRuby
7
7
 
8
8
  def initialize(api_key, braze_url, options, **params)
9
9
  @params = params
10
- super api_key, braze_url, options
10
+ super(api_key, braze_url, options)
11
11
  end
12
12
 
13
13
  def perform
@@ -8,7 +8,7 @@ module BrazeRuby
8
8
  def initialize(api_key, braze_url, options, messages: [], external_user_ids: [])
9
9
  @messages = messages
10
10
  @external_user_ids = external_user_ids
11
- super api_key, braze_url, options
11
+ super(api_key, braze_url, options)
12
12
  end
13
13
 
14
14
  def perform
@@ -7,7 +7,7 @@ module BrazeRuby
7
7
 
8
8
  def initialize(api_key, braze_url, options, **params)
9
9
  @params = params
10
- super api_key, braze_url, options
10
+ super(api_key, braze_url, options)
11
11
  end
12
12
 
13
13
  def perform
@@ -7,7 +7,7 @@ module BrazeRuby
7
7
 
8
8
  def initialize(api_key, braze_url, options, **params)
9
9
  @params = params
10
- super api_key, braze_url, options
10
+ super(api_key, braze_url, options)
11
11
  end
12
12
 
13
13
  def perform
@@ -7,7 +7,7 @@ module BrazeRuby
7
7
 
8
8
  def initialize(api_key, braze_url, options, **params)
9
9
  @params = params
10
- super api_key, braze_url, options
10
+ super(api_key, braze_url, options)
11
11
  end
12
12
 
13
13
  def perform
@@ -7,7 +7,7 @@ module BrazeRuby
7
7
 
8
8
  def initialize(api_key, braze_url, options, **params)
9
9
  @params = params
10
- super api_key, braze_url, options
10
+ super(api_key, braze_url, options)
11
11
  end
12
12
 
13
13
  def perform
@@ -7,7 +7,7 @@ module BrazeRuby
7
7
 
8
8
  def initialize(api_key, braze_url, options, **params)
9
9
  @params = params
10
- super api_key, braze_url, options
10
+ super(api_key, braze_url, options)
11
11
  end
12
12
 
13
13
  def perform
@@ -7,7 +7,7 @@ module BrazeRuby
7
7
 
8
8
  def initialize(api_key, braze_url, options, **params)
9
9
  @params = params
10
- super api_key, braze_url, options
10
+ super(api_key, braze_url, options)
11
11
  end
12
12
 
13
13
  def perform
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BrazeRuby
4
- VERSION = "0.8.0"
4
+ VERSION = "0.9.0"
5
5
  end
data/lib/braze_ruby.rb CHANGED
@@ -16,6 +16,10 @@ module BrazeRuby
16
16
  @configuration ||= Configuration.new
17
17
  end
18
18
 
19
+ def self.reset
20
+ @configuration = Configuration.new
21
+ end
22
+
19
23
  def self.configure
20
24
  yield(configuration)
21
25
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: braze_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Nussbaum
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2022-01-24 00:00:00.000000000 Z
14
+ date: 2024-10-25 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: faraday
@@ -27,6 +27,20 @@ dependencies:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: bump
32
+ requirement: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: '0'
37
+ type: :development
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
30
44
  - !ruby/object:Gem::Dependency
31
45
  name: dotenv
32
46
  requirement: !ruby/object:Gem::Requirement
@@ -144,7 +158,7 @@ email:
144
158
  - josh@godynamo.com
145
159
  - hugo@godynamo.com
146
160
  - justin.boltz@takl.com
147
- - jon.allured@gmail.com
161
+ - jon@jonallured.com
148
162
  executables: []
149
163
  extensions: []
150
164
  extra_rdoc_files: []
@@ -155,10 +169,12 @@ files:
155
169
  - ".gitignore"
156
170
  - ".rspec"
157
171
  - ".standard.yml"
172
+ - CHANGELOG.md
158
173
  - Gemfile
159
174
  - LICENSE.txt
160
175
  - README.md
161
176
  - Rakefile
177
+ - bin/console
162
178
  - bin/release
163
179
  - braze_ruby.gemspec
164
180
  - lib/braze_ruby.rb
@@ -228,7 +244,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
228
244
  - !ruby/object:Gem::Version
229
245
  version: '0'
230
246
  requirements: []
231
- rubygems_version: 3.1.2
247
+ rubygems_version: 3.3.5
232
248
  signing_key:
233
249
  specification_version: 4
234
250
  summary: A wrapper gem for the Braze REST API.