heimdall_logbook 0.0.0 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cec0d18fc1070f49efe83100c9b83c1565436e90e30e19cdf06cb4431f564cbb
4
- data.tar.gz: 96dbdc9f7f7e3f4031295836b186086d5f7b0302443bf02efa49cec8ccedd042
3
+ metadata.gz: 198159aab50a6d268f4c2c828caaccc6f67f5d2c92a306359aa7bedb604bdf87
4
+ data.tar.gz: ae73974e2e33df91b9aa0b031ee32b7876ab91825998e479fd38daa7fa168350
5
5
  SHA512:
6
- metadata.gz: b8022b13defadfd8c155d93799877f3305b6b7ee1f602bc8581cf8e00e46444a8ebc15f37f90f68d63372ec0f5a989c048a8fe0cb53c448a7e64471bc38e672a
7
- data.tar.gz: a9c2657e7be98a17fe5277eb93e104b801eff1f9d95c5d0b1f815084f0d6fcb92aa8ace5886627f531025cc533f106968f7ac5bdedc4af50f6209c6c8f72d11f
6
+ metadata.gz: 512e5ea93683995dafe58ba68e04522fb9a2dccb64525bf134cd747cd35a779cda04cee7f73051b18a55f50338c49026958cc099e51db421f1b0c849106e607b
7
+ data.tar.gz: ae32e0dae8654062aa00f883388ede158f6f1a2a502e43f8b701df2c5d1db914638ed20176da92681da3ea952452084435d0374ad8a82c675967601ef41d2d3c
@@ -0,0 +1,5 @@
1
+ # heimdall_logbook
2
+ A gem to log all incoming request and response
3
+
4
+
5
+ https://rubygems.org/gems/heimdall_logbook
@@ -0,0 +1,23 @@
1
+ require "rails/generators/active_record"
2
+
3
+ module HeimdallLogbook
4
+ module Generators
5
+ class InstallGenerator < ::Rails::Generators::Base
6
+ include Rails::Generators::Migration
7
+ source_root File.join(__dir__, "templates")
8
+
9
+ def copy_migration
10
+ migration_template "migration.rb", "db/migrate/create_heimdall_logbook.rb", migration_version: migration_version
11
+ end
12
+
13
+ def self.next_migration_number(path)
14
+ next_migration_number = current_migration_number(path) + 1
15
+ ActiveRecord::Migration.next_migration_number(next_migration_number)
16
+ end
17
+
18
+ def migration_version
19
+ "[#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}]"
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,34 @@
1
+ class <%= migration_class_name %> < ActiveRecord::Migration<%= migration_version %>
2
+ def change
3
+ create_table :heimdall_logbook_request do |t|
4
+ t.string :request_method
5
+ t.string :params
6
+ t.string :ip
7
+ t.string :original_url
8
+ t.string :remote_ip
9
+ t.string :uuid
10
+ t.string :authorization
11
+ t.string :format
12
+ t.string :headers
13
+ t.string :port
14
+ t.string :protocol
15
+ t.string :query_string
16
+ t.string :domain
17
+ t.string :host
18
+ t.datetime :requested_at
19
+ end
20
+
21
+ create_table :heimdall_logbook_response do |t|
22
+ t.string :body
23
+ t.string :response_code
24
+ t.string :headers
25
+ t.string :content_type
26
+ t.string :status
27
+ t.string :location
28
+ t.string :message
29
+ t.string :charset
30
+ t.string :status
31
+ t.datetime :responded_at
32
+ end
33
+ end
34
+ end
@@ -1,5 +1,8 @@
1
- class HeimdallLogbook
2
- def self.hi
3
- puts "Hello world!"
4
- end
5
- end
1
+ require 'active_record'
2
+
3
+ require 'heimdall_logbook/version'
4
+
5
+ require 'heimdall_logbook/request'
6
+ require 'heimdall_logbook/response'
7
+
8
+ require 'heimdall_logbook/logger'
@@ -0,0 +1,33 @@
1
+ module HeimdallLogbook
2
+ def log_request
3
+ data = {requested_at: Time.zone.now}
4
+ request_fields.map{ |f| data[f] = request.send(f) }
5
+ HeimdallLogbook::Request.create(data)
6
+ true
7
+ end
8
+
9
+
10
+ def log_response
11
+ data = {responded_at: Time.zone.now}
12
+ response_fields.map{ |f| data[f] = response.send(f) }
13
+ HeimdallLogbook::Response.create(data)
14
+ true
15
+ end
16
+
17
+ private
18
+
19
+ def request_fields
20
+ [
21
+ :request_method, :ip, :original_url, :remote_ip, :uuid,
22
+ :authorization, :format, :headers, :port, :protocol, :query_string,
23
+ :domain, :host
24
+ ]
25
+ end
26
+
27
+ def response_fields
28
+ [
29
+ :body, :response_code, :headers, :content_type, :status,
30
+ :location, :message, :charset, :status
31
+ ]
32
+ end
33
+ end
@@ -0,0 +1,5 @@
1
+ module HeimdallLogbook
2
+ class Request < ActiveRecord::Base
3
+ self.table_name = 'heimdall_logbook_request'
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module HeimdallLogbook
2
+ class Response < ActiveRecord::Base
3
+ self.table_name = 'heimdall_logbook_response'
4
+ end
5
+ end
@@ -0,0 +1,3 @@
1
+ module HeimdallLogbook
2
+ VERSION = "0.0.1"
3
+ end
metadata CHANGED
@@ -1,23 +1,58 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: heimdall_logbook
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anuja Joshi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-10 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2019-04-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: railties
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '5'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '5'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activerecord
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
13
41
  description: A gem to log all incoming request and response
14
42
  email: anuja.joshi443@gmail.com
15
43
  executables: []
16
44
  extensions: []
17
45
  extra_rdoc_files: []
18
46
  files:
47
+ - README.md
48
+ - lib/generators/heimdall_logbook/install_generator.rb
49
+ - lib/generators/heimdall_logbook/templates/migration.rb.tt
19
50
  - lib/heimdall_logbook.rb
20
- homepage: https://rubygems.org/gems/heimdall_logbook
51
+ - lib/heimdall_logbook/logger.rb
52
+ - lib/heimdall_logbook/request.rb
53
+ - lib/heimdall_logbook/response.rb
54
+ - lib/heimdall_logbook/version.rb
55
+ homepage: https://github.com/anuja-joshi/heimdall_logbook
21
56
  licenses:
22
57
  - MIT
23
58
  metadata: {}