readme-metrics 2.0.1 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +72 -0
  3. data/Gemfile +9 -9
  4. data/Gemfile.lock +28 -34
  5. data/LICENSE +1 -1
  6. data/Makefile +20 -0
  7. data/README.md +21 -102
  8. data/Rakefile +2 -2
  9. data/bin/console +3 -3
  10. data/examples/metrics-rails/.gitattributes +7 -0
  11. data/examples/metrics-rails/.gitignore +20 -0
  12. data/examples/metrics-rails/.ruby-version +1 -0
  13. data/examples/metrics-rails/Gemfile +31 -0
  14. data/examples/metrics-rails/Gemfile.lock +189 -0
  15. data/examples/metrics-rails/README.md +38 -0
  16. data/examples/metrics-rails/Rakefile +6 -0
  17. data/examples/metrics-rails/app/controllers/application_controller.rb +2 -0
  18. data/examples/metrics-rails/app/controllers/metrics_controller.rb +34 -0
  19. data/examples/metrics-rails/app/models/application_record.rb +3 -0
  20. data/examples/metrics-rails/bin/bundle +116 -0
  21. data/examples/metrics-rails/bin/rails +4 -0
  22. data/examples/metrics-rails/bin/rake +4 -0
  23. data/examples/metrics-rails/bin/setup +33 -0
  24. data/examples/metrics-rails/config/application.rb +52 -0
  25. data/examples/metrics-rails/config/boot.rb +3 -0
  26. data/examples/metrics-rails/config/credentials.yml.enc +1 -0
  27. data/examples/metrics-rails/config/database.yml +25 -0
  28. data/examples/metrics-rails/config/environment.rb +5 -0
  29. data/examples/metrics-rails/config/environments/development.rb +56 -0
  30. data/examples/metrics-rails/config/environments/production.rb +68 -0
  31. data/examples/metrics-rails/config/environments/test.rb +50 -0
  32. data/examples/metrics-rails/config/initializers/cors.rb +16 -0
  33. data/examples/metrics-rails/config/initializers/filter_parameter_logging.rb +8 -0
  34. data/examples/metrics-rails/config/initializers/inflections.rb +16 -0
  35. data/examples/metrics-rails/config/locales/en.yml +33 -0
  36. data/examples/metrics-rails/config/puma.rb +43 -0
  37. data/examples/metrics-rails/config/routes.rb +5 -0
  38. data/examples/metrics-rails/config.ru +6 -0
  39. data/examples/metrics-rails/db/seeds.rb +7 -0
  40. data/examples/metrics-rails/public/robots.txt +1 -0
  41. data/lib/readme/content_type_helper.rb +6 -6
  42. data/lib/readme/errors.rb +7 -5
  43. data/lib/readme/filter.rb +2 -2
  44. data/lib/readme/har/collection.rb +3 -1
  45. data/lib/readme/har/request_serializer.rb +14 -14
  46. data/lib/readme/har/response_serializer.rb +3 -3
  47. data/lib/readme/har/serializer.rb +12 -10
  48. data/lib/readme/http_request.rb +18 -9
  49. data/lib/readme/http_response.rb +7 -7
  50. data/lib/readme/metrics/version.rb +3 -1
  51. data/lib/readme/metrics.rb +33 -42
  52. data/lib/readme/payload.rb +14 -6
  53. data/lib/readme/request_queue.rb +4 -4
  54. data/lib/readme/webhook.rb +42 -0
  55. data/readme-metrics.gemspec +14 -15
  56. metadata +38 -33
  57. data/SECURITY.md +0 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8f8fe458fadd08b945bcd32ba4d64a4ba2ba6a609dde94f3a501c50bc505967d
4
- data.tar.gz: bfa8ff8c37330c3487d8572e2d9ec207147780334295810dc3d0aecfe529e951
3
+ metadata.gz: 7e56a6d3e2f6345dcc6b17a00b3de12223b5982bbf2ed1d88c78e7bc6155a4a1
4
+ data.tar.gz: 40223680001e31af74173f227cc0b56cd74ef5c0c81437328d2506a303482d2b
5
5
  SHA512:
