getaround_utils 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: []