looker-sdk 0.1.7 → 0.1.11

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.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/lib/looker-sdk/client/dynamic.rb +5 -3
  4. data/lib/looker-sdk/client.rb +16 -7
  5. data/lib/looker-sdk/default.rb +1 -1
  6. data/lib/looker-sdk/error.rb +8 -2
  7. data/lib/looker-sdk/version.rb +1 -1
  8. data/lib/looker-sdk.rb +2 -1
  9. data/test/helper.rb +10 -4
  10. data/test/looker/swagger.json +42011 -1117
  11. data/test/looker/test_client.rb +19 -15
  12. data/test/looker/test_dynamic_client.rb +36 -34
  13. data/test/looker/test_dynamic_client_agent.rb +45 -12
  14. data/test/looker/test_inline_query.rb +97 -0
  15. metadata +14 -45
  16. data/.github/CODEOWNERS +0 -1
  17. data/.github/scripts/wait_for_looker.sh +0 -35
  18. data/.github/workflows/release-metrics.yml +0 -44
  19. data/.github/workflows/release.yml +0 -47
  20. data/.github/workflows/ruby-ci.yml +0 -140
  21. data/.gitignore +0 -60
  22. data/.ruby-gemset +0 -1
  23. data/Gemfile +0 -22
  24. data/Gemfile.lock +0 -73
  25. data/Makefile +0 -81
  26. data/Rakefile +0 -38
  27. data/examples/.netrc +0 -1
  28. data/examples/add_delete_users.rb +0 -118
  29. data/examples/change_credentials_email_address_for_users.rb +0 -47
  30. data/examples/convert_look_to_lookless_tile.rb +0 -71
  31. data/examples/create_credentials_email_for_users.rb +0 -43
  32. data/examples/delete_all_user_sessions.rb +0 -39
  33. data/examples/delete_credentials_google_for_users.rb +0 -43
  34. data/examples/errors.rb +0 -47
  35. data/examples/generate_password_reset_tokens_for_users.rb +0 -43
  36. data/examples/ldap_roles_test.rb +0 -74
  37. data/examples/me.rb +0 -27
  38. data/examples/refresh_user_notification_addresses.rb +0 -34
  39. data/examples/roles_and_users_with_permission.rb +0 -46
  40. data/examples/sdk_setup.rb +0 -45
  41. data/examples/streaming_downloads.rb +0 -44
  42. data/examples/users_with_credentials_email.rb +0 -30
  43. data/examples/users_with_credentials_embed.rb +0 -33
  44. data/examples/users_with_credentials_google.rb +0 -30
  45. data/examples/users_with_credentials_google_without_credentials_email.rb +0 -30
  46. data/looker-sdk.gemspec +0 -32
  47. data/shell/.gitignore +0 -41
  48. data/shell/.netrc +0 -3
  49. data/shell/Gemfile +0 -6
  50. data/shell/Gemfile.lock +0 -60
  51. data/shell/readme.md +0 -18
  52. data/shell/shell.rb +0 -62
  53. data/shell.nix +0 -38
  54. data/test/fixtures/.netrc.template +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8d92e39845c05e99175eeaf366eaa61981e138a8cddfc9046494c9dda29ad0e5
4
- data.tar.gz: 1c33387b2b71d67e9c2a306e062e01d28f7d16a04882a546bb802b74a83484f7
3
+ metadata.gz: bd7f1ae1fc17049a2495fbe59b5daa30922eeee81324c198a14bd6e39714e4d6
4
+ data.tar.gz: 000eec5248e5cdee93e02a780822460a7c7adf10ebee87c645379a97eb8e2cf3
5
5
  SHA512:
