big_marker_client 0.1.4 → 0.1.8

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: d6fb91b5a5354ae4629ec265e53476357d78dbd65da6996cf24de3c7866a3402
4
- data.tar.gz: cadac9e803e07b4836b3a6008a825f976884877196852b9573fbc33c59f35386
3
+ metadata.gz: bceccab3ab7c9810771319f2432752db52a2c31fef2d7fb4278784738f99a4a0
4
+ data.tar.gz: 0eb375f2a3bf1fa03d2c03537ef8ae5fb55e64758ad4ed707f0f787aa031763a
5
5
  SHA512:
6
- metadata.gz: 62a7c90fe1839b181dfe1f3103933de22053e7330a9e17044d17c5323a67929bd23bf9c1f81d8741807d56018c1c40c4b9a8765ecc6ed9137bd9ff4496cf5628
7
- data.tar.gz: c08e7e125dc6fd43a8174f40d0c52d300431704030436b36f6afe942c379b081b9a1106b9aaf3a9254bd801ad6810a86dce4e12edc2ba5d78dd62ba76021911a
6
+ metadata.gz: 98cb9e67d4c3fec8ae756f1632a99100d7b9b624fe94b38231213809ed4efe824a59b652893be4d8807d29ed9f14b2b7ef26b81c245f458b404925929eef0dc4
7
+ data.tar.gz: d301b85ab74162be2fe8ef587e702bf9f108f170b323fb51fa9a1049b71bdd21c42dea5c2a633a31dcd9ab20864c089d40a5a6eef137ae27591747802a6c338e
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 3.0
2
+ TargetRubyVersion: 2.6
3
3
  NewCops: enable
4
4
  Exclude:
5
5
  - "vendor/**/*"
@@ -18,10 +18,6 @@ Metrics/BlockLength:
18
18
  - "spec/**/*"
19
19
  - "big_marker_client.gemspec"
20
20
 
21
- Performance/StringIdentifierArgument:
22
- Exclude:
23
- - "lib/big_marker_client/base.rb"
24
-
25
21
  Style/Documentation:
26
22
  Enabled: false
27
23
 
data/CHANGELOG.md CHANGED
@@ -1,3 +1,29 @@
1
+ # Changelog
2
+
3
+ ## [0.1.8] - unreleased
4
+
5
+ -
6
+
7
+ ## [0.1.7] - 2022-05-20
8
+
9
+ - fix return types for update and create are different from show
10
+ - fix attendee duration format (not integer minutes but time string)
11
+ - add attendee field `certificate_of_completion`
12
+ - add participant fields `enter_as_attendee`, `remove_bigmarker_contact_option`, `show_on_networking_center`,
13
+ `show_chat_icon_in_booth_or_session_room`
14
+ - better error handling of date fields
15
+ - better handling of attendees `SurveyResult`
16
+ - bundle update
17
+
18
+ ## [0.1.6] - 2022-01-19
19
+
20
+ - fix recurring method to return "child_conferences"
21
+
22
+ ## [0.1.5] - 2022-01-19 (broken, don't use!)
23
+
24
+ - refactor HTTP client into a separate class
25
+ - fix looping if no meta-data is returned
26
+
1
27
  ## [0.1.4] - 2022-01-18
2
28
 
3
29
  - add new properties to attendees and add handout model and factory
data/Gemfile CHANGED
@@ -15,7 +15,7 @@ group :development do
15
15
  end
16
16
 
17
17
  group :test do
18
- gem "activesupport", "~> 6.0"
18
+ gem "activesupport", ">= 5.2"
19
19
  gem "factory_bot"
20
20
  gem "rspec", "~> 3.0"
21
21
  gem "webmock"
@@ -116,7 +116,7 @@ module BigMarkerClient
116
116
  def recurring(conference_id, params = {})
117
117
  result = get(replace_path_params(path: RECURRING_CONFERENCES,
118
118
  replacements: { "{id}": conference_id }), params)
