monday_ruby 0.1.0 → 0.2.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.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/.env +1 -0
  3. data/.rubocop.yml +1 -1
  4. data/CHANGELOG.md +11 -0
  5. data/README.md +24 -2
  6. data/docs/README.md +12 -0
  7. data/docs/SUMMARY.md +39 -0
  8. data/docs/client.md +15 -0
  9. data/docs/configuration.md +28 -0
  10. data/docs/getting-started.md +25 -0
  11. data/docs/quick-start.md +269 -0
  12. data/docs/resources/README.md +27 -0
  13. data/docs/resources/account/README.md +9 -0
  14. data/docs/resources/account/accounts.md +82 -0
  15. data/docs/resources/activity-log/README.md +9 -0
  16. data/docs/resources/activity-log/activity_logs.md +95 -0
  17. data/docs/resources/board/README.md +21 -0
  18. data/docs/resources/board/archive_board.md +79 -0
  19. data/docs/resources/board/boards.md +96 -0
  20. data/docs/resources/board/create_board.md +95 -0
  21. data/docs/resources/board/delete_board.md +79 -0
  22. data/docs/resources/board/delete_board_subscribers.md +87 -0
  23. data/docs/resources/board/duplicate_board.md +94 -0
  24. data/docs/resources/board/update_board.md +91 -0
  25. data/docs/resources/board-view/README.md +9 -0
  26. data/docs/resources/board-view/board_views.md +88 -0
  27. data/docs/resources/column/README.md +25 -0
  28. data/docs/resources/column/change_column_metadata.md +70 -0
  29. data/docs/resources/column/change_column_title.md +68 -0
  30. data/docs/resources/column/change_column_value.md +73 -0
  31. data/docs/resources/column/change_multiple_column_value.md +81 -0
  32. data/docs/resources/column/change_simple_column_value.md +69 -0
  33. data/docs/resources/column/column_values.md +115 -0
  34. data/docs/resources/column/columns.md +117 -0
  35. data/docs/resources/column/create_column.md +70 -0
  36. data/docs/resources/column/delete_column.md +58 -0
  37. data/docs/resources/item/README.md +17 -0
  38. data/docs/resources/item/archive_item.md +80 -0
  39. data/docs/resources/item/create_item.md +105 -0
  40. data/docs/resources/item/delete_item.md +80 -0
  41. data/docs/resources/item/duplicate_item.md +87 -0
  42. data/docs/resources/item/items.md +95 -0
  43. data/docs/response.md +21 -0
  44. data/lib/monday/client.rb +9 -8
  45. data/lib/monday/configuration.rb +7 -1
  46. data/lib/monday/version.rb +1 -1
  47. data/lib/monday_ruby.rb +13 -0
  48. data/monday_ruby.gemspec +2 -2
  49. metadata +43 -4
data/docs/response.md ADDED
@@ -0,0 +1,21 @@
1
+ # Response
2
+
3
+ Every request made using the client will return a `Monday::Response` object. This object consists of the following methods:
4
+
5
+ #### `status`
6
+
7
+ This is the returned HTTP status code.
8
+
9
+ #### `body`
10
+
11
+ This is the response body.
12
+
13
+ #### `headers`
14
+
15
+ This is the response header.
16
+
17
+ #### `success?`
18
+
19
+ This returns true or false based on the status code and the response body.
20
+
21
+ Sometimes when the application handles the exceptions, the API will return a `200` status code, but the body will return the error message.
data/lib/monday/client.rb CHANGED
@@ -11,7 +11,7 @@ require_relative "resources"
11
11
  require_relative "util"
12
12
 
13
13
  module Monday
14
- # Client executes requests against the Monday.com API and
14
+ # Client executes requests against the monday.com's API and
15
15
  # allows a user to mutate and retrieve resources.
16
16
  class Client
17
17
  include Resources
@@ -19,19 +19,20 @@ module Monday
19
19
  JSON_CONTENT_TYPE = "application/json"
20
20
  private_constant :JSON_CONTENT_TYPE
21
21
 
22
- Monday::Configuration::CONFIGURATION_FIELDS.each do |config_key|
23
- define_method(config_key) do
24
- @config.public_send(config_key)
25
- end
26
- end
22
+ attr_reader :config
27
23
 
28
24
  def initialize(config_args = {})
29
- @config = Monday::Configuration.new(**config_args)
30
- yield(@config) if block_given?
25
+ @config = config_options(config_args)
31
26
  end
32
27
 
33
28
  private
34
29
 
30
+ def config_options(config_args)
31
+ return Monday.config if config_args.empty?
32
+
33
+ Monday::Configuration.new(**config_args)
34
+ end
35
+
35
36
  def uri
36
37
  URI(@config.host)
37
38
  end
@@ -9,7 +9,7 @@ module Monday
9
9
  # host: defaults to https://api.monday.com/v2
10
10
  class Configuration
11
11
  DEFAULT_HOST = "https://api.monday.com/v2"
12
- private_constant :DEFAULT_HOST
12
+ DEFAULT_TOKEN = nil
13
13
 
