camper 0.0.5 → 0.0.10

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.
@@ -63,11 +63,9 @@ module Camper
63
63
  @data.key?(method_name.to_s) ? @data[method_name.to_s] : super
64
64
  end
65
65
 
66
- # rubocop:disable Style/OptionalBooleanParameter
67
66
  def respond_to_missing?(method_name, include_private = false)
68
67
  @hash.keys.map(&:to_sym).include?(method_name.to_sym) || super
69
68
  end
70
- # rubocop:enable Style/OptionalBooleanParameter
71
69
 
72
70
  def self.detect_type(url)
73
71
  case url
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Camper
4
+ # Defines methods related to url operations.
5
+ module UrlUtils
6
+ def self.basecamp_url?(url)
7
+ return false if url.nil? || !url.is_a?(String) || url == ''
8
+
9
+ transformed_url = UrlUtils.transform(url)
10
+
11
+ transformed_url.match?(%r{#{Configuration.base_api_endpoint}/\d+/.*})
12
+ end
13
+
14
+ # Utility method for transforming Basecamp Web URLs into API URIs
15
+ # e.g 'https://3.basecamp.com/1/buckets/2/todos/3' will be
16
+ # converted into 'https://3.basecampapi.com/1/buckets/2/todos/3.json'
17
+ #
18
+ # @param url [String] url to test
19
+ # @return [String]
20
+ def self.transform(url)
21
+ api_url = url.gsub('3.basecamp.com', '3.basecampapi.com')
22
+ api_url.gsub!('.json', '')
23
+ "#{api_url}.json"
24
+ end
25
+ end
26
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Camper
4
- VERSION = '0.0.5'
4
+ VERSION = '0.0.10'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: camper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - renehernandez
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-09-22 00:00:00.000000000 Z
11
+ date: 2020-10-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.14'
41
+ - !ruby/object:Gem::Dependency
42
+ name: concurrent-ruby
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.1'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.1'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rake
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +80,20 @@ dependencies:
66
80
  - - "~>"
67
81
  - !ruby/object:Gem::Version
68
82
  version: '3.9'
83
+ - !ruby/object:Gem::Dependency
84
+ name: yard
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.9'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.9'
69
97
  description:
70
98
  email:
71
99
  executables: []
@@ -82,6 +110,7 @@ files:
82
110
  - ".rubocop.yml"
83
111
  - ".rubocop_todo.yml"
84
112
  - ".ruby-version"
113
+ - ".yardopts"
85
114
  - CHANGELOG.md
86
115
  - CONTRIBUTING.md
87
116
  - Gemfile
@@ -93,19 +122,26 @@ files:
93
122
  - bin/setup
94
123
  - camper.gemspec
95
124
  - examples/comments.rb
125
+ - examples/create_and_complete_todo.rb
96
126
  - examples/messages.rb
97
127
  - examples/oauth.rb
98
128
  - examples/obtain_acces_token.rb
129
+ - examples/people.rb
130
+ - examples/projects.rb
131
+ - examples/todolists.rb
99
132
  - examples/todos.rb
100
133
  - lib/camper.rb
101
- - lib/camper/api/comment.rb
102
- - lib/camper/api/message.rb
103
- - lib/camper/api/project.rb
134
+ - lib/camper/api/comments.rb
135
+ - lib/camper/api/messages.rb
136
+ - lib/camper/api/people.rb
137
+ - lib/camper/api/projects.rb
104
138
  - lib/camper/api/resource.rb
105
- - lib/camper/api/todo.rb
139
+ - lib/camper/api/todolists.rb
140
+ - lib/camper/api/todos.rb
106
141
  - lib/camper/authorization.rb
107
142
  - lib/camper/client.rb
108
143
  - lib/camper/configuration.rb
144
+ - lib/camper/core_extensions/object.rb
109
145
  - lib/camper/error.rb
110
146
  - lib/camper/logging.rb
111
147
  - lib/camper/paginated_response.rb
@@ -113,6 +149,7 @@ files:
113
149
  - lib/camper/request.rb
114
150
  - lib/camper/resource.rb
115
151
  - lib/camper/resources/project.rb
152
+ - lib/camper/url_utils.rb
116
153
  - lib/camper/version.rb
117
154
  homepage: https://github.com/renehernandez/camper
118
155
  licenses:
@@ -136,7 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
173
  - !ruby/object:Gem::Version
137
174
  version: '0'
138
175
  requirements: []
139
- rubygems_version: 3.1.2
176
+ rubygems_version: 3.1.4
140
177
  signing_key:
141
178
  specification_version: 4
142
179
  summary: Ruby client for Basecamp 3 API
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Camper::Client
4
- module ProjectAPI
5
-
6
- def projects(options = {})
7
- get("/projects", options)
8
- end
9
-
10
- def message_board(project)
11
- board = project.message_board
12
- get(board.url, override_path: true)
13
- end
14
-
15
- def todoset(project)
16
- todoset = project.todoset
17
- get(todoset.url, override_path: true)
18
- end
19
- end
20
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Camper::Client
4
- module TodoAPI
5
-
6
- def todolists(todoset)
7
- get(todoset.todolists_url, override_path: true)
8
- end
9
-
10
- def todos(todolist, options={})
11
- get(todolist.todos_url, options.merge(override_path: true))
12
- end
13
- end
14
- end