getaround_utils 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c88ce6427305fb0d563bce755e7d54bb11653c61
4
+ data.tar.gz: b12ed543876b0cadf07ed6dfc66582219d3cc86a
5
+ SHA512:
6
+ metadata.gz: 3e5be77802af546682196312eae751ed87ed7fda37955b6832154423efed4c89e78ce81838b7cb2ec93d28aa7820ac1c7e17657c2f1817348f8d2c51fcbb184b
7
+ data.tar.gz: eb3417ce635983ecd0f72c53aafc27cd923c2832f5aab8264c150e3ce78cc32fe9a2fdd651325b963df957c5584076dee4d012f1720a5ebc3b43b51b82f63fac
data/.rubocop.yml ADDED
@@ -0,0 +1,7 @@
1
+ require:
2
+ - rubocop-rspec
3
+
4
+ inherit_gem:
5
+ getaround-rubocop:
6
+ - .rubocop.yml
7
+ - .rubocop-rspec.yml
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,204 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ getaround_utils (0.1.0)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ actioncable (6.0.0)
10
+ actionpack (= 6.0.0)
11
+ nio4r (~> 2.0)
12
+ websocket-driver (>= 0.6.1)
13
+ actionmailbox (6.0.0)
14
+ actionpack (= 6.0.0)
15
+ activejob (= 6.0.0)
16
+ activerecord (= 6.0.0)
17
+ activestorage (= 6.0.0)
18
+ activesupport (= 6.0.0)
19
+ mail (>= 2.7.1)
20
+ actionmailer (6.0.0)
21
+ actionpack (= 6.0.0)
22
+ actionview (= 6.0.0)
23
+ activejob (= 6.0.0)
24
+ mail (~> 2.5, >= 2.5.4)
25
+ rails-dom-testing (~> 2.0)
26
+ actionpack (6.0.0)
27
+ actionview (= 6.0.0)
28
+ activesupport (= 6.0.0)
29
+ rack (~> 2.0)
30
+ rack-test (>= 0.6.3)
31
+ rails-dom-testing (~> 2.0)
32
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
33
+ actiontext (6.0.0)
34
+ actionpack (= 6.0.0)
35
+ activerecord (= 6.0.0)
36
+ activestorage (= 6.0.0)
37
+ activesupport (= 6.0.0)
38
+ nokogiri (>= 1.8.5)
39
+ actionview (6.0.0)
40
+ activesupport (= 6.0.0)
41
+ builder (~> 3.1)
42
+ erubi (~> 1.4)
43
+ rails-dom-testing (~> 2.0)
44
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
45
+ activejob (6.0.0)
46
+ activesupport (= 6.0.0)
47
+ globalid (>= 0.3.6)
48
+ activemodel (6.0.0)
49
+ activesupport (= 6.0.0)
50
+ activerecord (6.0.0)
51
+ activemodel (= 6.0.0)
52
+ activesupport (= 6.0.0)
53
+ activestorage (6.0.0)
54
+ actionpack (= 6.0.0)
55
+ activejob (= 6.0.0)
56
+ activerecord (= 6.0.0)
57
+ marcel (~> 0.3.1)
58
+ activesupport (6.0.0)
59
+ concurrent-ruby (~> 1.0, >= 1.0.2)
60
+ i18n (>= 0.7, < 2)
61
+ minitest (~> 5.1)
62
+ tzinfo (~> 1.1)
63
+ zeitwerk (~> 2.1, >= 2.1.8)
64
+ ast (2.4.0)
65
+ builder (3.2.3)
66
+ coderay (1.1.2)
67
+ concurrent-ruby (1.1.5)
68
+ crass (1.0.5)
69
+ diff-lcs (1.3)
70
+ erubi (1.9.0)
71
+ getaround-rubocop (0.1.0)
72
+ relaxed-rubocop (~> 2.4, >= 2.4.0)
73
+ rubocop (~> 0.75, >= 0.75.0)
74
+ globalid (0.4.2)
75
+ activesupport (>= 4.2.0)
76
+ i18n (1.7.0)
77
+ concurrent-ruby (~> 1.0)
78
+ jaro_winkler (1.5.4)
79
+ lograge (0.11.2)
80
+ actionpack (>= 4)
81
+ activesupport (>= 4)
82
+ railties (>= 4)
83
+ request_store (~> 1.0)
84
+ loofah (2.3.1)
85
+ crass (~> 1.0.2)
86
+ nokogiri (>= 1.5.9)
87
+ mail (2.7.1)
88
+ mini_mime (>= 0.1.1)
89
+ marcel (0.3.3)
90
+ mimemagic (~> 0.3.2)
91
+ method_source (0.9.2)
92
+ mimemagic (0.3.3)
93
+ mini_mime (1.0.2)
94
+ mini_portile2 (2.4.0)
95
+ minitest (5.13.0)
96
+ nio4r (2.5.2)
97
+ nokogiri (1.10.5)
98
+ mini_portile2 (~> 2.4.0)
99
+ parallel (1.18.0)
100
+ parser (2.6.5.0)
101
+ ast (~> 2.4.0)
102
+ pry (0.12.2)
103
+ coderay (~> 1.1.0)
104
+ method_source (~> 0.9.0)
105
+ rack (2.0.7)
106
+ rack-test (1.1.0)
107
+ rack (>= 1.0, < 3)
108
+ rails (6.0.0)
109
+ actioncable (= 6.0.0)
110
+ actionmailbox (= 6.0.0)
111
+ actionmailer (= 6.0.0)
112
+ actionpack (= 6.0.0)
113
+ actiontext (= 6.0.0)
114
+ actionview (= 6.0.0)
115
+ activejob (= 6.0.0)
116
+ activemodel (= 6.0.0)
117
+ activerecord (= 6.0.0)
118
+ activestorage (= 6.0.0)
119
+ activesupport (= 6.0.0)
120
+ bundler (>= 1.3.0)
121
+ railties (= 6.0.0)
122
+ sprockets-rails (>= 2.0.0)
123
+ rails-dom-testing (2.0.3)
124
+ activesupport (>= 4.2.0)
125
+ nokogiri (>= 1.6)
126
+ rails-html-sanitizer (1.3.0)
127
+ loofah (~> 2.3)
128
+ railties (6.0.0)
129
+ actionpack (= 6.0.0)
130
+ activesupport (= 6.0.0)
131
+ method_source
132
+ rake (>= 0.8.7)
133
+ thor (>= 0.20.3, < 2.0)
134
+ rainbow (3.0.0)
135
+ rake (10.5.0)
136
+ relaxed-rubocop (2.4)
137
+ request_store (1.4.1)
138
+ rack (>= 1.4)
139
+ rspec (3.9.0)
140
+ rspec-core (~> 3.9.0)
141
+ rspec-expectations (~> 3.9.0)
142
+ rspec-mocks (~> 3.9.0)
143
+ rspec-core (3.9.0)
144
+ rspec-support (~> 3.9.0)
145
+ rspec-expectations (3.9.0)
146
+ diff-lcs (>= 1.2.0, < 2.0)
147
+ rspec-support (~> 3.9.0)
148
+ rspec-mocks (3.9.0)
149
+ diff-lcs (>= 1.2.0, < 2.0)
150
+ rspec-support (~> 3.9.0)
151
+ rspec-rails (3.9.0)
152
+ actionpack (>= 3.0)
153
+ activesupport (>= 3.0)
154
+ railties (>= 3.0)
155
+ rspec-core (~> 3.9.0)
156
+ rspec-expectations (~> 3.9.0)
157
+ rspec-mocks (~> 3.9.0)
158
+ rspec-support (~> 3.9.0)
159
+ rspec-support (3.9.0)
160
+ rubocop (0.76.0)
161
+ jaro_winkler (~> 1.5.1)
162
+ parallel (~> 1.10)
163
+ parser (>= 2.6)
164
+ rainbow (>= 2.2.2, < 4.0)
165
+ ruby-progressbar (~> 1.7)
166
+ unicode-display_width (>= 1.4.0, < 1.7)
167
+ rubocop-rspec (1.36.0)
168
+ rubocop (>= 0.68.1)
169
+ ruby-progressbar (1.10.1)
170
+ sprockets (4.0.0)
171
+ concurrent-ruby (~> 1.0)
172
+ rack (> 1, < 3)
173
+ sprockets-rails (3.2.1)
174
+ actionpack (>= 4.0)
175
+ activesupport (>= 4.0)
176
+ sprockets (>= 3.0.0)
177
+ thor (0.20.3)
178
+ thread_safe (0.3.6)
179
+ tzinfo (1.2.5)
180
+ thread_safe (~> 0.1)
181
+ unicode-display_width (1.6.0)
182
+ websocket-driver (0.7.1)
183
+ websocket-extensions (>= 0.1.0)
184
+ websocket-extensions (0.1.4)
185
+ zeitwerk (2.2.1)
186
+
187
+ PLATFORMS
188
+ ruby
189
+
190
+ DEPENDENCIES
191
+ bundler (~> 2.0)
192
+ getaround-rubocop (~> 0.1.0, >= 0.1.0)
193
+ getaround_utils!
194
+ lograge (~> 0.11.2)
195
+ pry (~> 0.12.2)
196
+ rails (~> 6.0)
197
+ rake (~> 10.0)
198
+ rspec (~> 3.9, >= 3.9.0)
199
+ rspec-rails (~> 3.9)
200
+ rubocop (~> 0.75, >= 0.75.0)
201
+ rubocop-rspec (~> 1.36, >= 0.36.0)
202
+
203
+ BUNDLED WITH
204
+ 2.0.2
@@ -0,0 +1,27 @@
1
+ require_relative './lib/getaround_utils/version'
2
+
3
+ Gem::Specification.new do |gem|
4
+ gem.name = 'getaround_utils'
5
+ gem.version = GetaroundUtils::VERSION
6
+ gem.summary = 'Backend shared utility classes'
7
+ gem.description = 'Shared base utiliry classes for Getaround Backend Applications.'
8
+ gem.authors = ['Drivy', 'Laurent Humez']
9
+ gem.email = ['oss@drivy.com']
10
+ gem.homepage = 'https://github.com/drivy'
11
+ gem.license = 'MIT'
12
+
13
+ gem.files = Dir.chdir(File.expand_path(__dir__)) do
14
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(spec)/}) }
15
+ end
16
+
17
+ gem.add_development_dependency "bundler", "~> 2.0"
18
+ gem.add_development_dependency 'getaround-rubocop', '~> 0.1.0', '>= 0.1.0'
19
+ gem.add_development_dependency 'lograge', '~> 0.11.2'
20
+ gem.add_development_dependency 'pry', '~> 0.12.2'
21
+ gem.add_development_dependency 'rails', '~> 6.0'
22
+ gem.add_development_dependency "rake", "~> 10.0"
23
+ gem.add_development_dependency 'rspec', '~> 3.9', '>= 3.9.0'
24
+ gem.add_development_dependency 'rspec-rails', '~> 3.9'
25
+ gem.add_development_dependency 'rubocop', '~> 0.75', '>= 0.75.0'
26
+ gem.add_development_dependency 'rubocop-rspec', '~> 1.36', '>= 0.36.0'
27
+ end
@@ -0,0 +1,40 @@
1
+ module GetaroundUtils; end
2
+ module GetaroundUtils::LogFormatters; end
3
+
4
+ class GetaroundUtils::LogFormatters::DeepKeyValue
5
+ def call(data)
6
+ case data
7
+ when Array
8
+ flattify(data).map { |key, value| "#{key}=#{value}" }.join(' ')
9
+ when Hash
10
+ flattify(data).map { |key, value| "#{key}=#{value}" }.join(' ')
11
+ when Numeric
12
+ data.to_s
13
+ when String
14
+ data =~ /^".*"$/ ? data : data.inspect
15
+ else
16
+ data.to_s.inspect
17
+ end
18
+ end
19
+
20
+ # https://stackoverflow.com/questions/48836464/how-to-flatten-a-hash-making-each-key-a-unique-value
21
+ def flattify(value, result = {}, path = [])
22
+ case value
23
+ when Array
24
+ value.each.with_index(0) do |v, i|
25
+ flattify(v, result, path + [i])
26
+ end
27
+ when Hash
28
+ value.each do |k, v|
29
+ flattify(v, result, path + [k])
30
+ end
31
+ when Numeric
32
+ result[path.join(".")] = value.to_s
33
+ when String
34
+ result[path.join(".")] = value =~ /^".*"$/ ? value : value.inspect
35
+ else
36
+ result[path.join(".")] = value.to_s.inspect
37
+ end
38
+ result
39
+ end
40
+ end
@@ -0,0 +1,3 @@
1
+ module GetaroundUtils::LogFormatters
2
+ autoload :DeepKeyValue, 'getaround_utils/log_formatters/deep_key_value'
3
+ end
@@ -0,0 +1,32 @@
1
+ require 'rails/railtie'
2
+ require 'getaround_utils/log_formatters/deep_key_value'
3
+ require 'lograge'
4
+
5
+ module GetaroundUtils; end
6
+ module GetaroundUtils::Railties; end
7
+
8
+ class GetaroundUtils::Railties::Lograge < Rails::Railtie
9
+ module LogrageActionController
10
+ def append_info_to_payload(payload)
11
+ super
12
+ payload[:host] = request.host
13
+ payload[:remote_ip] = request.remote_ip
14
+ payload[:request_id] = request.uuid
15
+ payload[:user_agent] = request.user_agent
16
+ payload[:referer] = request.referer
17
+ payload[:controller_action] = "#{params[:controller]}##{params[:action]}" if params
18
+ payload[:session_id] = session&.id
19
+ payload[:user_id] = current_user&.id if defined?(current_user)
20
+ end
21
+ end
22
+
23
+ initializer 'getaround_utils.action_controller' do
24
+ ActionController::Base.prepend LogrageActionController
25
+ end
26
+
27
+ config.lograge.enabled = true
28
+ config.lograge.formatter = GetaroundUtils::LogFormatters::DeepKeyValue.new
29
+ config.lograge.custom_options = lambda do |event|
30
+ event.payload.except(:headers).compact
31
+ end
32
+ end
@@ -0,0 +1,5 @@
1
+ # module GetaroundUtils
2
+ # module Railties
3
+ # autoload :Lograge, 'getaround_utils/railsties/lograge'
4
+ # end
5
+ # end
@@ -0,0 +1,3 @@
1
+ module GetaroundUtils
2
+ VERSION = '0.1.0'
3
+ end
@@ -0,0 +1,5 @@
1
+ require 'getaround_utils/version'
2
+
3
+ module GetaroundUtils
4
+ autoload :LogFormatters, 'getaround_utils/log_formatters'
5
+ end
metadata ADDED
@@ -0,0 +1,219 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: getaround_utils
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Drivy
8
+ - Laurent Humez
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2019-11-05 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '2.0'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '2.0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: getaround-rubocop
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: 0.1.0
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: 0.1.0
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - "~>"
43
+ - !ruby/object:Gem::Version
44
+ version: 0.1.0
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 0.1.0
48
+ - !ruby/object:Gem::Dependency
49
+ name: lograge
50
+ requirement: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.11.2
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.11.2
62
+ - !ruby/object:Gem::Dependency
63
+ name: pry
64
+ requirement: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.12.2
69
+ type: :development
70
+ prerelease: false
71
+ version_requirements: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.12.2
76
+ - !ruby/object:Gem::Dependency
77
+ name: rails
78
+ requirement: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '6.0'
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '6.0'
90
+ - !ruby/object:Gem::Dependency
91
+ name: rake
92
+ requirement: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '10.0'
97
+ type: :development
98
+ prerelease: false
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '10.0'
104
+ - !ruby/object:Gem::Dependency
105
+ name: rspec
106
+ requirement: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '3.9'
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: 3.9.0
114
+ type: :development
115
+ prerelease: false
116
+ version_requirements: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - "~>"
119
+ - !ruby/object:Gem::Version
120
+ version: '3.9'
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: 3.9.0
124
+ - !ruby/object:Gem::Dependency
125
+ name: rspec-rails
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '3.9'
131
+ type: :development
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '3.9'
138
+ - !ruby/object:Gem::Dependency
139
+ name: rubocop
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '0.75'
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: 0.75.0
148
+ type: :development
149
+ prerelease: false
150
+ version_requirements: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - "~>"
153
+ - !ruby/object:Gem::Version
154
+ version: '0.75'
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ version: 0.75.0
158
+ - !ruby/object:Gem::Dependency
159
+ name: rubocop-rspec
160
+ requirement: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - "~>"
163
+ - !ruby/object:Gem::Version
164
+ version: '1.36'
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: 0.36.0
168
+ type: :development
169
+ prerelease: false
170
+ version_requirements: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - "~>"
173
+ - !ruby/object:Gem::Version
174
+ version: '1.36'
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ version: 0.36.0
178
+ description: Shared base utiliry classes for Getaround Backend Applications.
179
+ email:
180
+ - oss@drivy.com
181
+ executables: []
182
+ extensions: []
183
+ extra_rdoc_files: []
184
+ files:
185
+ - ".rubocop.yml"
186
+ - Gemfile
187
+ - Gemfile.lock
188
+ - getaround_utils.gemspec
189
+ - lib/getaround_utils.rb
190
+ - lib/getaround_utils/log_formatters.rb
191
+ - lib/getaround_utils/log_formatters/deep_key_value.rb
192
+ - lib/getaround_utils/railties.rb
193
+ - lib/getaround_utils/railties/lograge.rb
194
+ - lib/getaround_utils/version.rb
195
+ homepage: https://github.com/drivy
196
+ licenses:
197
+ - MIT
198
+ metadata: {}
199
+ post_install_message:
200
+ rdoc_options: []
201
+ require_paths:
202
+ - lib
203
+ required_ruby_version: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
208
+ required_rubygems_version: !ruby/object:Gem::Requirement
209
+ requirements:
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: '0'
213
+ requirements: []
214
+ rubyforge_project:
215
+ rubygems_version: 2.5.2.3
216
+ signing_key:
217
+ specification_version: 4
218
+ summary: Backend shared utility classes
219
+ test_files: []