6
- metadata.gz: 0b849b923ddafe6073b039ebedd9387b1f17fb93e990c3ffa7bcd8c407b5349a387001a6f46684fe7202d955826c705892d46dadc8da20db503546cf2a0d7e83
7
- data.tar.gz: c728319d845cb1ae8d368c0f995a71f0f1451ad03a8f94064aaa782b4d6cc094cf2269c46c0e5c2d86dbde5ea3527edab4371b4e617df5ad24599558bb29fd3c
6
+ metadata.gz: afd8efd488128281a9d3e5c952b17a678e499e145aa6a448fdbe05a8b748bdcd36e2d01ff83195362931fd8158d884a8804b72e8f9d863237a729e632acab611
7
+ data.tar.gz: ebd3eb9482710916a7d969d6315147ab36526d53de86f12abc49892325d7405de2074d2744a89cb3160ea9b37050117335b1fc834900d74470d2301273865fda
data/.rubocop.yml ADDED
@@ -0,0 +1,72 @@
1
+ require:
2
+ - rubocop-performance
3
+ - rubocop-rspec
4
+
5
+ AllCops:
6
+ NewCops: enable
7
+ TargetRubyVersion: 2.7
8
+
9
+ # https://docs.rubocop.org/rubocop/cops_layout.html
10
+ Layout/LineLength:
11
+ Max: 150
12
+ Exclude:
13
+ - examples/metrics-rails/bin/*
14
+
15
+ # https://docs.rubocop.org/rubocop/cops_metrics.html
16
+ Metrics/AbcSize:
17
+ Enabled: false
18
+ Metrics/CyclomaticComplexity:
19
+ Max: 20
20
+ Metrics/BlockLength:
21
+ Exclude:
22
+ - spec/readme/*.rb
23
+ - spec/readme/har/*.rb
24
+ Metrics/ClassLength:
25
+ Enabled: false
26
+ Metrics/MethodLength:
27
+ Enabled: false
28
+ Metrics/PerceivedComplexity:
29
+ Max: 20
30
+
31
+ # https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec
32
+ RSpec/AnyInstance:
33
+ Enabled: false
34
+ RSpec/ExampleLength:
35
+ Enabled: false
36
+ RSpec/LeakyConstantDeclaration:
37
+ Exclude:
38
+ - spec/readme/*.rb
39
+ RSpec/MultipleExpectations:
40
+ Enabled: false
41
+ RSpec/VerifiedDoubles:
42
+ Enabled: false
43
+
44
+ # https://docs.rubocop.org/rubocop/cops_style.html
45
+ Style/BlockDelimiters:
46
+ Exclude:
47
+ - spec/**/*
48
+ Style/ClassVars:
49
+ Exclude:
50
+ - 'lib/readme/metrics.rb'
51
+ Style/Documentation:
52
+ Enabled: false
53
+ Style/ExpandPathArguments:
54
+ Enabled: false
55
+ Style/FrozenStringLiteralComment:
56
+ Enabled: false
57
+ Style/GuardClause:
58
+ Exclude:
59
+ - 'lib/readme/filter.rb'
60
+ - 'lib/readme/metrics.rb'
61
+ Style/IfUnlessModifier:
62
+ Exclude:
63
+ - 'lib/readme/metrics.rb'
64
+ Style/RescueStandardError:
65
+ # We should ideally have this rule enabled but I'm paranoid that we don't have full documentation
66
+ # on all types of errors that might be thrown in the couple places this rule is being suppressed
67
+ # and by only catching `StandardError` we'll miss out on something else and potentially take down
68
+ # someones integration.
69
+ Enabled: false
70
+
71
+ Gemspec/RequireMFA:
72
+ Enabled: false
data/Gemfile CHANGED
@@ -1,15 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- source "https://rubygems.org"
3
+ source 'https://rubygems.org'
4
4
 
5
5
  # Specify your gem's dependencies in readme-metrics.gemspec