119
- return map_to_model_array(result["conferences"]) if result["conferences"]
119
+ return map_to_model_array(result["child_conferences"]) if result["child_conferences"]
120
120
 
121
121
  result
122
122
  end
@@ -126,7 +126,7 @@ module BigMarkerClient
126
126
  # @see #recurring
127
127
  def recurring_all(conference_id, params = {})
128
128
  path = replace_path_params(path: RECURRING_CONFERENCES, replacements: { "{id}": conference_id })
129
- loop_over(path, "conferences", ::BigMarkerClient::Models::Conference, params)
129
+ loop_over(path, "child_conferences", ::BigMarkerClient::Models::Conference, params)
130
130
  end
131
131
 
132
132
  ##
@@ -137,7 +137,7 @@ module BigMarkerClient
137
137
  def update(conference_id, body = {})
138
138
  body = body.to_h if body.is_a?(::BigMarkerClient::Models::Conference)
139
139
  result = put(replace_path_params(path: UPDATE_CONFERENCE, replacements: { "{id}": conference_id }), body)
140
- return ::BigMarkerClient::Models::Conference.new(result["conference"]) if result["conference"]
140
+ return ::BigMarkerClient::Models::Conference.new(result) if result["id"]
141
141
 
142
142
  result
143
143
  end
@@ -149,7 +149,7 @@ module BigMarkerClient
149
149
  def create(body = {})
150
150
  body = body.to_h if body.is_a?(::BigMarkerClient::Models::Base)
151
151
  result = post(CREATE_CONFERENCE, body)
152
- return ::BigMarkerClient::Models::Conference.new(result["conference"]) if result["conference"]
152
+ return ::BigMarkerClient::Models::Conference.new(result) if result["id"]
153
153
 
154
154
  result
155
155
  end
@@ -1,8 +1,9 @@
1
- require "typhoeus"
2
- require "typhoeus/adapters/faraday"
1
+ require "faraday"
3
2
 
4
3
  module BigMarkerClient
5
4
  class Base
5
+ DEFAULT_PER_PAGE_SIZE = 25
6
+
6
7
  class << self
7
8
  def post(path, body = {})
8
9
  request(verb: :post, path: path, params: body)
@@ -36,10 +37,10 @@ module BigMarkerClient
36
37
  page = 1
37
38
  results = []
38
39
  loop do
39
- params[:page] = page
40
+ params["page"] = page
40
41
  result = send(method, path, params)
41
42
  results += map_to_model_array(result[field], model_class) if result[field]
42
- break if page >= result["total_pages"].to_i || results.length >= total_count(result).to_i
43
+ break if break?(results: results, result: result, page: page, page_size: page_size(params))
43
44
 
44
45
  page += 1
45
46
  end
@@ -50,55 +51,71 @@ module BigMarkerClient
50
51
 
51
52
  def request(path:, verb: :get, params: {})
52
53
  check_preconditions(verb, path)
54
+ params = stringify_keys(params)
53
55
 
54
56
  params = params.to_json unless %w[get delete].include?(verb.to_s)
55
- response = http_client.send(verb.to_s, base_url(path), params)
56
- parse_body(response.body)
57
+ @http_client ||= HttpClient.new
58
+ response = @http_client.connection.send(verb.to_s, base_url(path), params)
59
+ return parse_body(response.body) if response.success?
60
+
61
+ response.body
57
62
  end
58
63
 
59
64
  def check_preconditions(verb, path)
60
- if verb.nil? || path.nil? || BigMarkerClient::Config.api_key.nil?
61
- raise ArgumentError, "http_method, path or api key is missing"
62
- end
65
+ raise ArgumentError, "http_method, path or api key is missing" if verb.nil? || path.nil? || Config.api_key.nil?
63
66
  raise ArgumentError, "unsupported http_method: #{verb}" unless %w[post put patch delete get].include?(verb.to_s)
64
67
  end
65
68
 