14
14
  CONFIGURATION_FIELDS = %i[
15
15
  token
@@ -23,10 +23,16 @@ module Monday
23
23
  raise ArgumentError, "Unknown arguments: #{invalid_keys}" unless invalid_keys.empty?
24
24
 
25
25
  @host = DEFAULT_HOST
26
+ @token = DEFAULT_TOKEN
26
27
 
27
28
  config_args.each do |key, value|
28
29
  public_send("#{key}=", value)
29
30
  end
30
31
  end
32
+
33
+ def reset
34
+ @token = DEFAULT_TOKEN
35
+ @host = DEFAULT_HOST
36
+ end
31
37
  end
32
38
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Monday
4
- VERSION = "0.1.0"
4
+ VERSION = "0.2.0"
5
5
  end
data/lib/monday_ruby.rb CHANGED
@@ -2,3 +2,16 @@
2
2
 
3
3
  require_relative "monday/client"
4
4
  require_relative "monday/version"
5
+
6
+ # Module to configure the library globally
7
+ module Monday
8
+ module_function
9
+
10
+ def configure
11
+ yield config
12
+ end
13
+
14
+ def config
15
+ @config ||= Configuration.new
16
+ end
17
+ end
data/monday_ruby.gemspec CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |spec|
15
15
  spec.description = "A Gem to easily interact with monday.com API using native Ruby"
16
16
  spec.homepage = repository
17
17
  spec.license = "MIT"
18
- spec.required_ruby_version = ">= 2.6.0"
18
+ spec.required_ruby_version = ">= 2.7.0"
19
19
 
20
20
  spec.metadata = {
21
21
  "homepage_uri" => spec.homepage,
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
27
27
  spec.files = Dir.chdir(__dir__) do
28
28
  `git ls-files -z`.split("\x0").reject do |f|
29
29
  (File.expand_path(f) == __FILE__) ||
30
- f.start_with?(*%w[bin/ test/ spec/ features/ .git .circleci appveyor Gemfile])
30
+ f.start_with?(*%w[bin/ test/ spec/ features/ .git Gemfile])
31
31
  end
32
32
  end
33
33
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: monday_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sanif Himani
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-06-28 00:00:00.000000000 Z
11
+ date: 2023-07-04 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A Gem to easily interact with monday.com API using native Ruby
14
14
  email:
@@ -17,6 +17,7 @@ executables: []
17
17
  extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
+ - ".env"
20
21
  - ".rspec"
21
22
  - ".rubocop.yml"
22
23
  - ".vscode/settings.json"
@@ -25,6 +26,44 @@ files:
25
26
  - LICENSE
26
27
  - README.md
27
28
  - Rakefile
29
+ - docs/README.md
30
+ - docs/SUMMARY.md
31
+ - docs/client.md
32
+ - docs/configuration.md
33
+ - docs/getting-started.md
34
+ - docs/quick-start.md
35
+ - docs/resources/README.md
36
+ - docs/resources/account/README.md
37
+ - docs/resources/account/accounts.md
38
+ - docs/resources/activity-log/README.md
39
+ - docs/resources/activity-log/activity_logs.md
40
+ - docs/resources/board-view/README.md
41
+ - docs/resources/board-view/board_views.md
42
+ - docs/resources/board/README.md
43
+ - docs/resources/board/archive_board.md
44
+ - docs/resources/board/boards.md
45
+ - docs/resources/board/create_board.md
46
+ - docs/resources/board/delete_board.md
47
+ - docs/resources/board/delete_board_subscribers.md
48
+ - docs/resources/board/duplicate_board.md
49
+ - docs/resources/board/update_board.md
50
+ - docs/resources/column/README.md
51
+ - docs/resources/column/change_column_metadata.md
52
+ - docs/resources/column/change_column_title.md
53
+ - docs/resources/column/change_column_value.md
54
+ - docs/resources/column/change_multiple_column_value.md
55
+ - docs/resources/column/change_simple_column_value.md
56
+ - docs/resources/column/column_values.md
57
+ - docs/resources/column/columns.md
58
+ - docs/resources/column/create_column.md
59
+ - docs/resources/column/delete_column.md
60
+ - docs/resources/item/README.md
61
+ - docs/resources/item/archive_item.md
62
+ - docs/resources/item/create_item.md
63
+ - docs/resources/item/delete_item.md
64
+ - docs/resources/item/duplicate_item.md
65
+ - docs/resources/item/items.md
66
+ - docs/response.md
28
67
  - lib/monday/client.rb
29
68
  - lib/monday/configuration.rb
30
69
  - lib/monday/request.rb
@@ -46,7 +85,7 @@ licenses:
46
85
  metadata:
47
86
  homepage_uri: https://github.com/sanifhimani/monday_ruby
48
87
  documentation_uri: https://monday-ruby.gitbook.io/docs/
49
- changelog_uri: https://github.com/sanifhimani/monday_ruby/blob/v0.1.0/CHANGELOG.md
88
+ changelog_uri: https://github.com/sanifhimani/monday_ruby/blob/v0.2.0/CHANGELOG.md
50
89
  rubygems_mfa_required: 'true'
51
90
  post_install_message:
52
91
  rdoc_options: []
@@ -56,7 +95,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
56
95
  requirements:
57
96
  - - ">="
58
97
  - !ruby/object:Gem::Version
59
- version: 2.6.0
98
+ version: 2.7.0
60
99
  required_rubygems_version: !ruby/object:Gem::Requirement
61
100
  requirements:
62
101
  - - ">="