6
6
  gemspec
7
7
 
8
- gem "json-schema"
9
- gem "rack-test"
10
- gem "rake", "~> 12.0"
11
- gem "rspec", "~> 3.0"
12
- gem "standard"
13
- gem "webmock"
14
- gem "os"
15
- gem "uuid"
8
+ gem 'json-schema'
9
+ gem 'rack-test'
10
+ gem 'rake', '~> 12.0'
11
+ gem 'rspec', '~> 3.0'
12
+ gem 'rubocop', require: false
13
+ gem 'rubocop-performance', require: false
14
+ gem 'rubocop-rspec', require: false
15
+ gem 'webmock'
data/Gemfile.lock CHANGED
@@ -1,17 +1,15 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- readme-metrics (2.0.1)
4
+ readme-metrics (2.1.0)
5
5
  httparty (~> 0.18)
6
- os (~> 1.1.4)
7
- uuid (~> 2.3.8)
8
6
 
9
7
  GEM
10
8
  remote: https://rubygems.org/
11
9
  specs:
12
10
  addressable (2.8.0)
13
11
  public_suffix (>= 2.0.2, < 5.0)
14
- ast (2.4.1)
12
+ ast (2.4.2)
15
13
  crack (0.4.3)
16
14
  safe_yaml (~> 1.0.0)
17
15
  diff-lcs (1.4.4)
@@ -19,26 +17,24 @@ GEM
19
17
  httparty (0.20.0)
20
18
  mime-types (~> 3.0)
21
19
  multi_xml (>= 0.5.2)
20
+ json (2.6.2)
22
21
  json-schema (2.8.1)
23
22
  addressable (>= 2.4)
24
- macaddr (1.7.2)
25
- systemu (~> 2.6.5)
26
23
  mime-types (3.4.1)
27
24
  mime-types-data (~> 3.2015)
28
25
  mime-types-data (3.2022.0105)
29
26
  multi_xml (0.6.0)
30
- os (1.1.4)
31
- parallel (1.19.2)
32
- parser (2.7.1.4)
27
+ parallel (1.22.1)
28
+ parser (3.1.2.1)
33
29
  ast (~> 2.4.1)
34
30
  public_suffix (4.0.6)
35
- rack (2.2.3)
31
+ rack (2.2.3.1)
36
32
  rack-test (1.1.0)
37
33
  rack (>= 1.0, < 3)
38
- rainbow (3.0.0)
34
+ rainbow (3.1.1)
39
35
  rake (12.3.3)
40
- regexp_parser (1.7.1)
41
- rexml (3.2.4)
36
+ regexp_parser (2.5.0)
37
+ rexml (3.2.5)
42
38
  rspec (3.9.0)
43
39
  rspec-core (~> 3.9.0)
44
40
  rspec-expectations (~> 3.9.0)
@@ -52,28 +48,26 @@ GEM
52
48
  diff-lcs (>= 1.2.0, < 2.0)
53
49
  rspec-support (~> 3.9.0)
54
50
  rspec-support (3.9.3)
55
- rubocop (0.85.1)
51
+ rubocop (1.36.0)
52
+ json (~> 2.3)
56
53
  parallel (~> 1.10)
57
- parser (>= 2.7.0.1)
54
+ parser (>= 3.1.2.1)
58
55
  rainbow (>= 2.2.2, < 4.0)
59
- regexp_parser (>= 1.7)
60
- rexml
61
- rubocop-ast (>= 0.0.3)
56
+ regexp_parser (>= 1.8, < 3.0)
57
+ rexml (>= 3.2.5, < 4.0)
58
+ rubocop-ast (>= 1.20.1, < 2.0)
62
59
  ruby-progressbar (~> 1.7)