66
- def http_client
67
- conn ||= Faraday.new(url: BigMarkerClient::Config.base_url) do |faraday|
68
- faraday = headers(faraday)
69
- configure_logging(faraday) if BigMarkerClient::Config.log
69
+ def stringify_keys(hash)
70
+ hash_symbol_keys = hash.keys.select { |key| key.is_a?(Symbol) }
71
+ hash_symbol_keys.each do |key|
72
+ hash[key.to_s] = hash[key]
73
+ hash.delete(key)
70
74
  end
71
- conn.adapter :typhoeus
72
- conn
73
- end
74
-
75
- def headers(adapter)
76
- adapter.headers["Content-Type"] = "application/json"
77
- adapter.headers["API-KEY"] = BigMarkerClient::Config.api_key unless BigMarkerClient::Config.api_key.nil?
78
- adapter
79
- end
80
-
81
- def configure_logging(adapter)
82
- adapter.response :logger do |logger|
83
- logger.instance_variable_get("@options")[:log_level] = :debug if BigMarkerClient::Config.debug
84
- logger.filter(/password=([^&]+)/, "password=[FILTERED]")
85
- logger.filter(/API-KEY: "(\w*)"/, "API-KEY: [FILTERED]")
86
- end
87
- adapter
75
+ hash
88
76
  end
89
77
 
90
78
  def base_url(path)
91
- BigMarkerClient::Config.base_url + (path.start_with?("/") ? path : "/#{path}")
79
+ Config.base_url + (path.start_with?("/") ? path : "/#{path}")
92
80
  end
93
81
 
94
82
  def parse_body(body)
95
83
  return nil if body.strip == ""
96
84
 
97
85
  json = JSON.parse(body)
98
- BigMarkerClient::Config.logger.debug(json) if BigMarkerClient::Config.debug
86
+ Config.logger.debug(json) if Config.debug
99
87
  json
100
88
  rescue JSON::ParserError
101
- raise BigMarkerClient::ResponseError, "invalid response"
89
+ raise ResponseError, "invalid response"
90
+ end
91
+
92
+ def page_size(params)
93
+ params["page_count"] || params.fetch("per_page", DEFAULT_PER_PAGE_SIZE)
94
+ end
95
+
96
+ ##
97
+ # BigMarker API is a total mess that won't return total_pages or total_entries on all request types so we have to
98
+ # get creative
99
+ def break?(results:, result:, page:, page_size:)
100
+ return true if break_on_full_metadata?(results: results, result: result, page: page) ||
101
+ break_on_partial_metadata?(results: results, result: result, page: page)
102
+
103
+ results.length.zero? || (results.length % page_size) != 0 || (results.length.to_f / page_size) < page
104
+ end
105
+
106
+ def break_on_full_metadata?(results:, result:, page:)
107
+ if !result["total_pages"].nil? && !total_count(result).nil?
108
+ return ((page >= result["total_pages"].to_i) || (results.length >= total_count(result).to_i))
109
+ end
110
+
111
+ false
112
+ end
113
+
114
+ def break_on_partial_metadata?(results:, result:, page:)
115
+ return page >= result["total_pages"].to_i unless result["total_pages"].nil?
116
+ return results.length >= total_count(result).to_i unless total_count(result).nil?
117
+
118
+ false
102
119
  end
103
120
 
104
121
  ##
@@ -9,7 +9,7 @@ module BigMarkerClient
9
9
  end
10
10
 
11
11
  def api_key
12
- @api_key ||= ENV["BIGMARKER_API_KEY"]
12
+ @api_key ||= ENV.fetch("BIGMARKER_API_KEY", nil)
13
13
  end
14
14
 
15
15
  def log