6
- metadata.gz: 91b5a312f6b0fc6188fee2ed880aa56c2ae5d385989c639c02a7b082f785c26c0c0cf4760e29d91fdd8430399d00caf6ceeeca30770f2893e205b4622aa7b7ad
7
- data.tar.gz: 6a182f3f7bfd096939f5a2923f3df01f2fe0c843341e9a75100201e6f0a5ef230b0ddd188b4a594200407500d1ce957de0d9c7fc439c9fd57010bbab10b4b419
6
+ metadata.gz: 5d11ee93d5ea36eae97c8a2fff92c5505a3b1df8c750609cef85d431ca744ca188adfe8a1d17850ada2d9ac8bdf31129daef06713f5080303327f7360d366089
7
+ data.tar.gz: af88d3c1185927d26624900e6ed9794b3091415038aeba1f92a65c8d51daff308b3cc17f297709bd644cbb28e36d34011eccac83fa3f9aa0b3197e6af713dec6
data/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.1.11](https://github.com/looker-open-source/looker-sdk-ruby/compare/v0.1.10...v0.1.11) (2025-01-13)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * add error handling for streaming client ([69b8064](https://github.com/looker-open-source/looker-sdk-ruby/commit/69b8064818161d273872eb658be16bb17ed6df56))
9
+ * handle all variety of http response codes. ([6d75ee2](https://github.com/looker-open-source/looker-sdk-ruby/commit/6d75ee2c30521d48b4e68b910c75ff5fe9ff22e7))
10
+ * raise TypeError on marshal_dump ([#100](https://github.com/looker-open-source/looker-sdk-ruby/issues/100)) ([9e486ff](https://github.com/looker-open-source/looker-sdk-ruby/commit/9e486ff413f1951e557a9816729007067bf8588f))
11
+ * update rexml to 3.3.9 to eliminate ReDos vulnerability ([#102](https://github.com/looker-open-source/looker-sdk-ruby/issues/102)) ([42c5cd3](https://github.com/looker-open-source/looker-sdk-ruby/commit/42c5cd349231457fd7e75e541a0a208bae625c39))
12
+
13
+ ## [0.1.10](https://github.com/looker-open-source/looker-sdk-ruby/compare/v0.1.7...v0.1.10) (2024-10-07)
14
+
15
+
16
+ ### Bug Fixes
17
+
18
+ * reduce output of inspect ([#81](https://github.com/looker-open-source/looker-sdk-ruby/issues/81)) ([ffb7d63](https://github.com/looker-open-source/looker-sdk-ruby/commit/ffb7d630842a907e860bc27bfefe8c51f401986a))
19
+
20
+
21
+ ### Miscellaneous Chores
22
+
23
+ * release 0.1.10 ([1cf37b4](https://github.com/looker-open-source/looker-sdk-ruby/commit/1cf37b49586d97b4bbd85f1bf4f16c8836948744))
24
+
3
25
  ## [0.1.7](https://github.com/looker-open-source/looker-sdk-ruby/compare/v0.1.6...v0.1.7) (2024-01-19)
4
26
 
5
27
 
@@ -22,6 +22,8 @@
22
22
  # THE SOFTWARE.
23
23
  ############################################################################################
24
24
 
25
+ require 'ruby2_keywords'
26
+
25
27
  module LookerSDK
26
28
  class Client
27
29
 
@@ -97,12 +99,12 @@ module LookerSDK
97
99
  # Callers can explicitly 'invoke' remote methods or let 'method_missing' do the trick.
98
100
  # If nothing else, this gives clients a way to deal with potential conflicts between remote method
99
101
  # names and names of methods on client itself.
100
- def invoke(method_name, *args, &block)
102
+ ruby2_keywords def invoke(method_name, *args, &block)
101
103
  entry = find_entry(method_name) || raise(NameError, "undefined remote method '#{method_name}'")
102
104
  invoke_remote(entry, method_name, *args, &block)
103
105
  end
104
106
 
105
- def method_missing(method_name, *args, &block)
107
+ ruby2_keywords def method_missing(method_name, *args, &block)
106
108
  entry = find_entry(method_name) || (return super)
107
109
  invoke_remote(entry, method_name, *args, &block)
108
110
  end
@@ -117,7 +119,7 @@ module LookerSDK
117
119
  operations && operations[method_name.to_sym] if dynamic
118
120
  end
119
121
 
120
- def invoke_remote(entry, method_name, *args, &block)
122
+ ruby2_keywords def invoke_remote(entry, method_name, *args, &block)
121
123
  args = (args || []).dup
122
124
  route = entry[:route].to_s.dup
123
125
  params = (entry[:info][:parameters] || []).select {|param| param[:in] == 'path'}
@@ -1,7 +1,7 @@
1
1
  ############################################################################################
2
2
  # The MIT License (MIT)
3
3
  #
4
- # Copyright (c) 2022 Looker Data Sciences, Inc.
4
+ # Copyright (c) 2024 Google, LLC
5
5
  #
6
6
  # Permission is hereby granted, free of charge, to any person obtaining a copy
7
7
  # of this software and associated documentation files (the "Software"), to deal
@@ -29,6 +29,8 @@ require 'looker-sdk/configurable'
29
29
  require 'looker-sdk/authentication'
30
30
  require 'looker-sdk/rate_limit'
31
31
  require 'looker-sdk/client/dynamic'
32
+ require 'looker-sdk/error'
33
+ require 'ruby2_keywords'
32
34
 
33
35
  module LookerSDK
34
36
 
@@ -76,8 +78,8 @@ module LookerSDK
76
78
  #
77
79
  # @return [String]
78
80
  def inspect
79
- inspected = super
80
-
81
+ vars = instance_variables.reject {|v| [:@swagger, :@operations].include? v}
82
+ inspected = "#{self.class.name}: attributes=\n#{vars.map {|v| "\t#{v}=#{instance_variable_get(v)}"}.join("\n")}>"
81
83
  # Only show last 4 of token, secret
82
84
  [@access_token, @client_secret].compact.each do |str|
83
85
  len = [str.size - 4, 0].max
@@ -164,7 +166,7 @@ module LookerSDK
164
166
  #
165
167
  # @param url [String] The path, relative to {#api_endpoint}
166
168
  # @param options [Hash] Query and header params for request
167
- # @param block [Block] Block to perform the data concatination of the
169
+ # @param block [Block] Block to perform the data concatenation of the
168
170
  # multiple requests. The block is called with two parameters, the first
169
171
  # contains the contents of the requests so far and the second parameter
170
172
  # contains the latest response.
@@ -292,7 +294,7 @@ module LookerSDK
292
294
  # LOOKER_SILENT is set to true.
293
295
  #
294
296
  # @return [nil]
295
- def looker_warn(*message)
297
+ ruby2_keywords def looker_warn(*message)
296
298
  unless ENV['LOOKER_SILENT']
297
299
  warn message
298
300
  end
@@ -396,8 +398,15 @@ module LookerSDK
396
398
  http.read_timeout = connection.options.timeout rescue 60
397
399
 
398
400
  http.request(http_request) do |response|
399
- progress = Progress.new(response)
400
- if response.code == "200"
401
+ case response.code.to_i
402
+ when 400..599 then
403
+ error = LookerSDK::Error.from_response(response)
404
+ raise error
405
+ when 300..399 then
406
+ error = LookerSDK::Error.new("3xx response from streaming request")
407
+ raise error
408
+ when 200..299 then
409
+ progress = Progress.new(response)
401
410
  response.read_body do |chunk|
402
411
  next unless chunk.length > 0
403
412
  progress.add_chunk(chunk)
@@ -31,7 +31,7 @@ module LookerSDK
31
31
  module Default
32
32
 
33
33
  # Default API endpoint look TODO update this as needed
34
- API_ENDPOINT = "https://localhost:19999/api/3.0/".freeze
34
+ API_ENDPOINT = "https://localhost:19999/api/4.0/".freeze
35
35
 
36
36
  # Default User Agent header string
37
37
  USER_AGENT = "Looker Ruby Gem #{LookerSDK::VERSION}".freeze
@@ -1,7 +1,7 @@
1
1
  ############################################################################################
2
2
  # The MIT License (MIT)
3
3
  #
4
- # Copyright (c) 2022 Looker Data Sciences, Inc.
4
+ # Copyright (c) 2024 Google, LLC
5
5
  #
6
6
  # Permission is hereby granted, free of charge, to any person obtaining a copy
7
7
  # of this software and associated documentation files (the "Software"), to deal
@@ -25,7 +25,7 @@
25
25
  module LookerSDK
26
26
  class Error < StandardError
27
27
 
28
- # Returns the appropriate LookerSDK::Error sublcass based
28
+ # Returns the appropriate LookerSDK::Error subclass based
29
29
  # on status and response message
30
30
  #
31
31
  # @param [Hash] response HTTP response
@@ -76,6 +76,12 @@ module LookerSDK
76
76
  response_message
77
77
  end
78
78
 
79
+ # Looker SDK error objects (e.g. LookerSDK::BadRequest) raise a
80
+ # WebMock::NetConnectNotAllowedError if they are marshal dumped.
81
+ def marshal_dump
82
+ raise TypeError.new("Refusing to marshal")
83
+ end
84
+
79
85
  # Error Doc URL
80
86
  #
81
87
  # @return [String]
@@ -26,6 +26,6 @@ module LookerSDK
26
26
 
27
27
  # Current version
28
28
  # @return [String]
29
- VERSION = "0.1.7"
29
+ VERSION = "0.1.11"
30
30
 
31
31
  end
data/lib/looker-sdk.rb CHANGED
@@ -50,6 +50,7 @@ end
50
50
 
51
51
  #require 'rack'
52
52
  #require 'rack/mock_response'
53
+ require 'ruby2_keywords'
53
54
 
54
55
  require 'looker-sdk/client'
55
56
  require 'looker-sdk/default'
@@ -74,7 +75,7 @@ module LookerSDK
74
75
 
75
76
  private
76
77
 
77
- def method_missing(method_name, *args, &block)
78
+ ruby2_keywords def method_missing(method_name, *args, &block)
78
79
  return super unless client.respond_to?(method_name)
79
80
  client.send(method_name, *args, &block)
80
81
  end
data/test/helper.rb CHANGED
@@ -23,9 +23,7 @@
23
23
  ############################################################################################
24
24
 
25
25
  require 'simplecov'
26
- SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
27
- SimpleCov::Formatter::HTMLFormatter
28
- ]
26
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new SimpleCov::Formatter::HTMLFormatter
29
27
  SimpleCov.start
30
28
 
31
29
  require 'rubygems'
@@ -38,12 +36,20 @@ require 'looker-sdk'
38
36
  require 'minitest/autorun'
39
37
  require 'minitest/spec'
40
38
  require 'minitest/mock'
41
- require 'mocha/mini_test'
39
+ require 'mocha/minitest'
42
40
  require "rack/test"
43
41
  require "rack/request"
44
42
  require "faraday/rack"
45
43
  require "faraday/multipart" if ENV['USE_FARADAY_MULTIPART'] == 'true'
46
44
 
45
+ module Minitest
46
+ class Mock
47
+ def is_a?( _a )
48
+ false
49
+ end
50
+ end
51
+ end
52
+
47
53
  def fixture_path
48
54
  File.expand_path("../fixtures", __FILE__)
49
55
  end