63
- unicode-display_width (>= 1.4.0, < 2.0)
64
- rubocop-ast (0.3.0)
65
- parser (>= 2.7.1.4)
66
- rubocop-performance (1.6.1)
67
- rubocop (>= 0.71.0)
68
- ruby-progressbar (1.10.1)
60
+ unicode-display_width (>= 1.4.0, < 3.0)
61
+ rubocop-ast (1.21.0)
62
+ parser (>= 3.1.1.0)
63
+ rubocop-performance (1.14.3)
64
+ rubocop (>= 1.7.0, < 2.0)
65
+ rubocop-ast (>= 0.4.0)
66
+ rubocop-rspec (2.12.1)
67
+ rubocop (~> 1.31)
68
+ ruby-progressbar (1.11.0)
69
69
  safe_yaml (1.0.5)
70
- standard (0.4.7)
71
- rubocop (~> 0.85.0)
72
- rubocop-performance (~> 1.6.0)
73
- systemu (2.6.5)
74
- unicode-display_width (1.7.0)
75
- uuid (2.3.9)
76
- macaddr (~> 1.0)
70
+ unicode-display_width (2.2.0)
77
71
  webmock (3.8.3)
78
72
  addressable (>= 2.3.6)
79
73
  crack (>= 0.3.2)
@@ -84,13 +78,13 @@ PLATFORMS
84
78
 
85
79
  DEPENDENCIES
86
80
  json-schema
87
- os
88
81
  rack-test
89
82
  rake (~> 12.0)
90
83
  readme-metrics!
91
84
  rspec (~> 3.0)
92
- standard
93
- uuid
85
+ rubocop
86
+ rubocop-performance
87
+ rubocop-rspec
94
88
  webmock
95
89
 
96
90
  BUNDLED WITH
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2020, ReadMe
1
+ Copyright (c) 2022, ReadMe
2
2
 
3
3
  Permission to use, copy, modify, and/or distribute this software for any purpose
4
4
  with or without fee is hereby granted, provided that the above copyright notice
data/Makefile ADDED
@@ -0,0 +1,20 @@
1
+ .PHONY: help test
2
+ API_KEY ?= $(shell bash -c 'read -p "ReadMe API Key: " api_key; echo $$api_key')
3
+
4
+ install: ## Install all dependencies
5
+ bundle
6
+
7
+ lint: ## Run code standard checks
8
+ bundle exec rubocop
9
+
10
+ lint-fix: ## Attempt to automatically fix any code standard violations
11
+ bundle exec rubocop --autocorrect
12
+
13
+ serve-metrics-rails: ## Start the local Express server to test Metrics
14
+ README_API_KEY=$(API_KEY) ./examples/metrics-rails/bin/rails server
15
+
16
+ test: ## Run unit tests
17
+ rake spec
18
+
19
+ help: ## Display this help screen
20
+ @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
data/README.md CHANGED
@@ -1,111 +1,30 @@
1
- # readme-metrics
1
+ # ReadMe Metrics
2
2
 
3
- Track your API metrics within ReadMe.
3
+ <p align="center">
4
+ <img src="https://user-images.githubusercontent.com/33762/182927634-2aebeb46-c215-4ac3-9e98-61f931e33583.png" />
5
+ </p>
4
6
 