@@ -0,0 +1,29 @@
1
+ module BigMarkerClient
2
+ class HttpClient
3
+ attr_reader :connection
4
+
5
+ def initialize
6
+ @connection = Faraday.new(url: Config.base_url) do |faraday|
7
+ faraday = headers(faraday)
8
+ configure_logging(faraday) if Config.log
9
+ end
10
+ end
11
+
12
+ private
13
+
14
+ def headers(adapter)
15
+ adapter.headers["Content-Type"] = "application/json"
16
+ adapter.headers["API-KEY"] = Config.api_key unless Config.api_key.nil?
17
+ adapter
18
+ end
19
+
20
+ def configure_logging(adapter)
21
+ adapter.response :logger do |logger|
22
+ logger.instance_variable_get(:@options)[:log_level] = :debug if Config.debug
23
+ logger.filter(/password=([^&]+)/, "password=[FILTERED]")
24
+ logger.filter(/API-KEY: "(\w*)"/, "API-KEY: [FILTERED]")
25
+ end
26
+ adapter
27
+ end
28
+ end
29
+ end
@@ -3,10 +3,9 @@ module BigMarkerClient
3
3
  class Attendee < Base
4
4
  attr_accessor :id, :bmid, :conference_id, :email, :first_name, :last_name, :edited_in_room_display_name,
5
5
  :custom_fields, :entered_at, :leaved_at, :total_duration, :engaged_duration, :attendance_monitor,
6
- :survey_results, :time_zone, :country,
7
- :chats_count, :qas_count, :polls_count, :polls, :questions, :handouts, :browser_name,
8
- :browser_version, :device_name
9
- attr_reader :view_handout, :download_handout
6
+ :time_zone, :country, :certificate_of_completion, :chats_count, :qas_count, :polls_count, :polls,
7
+ :questions, :handouts, :browser_name, :browser_version, :device_name
8
+ attr_reader :view_handout, :download_handout, :survey_results
10
9
 
11
10
  def download_handout=(handout_array)
12
11
  @download_handout = if handout_array.nil? || !handout_array.is_a?(Array) || handout_array.empty?
@@ -16,6 +15,16 @@ module BigMarkerClient
16
15
  end
17
16
  end
18
17
 
18
+ # TODO: handout has same structure as view_handout?
19
+
20
+ def survey_results=(results_array)
21
+ @survey_results = if results_array.nil? || !results_array.is_a?(Array) || results_array.empty?
22
+ []
23
+ else
24
+ results_array.map { |result_hash| SurveyResult.new(result_hash) }
25
+ end
26
+ end
27
+
19
28
  def view_handout=(handout_array)
20
29
  @view_handout = if handout_array.nil? || !handout_array.is_a?(Array) || handout_array.empty?
21
30
  []
@@ -6,6 +6,8 @@ module BigMarkerClient
6
6
 
7
7
  def timestamp=(timestamp)
8
8
  @timestamp = DateTime.strptime(timestamp, "%m/%d/%Y %H:%M:%S %z") unless timestamp.nil? || timestamp == ""
9
+ rescue Date::Error
10
+ @timestamp = nil
9
11
  end
10
12
  end
11
13
  end
@@ -6,7 +6,9 @@ module BigMarkerClient
6
6
  :presenter_dial_in_id, :presenter_dial_in_passcode, :title, :bio, :can_manage, :is_moderator,
7
7
  :facebook, :twitter, :linkedin, :website,
8
8
  # for presenter creation
9
- :presenter_temporary_password, :send_email_invite, :add_to_channel_subscriber_list
9
+ :presenter_temporary_password, :send_email_invite, :add_to_channel_subscriber_list,
10
+ :enter_as_attendee, :remove_bigmarker_contact_option, :show_on_networking_center,
11
+ :show_chat_icon_in_booth_or_session_room
10
12
 
11
13
  # differences between creation and retrieval, use creation as leading (oh well)
12
14
  alias display_name name
@@ -0,0 +1,18 @@
1
+ module BigMarkerClient
2
+ module Models
3
+ class SurveyResult < Base
4
+ attr_accessor :question, :email, :response
5
+ attr_reader :date
6
+
7
+ def date=(date_str)
8
+ @date = Date.strptime(date_str, "%a, %b %d, %Y") unless date_str.nil? || date_str == ""
9
+ rescue Date::Error
10
+ @date = nil
11
+ end
12
+
13
+ def answered?
14
+ !response.nil? && response != ""
15
+ end
16
+ end
17
+ end
18
+ end
@@ -1,3 +1,3 @@
1
1
  module BigMarkerClient
2
- VERSION = "0.1.4".freeze
2
+ VERSION = "0.1.8".freeze
3
3
  end
@@ -10,6 +10,7 @@ module BigMarkerClient
10
10
 
11
11
  autoload :Base, "big_marker_client/base"
12
12
  autoload :Config, "big_marker_client/config"
13
+ autoload :HttpClient, "big_marker_client/http_client"
13
14
  autoload :Version, "big_marker_client/version"
14
15
 
15
16
  module Api
@@ -31,6 +32,7 @@ module BigMarkerClient
31
32
  autoload :PreloadFile, "big_marker_client/models/preload_file"
32
33
  autoload :Presenter, "big_marker_client/models/presenter"
33
34
  autoload :Registrant, "big_marker_client/models/registrant"
35
+ autoload :SurveyResult, "big_marker_client/models/survey_result"
34
36
  autoload :WebinarStats, "big_marker_client/models/webinar_stats"
35
37
  end
36
38
  end
@@ -10,8 +10,8 @@ FactoryBot.define do
10
10
  custom_fields { [] }
11
11
  entered_at { (Time.now - (60 * BigMarkerClient::TestSupport::MINUTES)).strftime("%FT%T%:z") }
12
12
  leaved_at { Time.now.strftime("%FT%T%:z") }
13
- total_duration { "3600" }
14
- engaged_duration { "240" }
13
+ total_duration { Time.at(rand * 120 * 60).utc.strftime("%T") }
14
+ engaged_duration { Time.at(rand * 120 * 60).utc.strftime("%T") }
15
15
  attendance_monitor { { "show_popup" => 0, "click_popup" => 0 } }
16
16
  survey_results { [] }
17
17
  time_zone { "Europe/Berlin" }
@@ -27,6 +27,7 @@ FactoryBot.define do
27
27
  device_name { "desktop" }
28
28
  download_handout { [] }
29
29
  view_handout { [] }
30
+ certificate_of_completion { "" }
30
31
 
31
32
  initialize_with do
32
33
  new(id: id, bmid: bmid, conference_id: conference_id, email: email, first_name: first_name, last_name: last_name,
@@ -36,7 +37,7 @@ FactoryBot.define do
36
37
  time_zone: time_zone, country: country, chats_count: chats_count, qas_count: qas_count,
37
38
  polls_count: polls_count, polls: polls, questions: questions, handouts: handouts, browser_name: browser_name,
38
39
  browser_version: browser_version, device_name: device_name, download_handout: download_handout,
39
- view_handout: view_handout)
40
+ view_handout: view_handout, certificate_of_completion: certificate_of_completion)
40
41
  end
41
42
 
42
43
  trait :with_view_handouts do
@@ -24,6 +24,10 @@ FactoryBot.define do
24
24
  presenter_temporary_password { "secret" }
25
25
  send_email_invite { true }
26
26
  add_to_channel_subscriber_list { false }
27
+ enter_as_attendee { false }
28
+ remove_bigmarker_contact_option { true }
29
+ show_on_networking_center { true }
30
+ show_chat_icon_in_booth_or_session_room { true }
27
31
 
28
32
  initialize_with do
29
33
  new(presenter_id: presenter_id, member_id: member_id, conference_id: conference_id, name: name,
@@ -34,7 +38,10 @@ FactoryBot.define do
34
38
  title: title, bio: bio, can_manage: can_manage, is_moderator: is_moderator, facebook: facebook,
35
39
  twitter: twitter, linkedin: linkedin, website: website,
36
40
  presenter_temporary_password: presenter_temporary_password, send_email_invite: send_email_invite,
37
- add_to_channel_subscriber_list: add_to_channel_subscriber_list)
41
+ add_to_channel_subscriber_list: add_to_channel_subscriber_list, enter_as_attendee: enter_as_attendee,
42
+ remove_bigmarker_contact_option: remove_bigmarker_contact_option,
43
+ show_on_networking_center: show_on_networking_center,
44
+ show_chat_icon_in_booth_or_session_room: show_chat_icon_in_booth_or_session_room)
38
45
  end