5
- [![RubyGems](https://img.shields.io/gem/v/readme-metrics)](https://rubygems.org/gems/readme-metrics)
6
- [![Build](https://github.com/readmeio/metrics-sdks/workflows/ruby/badge.svg)](https://github.com/readmeio/metrics-sdks)
7
+ <p align="center">
8
+ Track usage of your API and troubleshoot issues faster.
9
+ </p>
7
10
 
8
- [![](https://d3vv6lp55qjaqc.cloudfront.net/items/1M3C3j0I0s0j3T362344/Untitled-2.png)](https://readme.io)
11
+ <p align="center">
12
+ <a href="https://rubygems.org/gems/readme-metrics"><img src="https://img.shields.io/gem/v/readme-metrics.svg?style=for-the-badge" alt="Latest release"></a>
13
+ <a href="https://github.com/readmeio/metrics-sdks"><img src="https://img.shields.io/github/workflow/status/readmeio/metrics-sdks/ruby.svg?style=for-the-badge" alt="Build status"></a>
14
+ </p>
9
15
 
10
- ## Installation
16
+ With [ReadMe's Metrics API](https://readme.com/metrics) your team can get deep insights into your API's usage. If you're a developer, it takes a few small steps to send your API logs to [ReadMe](http://readme.com). Here's an overview of how the integration works:
11
17
 
12
- Add it to your Gemfile
18
+ - You add the ReadMe middleware to your Rails application.
19
+ - The middleware sends to ReadMe the request and response objects that your Express server generates each time a user makes a request to your API. The entire objects are sent, unless you allow or deny keys.
20
+ - ReadMe extracts information to display in Metrics, such as which endpoint is being called, response code, and error messages. It also identifies the customer who called your API, using whichever keys in the middleware you call out as containing relevant customer info.
13
21
 
14
- `gem "readme-metrics"`
15
-
16
- ## Usage
17
-
18
- `Readme::Metrics` is a Rack middleware and is compatible with all Rack-based
19
- apps, including Rails.
20
-
21
- When configuring the middleware, you must provide a block to tell the
22
- middleware how to get values for the current user. These may be values taken
23
- from the environment, or you may hardcode them.
24
-
25
- If you're using Warden-based authentication like Devise, you may fetch the
26
- current_user for a given request from the environment.
27
-
28
- ### SDK Options
29
-
30
- Option | Type | Description
31
- -----------------|------------------|---------
32
- `reject_params` | Array of strings | If you have sensitive data you'd like to prevent from being sent to the Metrics API via headers, query params or payload bodies, you can specify a list of keys to filter via the `reject_params` option. NOTE: cannot be used in conjunction with `allow_only`. You may only specify either `reject_params` or `allow_only` keys, not both.
33
- `allow_only` | Array of strings | The inverse of `reject_params`. If included all parameters but those in this list will be redacted. NOTE: cannot be used in conjunction with `reject_params`. You may only specify either `reject_params` or `allow_only` keys, not both.
34
- `development` | bool | Defaults to `false`. When `true`, the log will be marked as a development log. This is great for separating staging or test data from data coming from customers.
35
- `buffer_length` | number | Defaults to `1`. This value should be a number representing the amount of requests to group up before sending them over the network. Increasing this value may increase performance by batching, but will also delay the time until logs show up in the dashboard given the buffer size needs to be reached in order for the logs to be sent.
36
-
37
- ### Payload Data
38
-
39
- Option | Required? | Type | Description
40
- --------------------|-----------|------------------|----------
41
- `api_key` | yes | string | API Key used to make the request. Note that this is different from the `readmeAPIKey` described above in the options data. This should be a value from your API that is unique to each of your users.
42
- `label` | no | string | This will be the user's display name in the API Metrics Dashboard, since it's much easier to remember a name than an API key.
43
- `email` | no | string | Email of the user that is making the call.
44
- `log_id` | no | string | A UUIDv4 identifier. If not provided this will be automatically generated for you. Providing your own `log_id` is useful if you want to know the URL of the log in advance, i.e. `{your_base_url}/logs/{your_log_id}`.
45
- `ignore` | no | bool | A flag that when set to `true` will suppress sending the log.
46
-
47
- ### Rails
48
-
49
- ```ruby
50
- # config/environments/development.rb or config/environments/production.rb
51
- require "readme/metrics"
52
-
53
- sdk_options = {
54
- api_key: "<<apiKey>>",
55
- development: false,
56
- reject_params: ["not_included", "dont_send"],
57
- buffer_length: 5,
58
- }
59
-
60
- config.middleware.use Readme::Metrics, sdk_options do |env|
61
- current_user = env['warden'].authenticate
62
-
63
- payload_data = current_user.present? ? {
64
- api_key: current_user.api_key, # Not the same as the ReadMe API Key
65
- label: current_user.name,
66
- email: current_user.email
67
- } : {
68
- api_key: "guest",
69
- label: "Guest User",
70
- email: "guest@example.com"
71
- }
72
-
73
- payload_data
74
- end
22
+ ```bash
23
+ gem "readme-metrics"
75
24
  ```
76
25
 
77
- ### Rack
78
-
79
- ```ruby
80
- # config.ru
81
- sdk_options = {
82
- api_key: "<<apiKey>>",
83
- development: false,
84
- reject_params: ["not_included", "dont_send"]
85
- }
86
-
87
- use Readme::Metrics, sdk_options do |env|
88
- {
89
- api_key: "owlbert_api_key"
90
- label: "Owlbert",
91
- email: "owlbert@example.com",
92
- log_id: SecureRandom.uuid
93
- }
94
- end
95
-
96
- run YourApp.new
97
- ```
98
-
99
- ### Sample Applications
100
-
101
- - [Rails](https://github.com/readmeio/metrics-sdk-rails-sample)
102
- - [Rack](https://github.com/readmeio/metrics-sdk-racks-sample)
103
- - [Sinatra](https://github.com/readmeio/metrics-sdk-sinatra-example)
104
-
105
- ### Contributing
106
-
107
- Ensure you are running the version of ruby specified in the `Gemfile.lock`; use `rvm` to easy manage ruby versions. Run `bundle` to install dependencies, `rake` or `rspec` to ensure tests pass, and `bundle exec standardrb` to lint the code.
108
-
109
- ## License
26
+ **For more information on setup, check out our [integration documentation](https://docs.readme.com/docs/ruby-api-metrics-set-up).**
110
27
 
111
- [View our license here](https://github.com/readmeio/metrics-sdks/tree/main/packages/ruby/LICENSE)
28
+ > 🚧 Any Issues?
29
+ >
30
+ > Integrations can be tricky! [Contact support](https://docs.readme.com/guides/docs/contact-support) if you have any questions/issues.
data/Rakefile CHANGED
@@ -1,5 +1,5 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
data/bin/console CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "bundler/setup"
4
- require "readme/metrics"
3
+ require 'bundler/setup'
4
+ require 'readme/metrics'
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
@@ -10,5 +10,5 @@ require "readme/metrics"
10
10
  # require "pry"
11
11
  # Pry.start
12
12
 
13
- require "irb"
13
+ require 'irb'
14
14
  IRB.start(__FILE__)
@@ -0,0 +1,7 @@
1
+ # See https://git-scm.com/docs/gitattributes for more about git attribute files.
2
+
3
+ # Mark the database schema as having been generated.
4
+ db/schema.rb linguist-generated
5
+
6
+ # Mark any vendored files as having been vendored.
7
+ vendor/* linguist-vendored
@@ -0,0 +1,20 @@
1
+ # See https://help.github.com/articles/ignoring-files for more about ignoring files.
2
+ #
3
+ # If you find yourself ignoring temporary files generated by your text editor
4
+ # or operating system, you probably want to add a global ignore instead:
5
+ # git config --global core.excludesfile '~/.gitignore_global'
6
+
7
+ # Ignore bundler config.
8
+ /.bundle
9
+
10
+ # Ignore the default SQLite database.
11
+ /db/*.sqlite3
12
+ /db/*.sqlite3-*
13
+
14
+ # Ignore all logfiles and tempfiles.
15
+ /log/*
16
+ /tmp/*
17
+
18
+
19
+ # Ignore master key for decrypting credentials and more.
20
+ /config/master.key
@@ -0,0 +1 @@
1
+ ruby-3.1.2
@@ -0,0 +1,31 @@
1
+ source 'https://rubygems.org'
2
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
3
+
4
+ ruby '3.1.2'
5
+
6
+ # Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main"
7
+ gem 'rails', '~> 7.0.3', '>= 7.0.3.1'
8
+
9
+ # Use sqlite3 as the database for Active Record
10
+ gem 'sqlite3', '~> 1.4'
11
+
12
+ # Use the Puma web server [https://github.com/puma/puma]
13
+ gem 'puma', '~> 5.0'
14
+
15
+ # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
16
+ gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw jruby]
17
+
18
+ # Use Rack CORS for handling Cross-Origin Resource Sharing (CORS), making cross-origin AJAX possible
19
+ # gem "rack-cors"
20
+
21
+ group :development, :test do
22
+ # See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem
23
+ gem 'debug', platforms: %i[mri mingw x64_mingw]
24
+ end
25
+
26
+ group :development do
27
+ # Speed up commands on slow machines / big apps [https://github.com/rails/spring]
28
+ # gem "spring"
29
+ end
30
+
31
+ gem 'readme-metrics', path: '../../'
@@ -0,0 +1,189 @@
1
+ PATH
2
+ remote: ../..
3
+ specs:
4
+ readme-metrics (2.1.0)
5
+ httparty (~> 0.18)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ actioncable (7.0.3.1)
11
+ actionpack (= 7.0.3.1)
12
+ activesupport (= 7.0.3.1)
13
+ nio4r (~> 2.0)
14
+ websocket-driver (>= 0.6.1)
15
+ actionmailbox (7.0.3.1)
16
+ actionpack (= 7.0.3.1)
17
+ activejob (= 7.0.3.1)
18
+ activerecord (= 7.0.3.1)
19
+ activestorage (= 7.0.3.1)
20
+ activesupport (= 7.0.3.1)
21
+ mail (>= 2.7.1)
22
+ net-imap
23
+ net-pop
24
+ net-smtp
25
+ actionmailer (7.0.3.1)
26
+ actionpack (= 7.0.3.1)
27
+ actionview (= 7.0.3.1)
28
+ activejob (= 7.0.3.1)
29
+ activesupport (= 7.0.3.1)
30
+ mail (~> 2.5, >= 2.5.4)
31
+ net-imap
32
+ net-pop
33
+ net-smtp
34
+ rails-dom-testing (~> 2.0)
35
+ actionpack (7.0.3.1)
36
+ actionview (= 7.0.3.1)
37
+ activesupport (= 7.0.3.1)
38
+ rack (~> 2.0, >= 2.2.0)
39
+ rack-test (>= 0.6.3)
40
+ rails-dom-testing (~> 2.0)
41
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
42
+ actiontext (7.0.3.1)
43
+ actionpack (= 7.0.3.1)
44
+ activerecord (= 7.0.3.1)
45
+ activestorage (= 7.0.3.1)
46
+ activesupport (= 7.0.3.1)
47
+ globalid (>= 0.6.0)
48
+ nokogiri (>= 1.8.5)
49
+ actionview (7.0.3.1)
50
+ activesupport (= 7.0.3.1)
51
+ builder (~> 3.1)
52
+ erubi (~> 1.4)
53
+ rails-dom-testing (~> 2.0)
54
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
55
+ activejob (7.0.3.1)
56
+ activesupport (= 7.0.3.1)
57
+ globalid (>= 0.3.6)
58
+ activemodel (7.0.3.1)
59
+ activesupport (= 7.0.3.1)
60
+ activerecord (7.0.3.1)
61
+ activemodel (= 7.0.3.1)
62
+ activesupport (= 7.0.3.1)
63
+ activestorage (7.0.3.1)
64
+ actionpack (= 7.0.3.1)
65
+ activejob (= 7.0.3.1)
66
+ activerecord (= 7.0.3.1)
67
+ activesupport (= 7.0.3.1)
68
+ marcel (~> 1.0)
69
+ mini_mime (>= 1.1.0)
70
+ activesupport (7.0.3.1)
71
+ concurrent-ruby (~> 1.0, >= 1.0.2)
72
+ i18n (>= 1.6, < 2)
73
+ minitest (>= 5.1)
74
+ tzinfo (~> 2.0)
75
+ builder (3.2.4)
76
+ concurrent-ruby (1.1.10)
77
+ crass (1.0.6)
78
+ debug (1.6.2)
79
+ irb (>= 1.3.6)
80
+ reline (>= 0.3.1)
81
+ digest (3.1.0)
82
+ erubi (1.11.0)
83
+ globalid (1.0.0)
84
+ activesupport (>= 5.0)
85
+ httparty (0.20.0)
86
+ mime-types (~> 3.0)
87
+ multi_xml (>= 0.5.2)
88
+ i18n (1.12.0)
89
+ concurrent-ruby (~> 1.0)
90
+ io-console (0.5.11)
91
+ irb (1.4.1)
92
+ reline (>= 0.3.0)
93
+ loofah (2.18.0)
94
+ crass (~> 1.0.2)
95
+ nokogiri (>= 1.5.9)
96
+ mail (2.7.1)
97
+ mini_mime (>= 0.1.1)
98
+ marcel (1.0.2)
99
+ method_source (1.0.0)
100
+ mime-types (3.4.1)
101
+ mime-types-data (~> 3.2015)
102
+ mime-types-data (3.2022.0105)
103
+ mini_mime (1.1.2)
104
+ mini_portile2 (2.8.0)
105
+ minitest (5.16.3)
106
+ multi_xml (0.6.0)
107
+ net-imap (0.2.3)
108
+ digest
109
+ net-protocol
110
+ strscan
111
+ net-pop (0.1.1)
112
+ digest
113
+ net-protocol
114
+ timeout
115
+ net-protocol (0.1.3)
116
+ timeout
117
+ net-smtp (0.3.1)
118
+ digest
119
+ net-protocol
120
+ timeout
121
+ nio4r (2.5.8)
122
+ nokogiri (1.13.8)
123
+ mini_portile2 (~> 2.8.0)
124
+ racc (~> 1.4)
125
+ nokogiri (1.13.8-arm64-darwin)
126
+ racc (~> 1.4)
127
+ puma (5.6.5)
128
+ nio4r (~> 2.0)
129
+ racc (1.6.0)
130
+ rack (2.2.4)
131
+ rack-test (2.0.2)
132
+ rack (>= 1.3)
133
+ rails (7.0.3.1)
134
+ actioncable (= 7.0.3.1)
135
+ actionmailbox (= 7.0.3.1)
136
+ actionmailer (= 7.0.3.1)
137
+ actionpack (= 7.0.3.1)
138
+ actiontext (= 7.0.3.1)
139
+ actionview (= 7.0.3.1)
140
+ activejob (= 7.0.3.1)
141
+ activemodel (= 7.0.3.1)
142
+ activerecord (= 7.0.3.1)
143
+ activestorage (= 7.0.3.1)
144
+ activesupport (= 7.0.3.1)
145
+ bundler (>= 1.15.0)
146
+ railties (= 7.0.3.1)
147
+ rails-dom-testing (2.0.3)
148
+ activesupport (>= 4.2.0)
149
+ nokogiri (>= 1.6)
150
+ rails-html-sanitizer (1.4.3)
151
+ loofah (~> 2.3)
152
+ railties (7.0.3.1)
153
+ actionpack (= 7.0.3.1)
154
+ activesupport (= 7.0.3.1)
155
+ method_source
156
+ rake (>= 12.2)
157
+ thor (~> 1.0)
158
+ zeitwerk (~> 2.5)
159
+ rake (13.0.6)
160
+ reline (0.3.1)
161
+ io-console (~> 0.5)
162
+ sqlite3 (1.4.4)
163
+ strscan (3.0.4)
164
+ thor (1.2.1)
165
+ timeout (0.3.0)
166
+ tzinfo (2.0.5)
167
+ concurrent-ruby (~> 1.0)
168
+ websocket-driver (0.7.5)
169
+ websocket-extensions (>= 0.1.0)
170
+ websocket-extensions (0.1.5)
171
+ zeitwerk (2.6.0)
172
+
173
+ PLATFORMS
174
+ arm64-darwin-21
175
+ ruby
176
+
177
+ DEPENDENCIES
178
+ debug
179
+ puma (~> 5.0)
180
+ rails (~> 7.0.3, >= 7.0.3.1)
181
+ readme-metrics!
182
+ sqlite3 (~> 1.4)
183
+ tzinfo-data
184
+
185
+ RUBY VERSION
186
+ ruby 3.1.2p20
187
+
188
+ BUNDLED WITH
189
+ 2.3.11