39
46
  end
40
47
  end
@@ -0,0 +1,12 @@
1
+ FactoryBot.define do
2
+ factory :big_marker_survey_result, class: "BigMarkerClient::Models::SurveyResult" do
3
+ sequence(:question) { |n| "question #{n}" }
4
+ sequence(:email) { |n| "attendee-email#{n}@example.com" }
5
+ date { Date.today.strftime("%a, %b %d, %Y") }
6
+ response { "response" }
7
+
8
+ initialize_with do
9
+ new(question: question, email: email, date: date, response: response)
10
+ end
11
+ end
12
+ end
metadata CHANGED
@@ -1,43 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: big_marker_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Burkhard Vogel-Kreykenbohm
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-18 00:00:00.000000000 Z
11
+ date: 2022-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
15
15
  requirement: !ruby/object:Gem::Requirement
16
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
- - !ruby/object:Gem::Dependency
28
- name: faraday-httpclient
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
17
+ - - ">="
32
18
  - !ruby/object:Gem::Version
33
- version: '1.0'
19
+ version: '0'
34
20
  type: :runtime
35
21
  prerelease: false
36
22
  version_requirements: !ruby/object:Gem::Requirement
37
23
  requirements:
38
- - - "~>"
24
+ - - ">="
39
25
  - !ruby/object:Gem::Version
40
- version: '1.0'
26
+ version: '0'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: json
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -52,20 +38,6 @@ dependencies:
52
38
  - - "~>"
53
39
  - !ruby/object:Gem::Version
54
40
  version: '2.0'
55
- - !ruby/object:Gem::Dependency
56
- name: typhoeus
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '1.0'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '1.0'
69
41
  description: Encapsulates calls to the BigMarker API to create ond retrieve conferences,
70
42
  participants, analytics and more
71
43
  email:
@@ -92,6 +64,7 @@ files:
92
64
  - lib/big_marker_client/api/v1/presenter.rb
93
65
  - lib/big_marker_client/base.rb
94
66
  - lib/big_marker_client/config.rb
67
+ - lib/big_marker_client/http_client.rb
95
68
  - lib/big_marker_client/models/attendee.rb
96
69
  - lib/big_marker_client/models/base.rb
97
70
  - lib/big_marker_client/models/conference.rb
@@ -100,6 +73,7 @@ files:
100
73
  - lib/big_marker_client/models/preload_file.rb
101
74
  - lib/big_marker_client/models/presenter.rb
102
75
  - lib/big_marker_client/models/registrant.rb
76
+ - lib/big_marker_client/models/survey_result.rb
103
77
  - lib/big_marker_client/models/webinar_stats.rb
104
78
  - lib/big_marker_client/test_support.rb
105
79
  - lib/big_marker_client/version.rb
@@ -110,6 +84,7 @@ files:
110
84
  - spec/factories/big_marker/preload_file.rb
111
85
  - spec/factories/big_marker/presenter.rb
112
86
  - spec/factories/big_marker/registrant.rb
87
+ - spec/factories/big_marker/survey_result.rb
113
88
  - spec/factories/big_marker/webinar_stats.rb
114
89
  homepage: https://gitlab.com/capinside-oss/big_marker_client
115
90
  licenses:
@@ -124,14 +99,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
124
99
  requirements:
125
100
  - - ">="
126
101
  - !ruby/object:Gem::Version
127
- version: '3.0'
102
+ version: '2.6'
128
103
  required_rubygems_version: !ruby/object:Gem::Requirement
129
104
  requirements:
130
105
  - - ">="
131
106
  - !ruby/object:Gem::Version
132
107
  version: '0'
133
108
  requirements: []
134
- rubygems_version: 3.2.32
109
+ rubygems_version: 3.3.7
135
110
  signing_key:
136
111
  specification_version: 4
137
112
  summary: simple client library to access the BigMarker API