gem_bench 2.0.1 → 2.0.2
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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +61 -46
- data/LICENSE.txt +1 -1
- data/README.md +160 -49
- data/lib/gem_bench/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +13 -10
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 59e1de2253ef3ec5e1a82ee85837764bd4f5bb52e4e1445489d7ae3d28adf5b6
|
|
4
|
+
data.tar.gz: '088ee6272de7a10656b202e1a24a29cfc144e0032e218fdb6322552eec416fe5'
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 98f28036a4f33a517593ed8af78fdf3b177d4033bc58a3e1be55958513ec28e72f24dad753f3c400fa0b35af6b40b85d17026e11fed669862dd2b8d56f7690bc
|
|
7
|
+
data.tar.gz: e5334f36e3e534be04804c83ee37eb94810b05aa73fefcb1c39b573f3fdab692ea1f4a9ca5b5a929bdc0a2666dcb591520f8648e412fc30ff3c44bc76c5da9bd
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -11,53 +11,68 @@ and this project adheres to [Semantic Versioning v2](https://semver.org/spec/v2.
|
|
|
11
11
|
### Fixed
|
|
12
12
|
### Removed
|
|
13
13
|
|
|
14
|
+
[2.0.2] SEP.17.2024
|
|
15
|
+
COVERAGE: 82.15% -- 382/465 lines in 9 files
|
|
16
|
+
BRANCH COVERAGE: 58.79% -- 97/165 branches in 9 branches
|
|
17
|
+
51.72% documented
|
|
18
|
+
### Added
|
|
19
|
+
- CI for Ancient Rubies
|
|
20
|
+
- Ruby 2.3
|
|
21
|
+
- Ruby 2.4
|
|
22
|
+
- Ruby 2.5
|
|
23
|
+
- Ruby 2.6
|
|
24
|
+
- More & improved documentation
|
|
25
|
+
### Fixed
|
|
26
|
+
- Typo in URL in documentation
|
|
27
|
+
- Gemspec description & Summary
|
|
28
|
+
|
|
14
29
|
[2.0.1] SEP.17.2024
|
|
15
30
|
COVERAGE: 82.15% -- 382/465 lines in 9 files
|
|
16
31
|
BRANCH COVERAGE: 58.08% -- 97/167 branches in 9 files
|
|
17
32
|
51.72% documented
|
|
18
33
|
### Added
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
34
|
+
- Ability to re-namespace and load copy of a gem alongside vanilla version for benchmarking via `GemBench::Jersey`
|
|
35
|
+
- See: https://github.com/panorama-ed/memo_wise/pull/339
|
|
36
|
+
- Many more tests
|
|
37
|
+
- `kettle-soup-cover` for test coverage enforcement
|
|
38
|
+
- Better documentation
|
|
39
|
+
- Improved instructions for contributing
|
|
25
40
|
### Changed
|
|
26
|
-
|
|
41
|
+
- Improved `bin/checksums`
|
|
27
42
|
### Fixed
|
|
28
|
-
|
|
43
|
+
- Stopped swallowing `ArgumentError` in certain exceptional cases
|
|
29
44
|
|
|
30
45
|
[2.0.0] SEP.25.2023
|
|
31
46
|
### Added
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
47
|
+
- Compatible with Bundler 2+
|
|
48
|
+
- Checksums for release
|
|
49
|
+
- SHA-256
|
|
50
|
+
- SHA-512
|
|
51
|
+
- Signed releases
|
|
52
|
+
- Add CODE_OF_CONDUCT.md
|
|
53
|
+
- Add SECURITY.md (Security policy)
|
|
54
|
+
- Github Actions
|
|
40
55
|
### Changed
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
56
|
+
- Dropped support for Ruby 2.0, 2.1, and 2.2
|
|
57
|
+
- `VERSION` constant now lives at `GemBench::Version::VERSION`, enhanced by `version_gem`
|
|
58
|
+
- Changelog updated to Keep-a-changelog format (going forward)
|
|
44
59
|
### Removed
|
|
45
|
-
|
|
46
|
-
|
|
60
|
+
- Removed Appraisals
|
|
61
|
+
- Removed Travis-CI
|
|
47
62
|
|
|
48
63
|
[1.0.6] SEP.09.2018
|
|
49
|
-
|
|
50
|
-
|
|
64
|
+
- Documentation improvements
|
|
65
|
+
- Add Ruby 2.5 to build matrix
|
|
51
66
|
|
|
52
67
|
[1.0.5] JUN.05.2017
|
|
53
|
-
|
|
68
|
+
- Allow github macro as an alternative to git within Gemfile for strict version constraint analysis
|
|
54
69
|
|
|
55
70
|
[1.0.3] JUN.02.2017
|
|
56
|
-
|
|
57
|
-
|
|
71
|
+
- fixed accidental removal of loaded_gems in 1.0.2
|
|
72
|
+
- better documentation
|
|
58
73
|
|
|
59
74
|
[1.0.2] JUN.02.2017
|
|
60
|
-
|
|
75
|
+
- version constraint checking, useful to add a spec enforcing Gemfile version constraints, by Peter Boling
|
|
61
76
|
- Console use:
|
|
62
77
|
- GemBench::StrictVersionRequirement.new({verbose: true})
|
|
63
78
|
- Spec use:
|
|
@@ -71,41 +86,41 @@ end
|
|
|
71
86
|
```
|
|
72
87
|
|
|
73
88
|
[1.0.1] MAR.25.2017
|
|
74
|
-
|
|
89
|
+
- fixed a typo that prevented Gemfile comparison by mobilutz
|
|
75
90
|
|
|
76
91
|
[1.0.0] FEB.26.2017
|
|
77
|
-
|
|
92
|
+
- New feature: scan all code (except for test/spec/feature code) in all loaded gems for a given regex:
|
|
78
93
|
- puts GemBench.find(look_for_regex: /HERE BE DRAGONS/).starters.map {|gem| "#{gem.name} has DRAGONS at #{gem.stats}" }.join("\n")
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
94
|
+
- Added basic specs
|
|
95
|
+
- More Documentation
|
|
96
|
+
- added back git dependency to gemspec (pulled in latest Gem scaffolding from Bundler :/)
|
|
82
97
|
|
|
83
98
|
[0.0.8] JAN.16.2014
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
99
|
+
- Corrected issues with 0.0.7 release.
|
|
100
|
+
- More Documentation
|
|
101
|
+
- removed git dependency from gemspec
|
|
87
102
|
|
|
88
103
|
[0.0.7] DEC.23.2013 (Yanked immediately)
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
104
|
+
- Attempt to fix failure on encoding problem, with a rescue fallback (Issue #1) by Peter Boling
|
|
105
|
+
- Readme / Documentation improvements by John Bachir
|
|
106
|
+
- Runtime output improvements by John Bachir
|
|
92
107
|
|
|
93
108
|
[0.0.6] AUG.29.2013
|
|
94
|
-
|
|
95
|
-
|
|
109
|
+
- Added license to gemspec by Peter Boling
|
|
110
|
+
- No longer altering Ruby load path - Let the gem manager do that by Peter Boling
|
|
96
111
|
|
|
97
112
|
[0.0.5] AUG.28.2013
|
|
98
|
-
|
|
113
|
+
- Encode as UTF-8 prior to comparison by Peter Boling
|
|
99
114
|
|
|
100
115
|
[0.0.4] APR.06.2013
|
|
101
|
-
|
|
116
|
+
- Expanded exclusion list by Peter Boling
|
|
102
117
|
|
|
103
118
|
[0.0.3] APR.06.2013
|
|
104
|
-
|
|
119
|
+
- Late night coding needs more coffee by Peter Boling
|
|
105
120
|
|
|
106
121
|
[0.0.2] APR.06.2013
|
|
107
|
-
|
|
108
|
-
|
|
122
|
+
- Works against 265 dependency Gemfile by Peter Boling
|
|
123
|
+
- Added ability to evaluate a Gemfile by Peter Boling
|
|
109
124
|
|
|
110
125
|
[0.0.1] APR.05.2013
|
|
111
|
-
|
|
126
|
+
- Initial release by Peter Boling
|
data/LICENSE.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2013 -
|
|
3
|
+
Copyright (c) 2013 - 2014, 2016 - 2020, 2023 - 2024 Peter H. Boling, http://railsbling.com
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
data/README.md
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
[](https://rubygems.org/gems/gem_bench)
|
|
9
9
|
[](https://github.com/pboling/gem_bench)
|
|
10
10
|
[](https://depfu.com/github/pboling/gem_bench?project_id=2688)
|
|
11
|
+
[![CodeCov][🖇codecov-img♻️]][🖇codecov]
|
|
11
12
|
[](https://codeclimate.com/github/pboling/gem_bench/test_coverage)
|
|
12
13
|
[](https://codeclimate.com/github/pboling/gem_bench/maintainability)
|
|
13
14
|
[![CI Supported Build][🚎s-wfi]][🚎s-wf]
|
|
@@ -15,7 +16,10 @@
|
|
|
15
16
|
[![CI Style Build][🚎st-wfi]][🚎st-wf]
|
|
16
17
|
[![CI Coverage Build][🚎cov-wfi]][🚎cov-wf]
|
|
17
18
|
[![CI Heads Build][🚎hd-wfi]][🚎hd-wf]
|
|
19
|
+
[![CI Ancient Build][🚎an-wfi]][🚎an-wf]
|
|
18
20
|
|
|
21
|
+
[🖇codecov-img♻️]: https://codecov.io/gh/pboling/gem_bench/graph/badge.svg?token=selEoMrZzA
|
|
22
|
+
[🖇codecov]: https://codecov.io/gh/pboling/gem_bench
|
|
19
23
|
[🚎s-wf]: https://github.com/pboling/gem_bench/actions/workflows/supported.yml
|
|
20
24
|
[🚎s-wfi]: https://github.com/pboling/gem_bench/actions/workflows/supported.yml/badge.svg
|
|
21
25
|
[🚎us-wf]: https://github.com/pboling/gem_bench/actions/workflows/unsupported.yml
|
|
@@ -26,6 +30,8 @@
|
|
|
26
30
|
[🚎cov-wfi]: https://github.com/pboling/gem_bench/actions/workflows/coverage.yml/badge.svg
|
|
27
31
|
[🚎hd-wf]: https://github.com/pboling/gem_bench/actions/workflows/heads.yml
|
|
28
32
|
[🚎hd-wfi]: https://github.com/pboling/gem_bench/actions/workflows/heads.yml/badge.svg
|
|
33
|
+
[🚎an-wf]: https://github.com/pboling/gem_bench/actions/workflows/ancient.yml
|
|
34
|
+
[🚎an-wfi]: https://github.com/pboling/gem_bench/actions/workflows/ancient.yml/badge.svg
|
|
29
35
|
|
|
30
36
|
</div>
|
|
31
37
|
|
|
@@ -57,13 +63,21 @@
|
|
|
57
63
|
</div>
|
|
58
64
|
</div>
|
|
59
65
|
|
|
60
|
-
|
|
66
|
+
## What's it do?
|
|
67
|
+
|
|
68
|
+
🏁 Copy & Re-namespace any gem to benchmark side-by-side with `benchmarks-ips`!
|
|
69
|
+
|
|
70
|
+
👯 For example, many of the ~dozen Memoization gems use the same namespaces (`Memoist`, `Memery`, etc).
|
|
71
|
+
In order to compare them side-by-side one of them must be re-namespaced.
|
|
61
72
|
|
|
62
|
-
|
|
73
|
+
<details>
|
|
74
|
+
<summary>Scene: Spectator at a game of Ruby Sports Gem Ball</summary>
|
|
75
|
+
|
|
76
|
+
Gem wearing jersey **#23**:
|
|
63
77
|
|
|
64
78
|
> "Put me in coach!"
|
|
65
79
|
|
|
66
|
-
Other Gem, also wearing jersey
|
|
80
|
+
Other Gem, also wearing jersey **#23**:
|
|
67
81
|
|
|
68
82
|
> "Put me in coach!"
|
|
69
83
|
|
|
@@ -71,32 +85,50 @@ Coach:
|
|
|
71
85
|
|
|
72
86
|
> ❨╯°□°❩╯︵┻━┻ fine, but one of you change your jersey first!
|
|
73
87
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
`gem_bench` is for static Gemfile and installed gem library source code analysis.
|
|
88
|
+
</details>
|
|
77
89
|
|
|
78
|
-
|
|
90
|
+
🤩 Benchmark trunk against released version of a library!
|
|
79
91
|
|
|
80
|
-
|
|
81
|
-
- two different things that happen to have a namespace collision,
|
|
92
|
+
🧐 A `git clone` build can now be run against the latest public release build, side-by-side, by re-namespacing one of them.
|
|
82
93
|
|
|
83
|
-
|
|
94
|
+
🕵️♀️ Static Gemfile and installed gem library source code analysis.
|
|
95
|
+
Regex search through all of a project's source code, including installed Bundler dependencies.
|
|
84
96
|
|
|
85
|
-
|
|
97
|
+
🛟 Trim down app load times, such as on Heroku, by finding and keeping your worst players on the bench.
|
|
86
98
|
|
|
87
|
-
| Project
|
|
88
|
-
|
|
89
|
-
| gem name
|
|
90
|
-
| code triage
|
|
91
|
-
| homepage
|
|
92
|
-
| documentation
|
|
93
|
-
| live chat
|
|
94
|
-
| expert support
|
|
95
|
-
|
|
|
99
|
+
| Project | GemBench |
|
|
100
|
+
|----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
101
|
+
| gem name | [gem_bench](https://rubygems.org/gems/gem_bench) |
|
|
102
|
+
| code triage | [](https://www.codetriage.com/pboling/gem_bench) |
|
|
103
|
+
| homepage | [on Github.com][homepage] |
|
|
104
|
+
| documentation | [on Rdoc.info][documentation] |
|
|
105
|
+
| live chat | [![Join the chat][🏘chati]][🏘chat] |
|
|
106
|
+
| expert support | [](https://www.codementor.io/peterboling?utm_source=github&utm_medium=button&utm_term=peterboling&utm_campaign=github) |
|
|
107
|
+
| `...` 💖 | [![Liberapay Patrons][⛳liberapay-img]][⛳liberapay] [![Sponsor Me][🖇sponsor-img]][🖇sponsor] [![Follow Me on LinkedIn][🖇linkedin-img]][🖇linkedin] [![Find Me on WellFound:][✌️wellfound-img]][✌️wellfound] [![Find Me on CrunchBase][💲crunchbase-img]][💲crunchbase] [![My LinkTree][🌳linktree-img]][🌳linktree] [![Follow Me on Ruby.Social][🐘ruby-mast-img]][🐘ruby-mast] [![Tweet @ Peter][🐦tweet-img]][🐦tweet] [💻][coderme] [🌏][aboutme] |
|
|
96
108
|
|
|
97
109
|
[🏘chat]: https://matrix.to/#/%23pboling_gem_bench:gitter.im
|
|
98
110
|
[🏘chati]: https://badges.gitter.im/Join%20Chat.svg
|
|
99
111
|
|
|
112
|
+
<!-- 7️⃣ spread 💖 -->
|
|
113
|
+
[🐦tweet-img]: https://img.shields.io/twitter/follow/galtzo.svg?style=social&label=Follow%20%40galtzo
|
|
114
|
+
[🐦tweet]: http://twitter.com/galtzo
|
|
115
|
+
[🚎blog]: http://www.railsbling.com/tags/gem_bench/
|
|
116
|
+
[🚎blog-img]: https://img.shields.io/badge/blog-railsbling-brightgreen.svg?style=flat
|
|
117
|
+
[🖇linkedin]: http://www.linkedin.com/in/peterboling
|
|
118
|
+
[🖇linkedin-img]: https://img.shields.io/badge/PeterBoling-blue?style=plastic&logo=linkedin
|
|
119
|
+
[✌️wellfound]: https://angel.co/u/peter-boling
|
|
120
|
+
[✌️wellfound-img]: https://img.shields.io/badge/peter--boling-orange?style=plastic&logo=wellfound
|
|
121
|
+
[💲crunchbase]: https://www.crunchbase.com/person/peter-boling
|
|
122
|
+
[💲crunchbase-img]: https://img.shields.io/badge/peter--boling-purple?style=plastic&logo=crunchbase
|
|
123
|
+
[🐘ruby-mast]: https://ruby.social/@galtzo
|
|
124
|
+
[🐘ruby-mast-img]: https://img.shields.io/mastodon/follow/109447111526622197?domain=https%3A%2F%2Fruby.social&style=plastic&logo=mastodon&label=Ruby%20%40galtzo
|
|
125
|
+
[🌳linktree]: https://linktr.ee/galtzo
|
|
126
|
+
[🌳linktree-img]: https://img.shields.io/badge/galtzo-purple?style=plastic&logo=linktree
|
|
127
|
+
|
|
128
|
+
<!-- Maintainer Contact Links -->
|
|
129
|
+
[aboutme]: https://about.me/peter.boling
|
|
130
|
+
[coderme]: https://coderwall.com/Peter%20Boling
|
|
131
|
+
|
|
100
132
|
### New for 2.0.1 - `GemBench::Jersey`
|
|
101
133
|
|
|
102
134
|
Allows you to re-namespace any gem.
|
|
@@ -177,11 +209,14 @@ For string version constraints anything is allowed (e.g. `'~> 1.0'`), as it assu
|
|
|
177
209
|
|
|
178
210
|
Search the Ruby source code of all the gems loaded by your Gemfile for a specified regex, to find out which gems have wat DRAGONS.
|
|
179
211
|
|
|
212
|
+
<details>
|
|
213
|
+
<summary>Scene: Rubiana Jones is searching for WAT Dragon relics in dusty bins of source code</summary>
|
|
214
|
+
|
|
180
215
|
Gem:
|
|
181
216
|
|
|
182
217
|
> "I have no wat DRAGONS!"`
|
|
183
218
|
|
|
184
|
-
|
|
219
|
+
Rubiana Jones:
|
|
185
220
|
|
|
186
221
|
> ❨╯°□°❩╯︵┻━┻ Yes you do!
|
|
187
222
|
|
|
@@ -196,6 +231,8 @@ byebug has wat DRAGONS at [["/Users/pboling/.rvm/gems/ruby-2.4.0@foss/gems/byebu
|
|
|
196
231
|
NOTE: The number (954, above) is not a line number. The file which contains the text `wat` was the 954th file evaluated, i.e. the number doesn't matter.
|
|
197
232
|
NOTE: This is a contrived example. The occurrence of `wat` in byebug is meaningless: `byebug/commands/frame.rb:34` has ` if there is a front end also watching over things.`. This is just an example! You can find anything you want, perhaps even something important!
|
|
198
233
|
|
|
234
|
+
</details>
|
|
235
|
+
|
|
199
236
|
It is a fact of RubyGems that many of them do not need to be loaded by your app at boot time.
|
|
200
237
|
It is a fact of Bundler that you don't know which ones need to be 'required' while staring at the Gemfile.
|
|
201
238
|
It is a fact of Heroku that you only have 60, 75, or 120 ([by special request](https://devcenter.heroku.com/articles/error-codes#h20-app-boot-timeout)) precious seconds to get your app loaded before ❨╯°□°❩╯︵┻━┻
|
|
@@ -206,11 +243,22 @@ You can even use it to evaluate your project's actual Gemfile for easy peasy boo
|
|
|
206
243
|
|
|
207
244
|
## Installation
|
|
208
245
|
|
|
209
|
-
You *may not* need to add this gem to your project.
|
|
246
|
+
You *may not* need to add this gem to your project.
|
|
247
|
+
|
|
248
|
+
Install the gem and add to the application's Gemfile by executing:
|
|
249
|
+
|
|
250
|
+
$ bundle add active_security
|
|
251
|
+
|
|
252
|
+
If bundler is not being used to manage dependencies, install the gem by executing:
|
|
253
|
+
|
|
254
|
+
$ gem install active_security
|
|
255
|
+
|
|
256
|
+
<details>
|
|
257
|
+
<summary>Installation Options</summary>
|
|
210
258
|
|
|
211
259
|
### Option 1
|
|
212
260
|
|
|
213
|
-
Just install it, and require it in your`irb
|
|
261
|
+
Just install it, and require it in your `irb` or `console` session when you want to use it. However, if you load your console with `bundle exec` then you only have access to gems in the gemfile, so either load without `bundle exec` or add it to the `Gemfile`.
|
|
214
262
|
|
|
215
263
|
$ gem install gem_bench
|
|
216
264
|
|
|
@@ -236,13 +284,16 @@ If you are going to use the gem in your specs, you will need to add it to the te
|
|
|
236
284
|
|
|
237
285
|
gem 'gem_bench', :group => :test
|
|
238
286
|
|
|
287
|
+
</details>
|
|
288
|
+
|
|
239
289
|
## Usage
|
|
240
290
|
|
|
241
291
|
Works with Ruby >= 2.3.
|
|
242
292
|
|
|
243
|
-
###
|
|
293
|
+
### Examples
|
|
244
294
|
|
|
245
|
-
|
|
295
|
+
<details>
|
|
296
|
+
<summary>Getting tired of seeing this `irb` warning, perhaps?</summary>
|
|
246
297
|
|
|
247
298
|
```
|
|
248
299
|
$ bundle exec rails console
|
|
@@ -268,7 +319,10 @@ Then find the file with the first occurrence of the regex in each:
|
|
|
268
319
|
=> [["/Users/pboling/.rvm/gems/ruby-2.4.0@foss/gems/byebug-9.0.6/lib/byebug/command.rb"], ["/Users/pboling/.rvm/gems/ruby-2.4.0@foss/gems/diff-lcs-1.3/lib/diff/lcs/hunk.rb"]]
|
|
269
320
|
```
|
|
270
321
|
|
|
271
|
-
|
|
322
|
+
</details>
|
|
323
|
+
|
|
324
|
+
<details>
|
|
325
|
+
<summary>Find what gems have `RAILS_ENV` specific code!</summary>
|
|
272
326
|
|
|
273
327
|
Let's try to find what libraries might be using a conditional guard to alter their behavior in a specific Rails environment.
|
|
274
328
|
|
|
@@ -296,7 +350,10 @@ sass has Rails.env condition in [["/Users/pboling/.asdf/installs/ruby/2.7.8/lib/
|
|
|
296
350
|
sass-rails has Rails.env condition in [["/Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/sass-rails-5.1.0/lib/sass/rails/railtie.rb", 3349]]
|
|
297
351
|
```
|
|
298
352
|
|
|
299
|
-
|
|
353
|
+
</details>
|
|
354
|
+
|
|
355
|
+
<details>
|
|
356
|
+
<summary> Basic Gemfile Analysis</summary>
|
|
300
357
|
|
|
301
358
|
Fire up an `irb` session or a `rails console` and then:
|
|
302
359
|
|
|
@@ -352,7 +409,10 @@ If you run the check against a real app's Gemfile it will find numerous primary
|
|
|
352
409
|
|
|
353
410
|
In a random directory, in an irb session, where there is no Gemfile in sight it will give a lot more information.
|
|
354
411
|
|
|
355
|
-
|
|
412
|
+
</details>
|
|
413
|
+
|
|
414
|
+
<details>
|
|
415
|
+
<summary>Advanced Gemfile Analysis</summary>
|
|
356
416
|
|
|
357
417
|
In order to *also* see list gems may *not* be required at boot time you need to:
|
|
358
418
|
|
|
@@ -512,12 +572,28 @@ How much faster will my app boot loading 45 fewer gems? A bit.
|
|
|
512
572
|
|
|
513
573
|
**Note:** Some of the gems in the list above should have been excluded. They are now excluded as of `gem_bench` version 0.0.4.
|
|
514
574
|
|
|
575
|
+
</details>
|
|
576
|
+
|
|
515
577
|
## Future
|
|
516
578
|
|
|
517
579
|
This gem determines which gems need to be loaded at Rails' boot time by looking for Railties and Engines.
|
|
518
580
|
A future version will also look for initializers, because gems which have code that runs (e.g. configuration) in an initializer also need to be loaded at boot time.
|
|
519
581
|
|
|
520
|
-
##
|
|
582
|
+
## 🤝 Contributing
|
|
583
|
+
|
|
584
|
+
See [CONTRIBUTING.md][🤝contributing]
|
|
585
|
+
|
|
586
|
+
[🤝contributing]: CONTRIBUTING.md
|
|
587
|
+
|
|
588
|
+
### Code Coverage
|
|
589
|
+
|
|
590
|
+
If you need some ideas of where to help, you could work on adding more code coverage.
|
|
591
|
+
|
|
592
|
+
[![Coverage Graph][🔑codecov-g]][🖇codecov]
|
|
593
|
+
|
|
594
|
+
[🔑codecov-g]: https://codecov.io/gh/pboling/gem_bench/graphs/tree.svg?token=selEoMrZzA
|
|
595
|
+
|
|
596
|
+
## 🌈 Contributors
|
|
521
597
|
|
|
522
598
|
[![Contributors][🖐contributors-img]][🖐contributors]
|
|
523
599
|
|
|
@@ -527,38 +603,73 @@ Made with [contributors-img][🖐contrib-rocks].
|
|
|
527
603
|
[🖐contributors]: https://github.com/pboling/gem_bench/graphs/contributors
|
|
528
604
|
[🖐contributors-img]: https://contrib.rocks/image?repo=pboling/gem_bench
|
|
529
605
|
|
|
530
|
-
##
|
|
606
|
+
## Star History
|
|
607
|
+
|
|
608
|
+
<a href="https://star-history.com/#pboling/gem_bench&Date">
|
|
609
|
+
<picture>
|
|
610
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=pboling/gem_bench&type=Date&theme=dark" />
|
|
611
|
+
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=pboling/gem_bench&type=Date" />
|
|
612
|
+
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=pboling/gem_bench&type=Date" />
|
|
613
|
+
</picture>
|
|
614
|
+
</a>
|
|
615
|
+
|
|
616
|
+
## 🪇 Code of Conduct
|
|
617
|
+
|
|
618
|
+
Everyone interacting in this project's codebases, issue trackers,
|
|
619
|
+
chat rooms and mailing lists is expected to follow the [code of conduct][🪇conduct].
|
|
620
|
+
|
|
621
|
+
[🪇conduct]: CODE_OF_CONDUCT.md
|
|
622
|
+
|
|
623
|
+
## 📌 Versioning
|
|
531
624
|
|
|
532
|
-
|
|
625
|
+
This Library adheres to [Semantic Versioning 2.0.0][📌semver].
|
|
626
|
+
Violations of this scheme should be reported as bugs.
|
|
627
|
+
Specifically, if a minor or patch version is released that breaks backward compatibility,
|
|
628
|
+
a new version should be immediately released that restores compatibility.
|
|
629
|
+
Breaking changes to the public API will only be introduced with new major versions.
|
|
533
630
|
|
|
534
|
-
|
|
631
|
+
To get a better understanding of how SemVer is intended to work over a project's lifetime,
|
|
632
|
+
read this article from the creator of SemVer:
|
|
535
633
|
|
|
536
|
-
|
|
537
|
-
Violations of this scheme should be reported as bugs. Specifically,
|
|
538
|
-
if a minor or patch version is released that breaks backward
|
|
539
|
-
compatibility, a new version should be immediately released that
|
|
540
|
-
restores compatibility. Breaking changes to the public API will
|
|
541
|
-
only be introduced with new major versions.
|
|
634
|
+
- ["Major Version Numbers are Not Sacred"][📌major-versions-not-sacred]
|
|
542
635
|
|
|
543
|
-
As a result of this policy, you can (and should) specify a
|
|
544
|
-
|
|
636
|
+
As a result of this policy, you can (and should) specify a dependency on these libraries using
|
|
637
|
+
the [Pessimistic Version Constraint][📌pvc] with two digits of precision.
|
|
545
638
|
|
|
546
639
|
For example:
|
|
547
640
|
|
|
548
|
-
|
|
641
|
+
```ruby
|
|
642
|
+
spec.add_dependency("gem_bench", "~> 2.0")
|
|
643
|
+
```
|
|
549
644
|
|
|
550
|
-
See [CHANGELOG.md]
|
|
645
|
+
See [CHANGELOG.md][📌changelog] for list of releases.
|
|
551
646
|
|
|
552
|
-
|
|
647
|
+
[comment]: <> ( 📌 VERSIONING LINKS )
|
|
553
648
|
|
|
554
|
-
|
|
555
|
-
|
|
649
|
+
[📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
|
|
650
|
+
[📌semver]: http://semver.org/
|
|
651
|
+
[📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
|
|
652
|
+
[📌changelog]: CHANGELOG.md
|
|
653
|
+
|
|
654
|
+
## 📄 License
|
|
655
|
+
|
|
656
|
+
The gem is available as open source under the terms of
|
|
657
|
+
the [MIT License][📄license] [![License: MIT][📄license-img]][📄license-ref].
|
|
658
|
+
See [LICENSE.txt][📄license] for the official [Copyright Notice][📄copyright-notice-explainer].
|
|
659
|
+
|
|
660
|
+
[comment]: <> ( 📄 LEGAL LINKS )
|
|
661
|
+
|
|
662
|
+
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
|
663
|
+
[📄license]: LICENSE.txt
|
|
664
|
+
[📄license-ref]: https://opensource.org/licenses/MIT
|
|
665
|
+
[📄license-img]: https://img.shields.io/badge/License-MIT-green.svg
|
|
666
|
+
|
|
667
|
+
### © Copyright
|
|
668
|
+
|
|
669
|
+
* Copyright (c) 2013 - 2014, 2016 - 2020, 2023 - 2024 [Peter H. Boling][peterboling] of [Rails Bling][railsbling]
|
|
556
670
|
|
|
557
|
-
[semver]: http://semver.org/
|
|
558
|
-
[pvc]: http://docs.rubygems.org/read/chapter/16#page74
|
|
559
|
-
[bundle-group-pattern]: https://gist.github.com/pboling/4564780
|
|
560
671
|
[railsbling]: http://www.railsbling.com
|
|
561
672
|
[peterboling]: http://www.peterboling.com
|
|
562
|
-
[
|
|
673
|
+
[bundle-group-pattern]: https://gist.github.com/pboling/4564780
|
|
563
674
|
[documentation]: http://rdoc.info/github/pboling/gem_bench/frames
|
|
564
675
|
[homepage]: https://github.com/pboling/gem_bench
|
data/lib/gem_bench/version.rb
CHANGED
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gem_bench
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.0.
|
|
4
|
+
version: 2.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter Boling
|
|
@@ -36,7 +36,7 @@ cert_chain:
|
|
|
36
36
|
KuxrfYrN+9HvMdm+nZ6TypmKftHY3Gj+/uu+g8Icm/zrvTWAEE0mcJOkfrIoNPJb
|
|
37
37
|
pF8dMA==
|
|
38
38
|
-----END CERTIFICATE-----
|
|
39
|
-
date: 2024-09-
|
|
39
|
+
date: 2024-09-18 00:00:00.000000000 Z
|
|
40
40
|
dependencies:
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: bundler
|
|
@@ -273,9 +273,11 @@ dependencies:
|
|
|
273
273
|
- !ruby/object:Gem::Version
|
|
274
274
|
version: 1.35.1
|
|
275
275
|
description: |-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
276
|
+
* Benchmark different versions of same or similar gems
|
|
277
|
+
* Copy & Re-namespace any gem to benchmark side-by-side with `benchmarks-ips`
|
|
278
|
+
* Enforce Gemfile version constraints
|
|
279
|
+
* Regex search across all installed gem's source code to find issues quickly
|
|
280
|
+
* Trim down app load times by keeping your worst players on the bench (useful for beating Heroku slug load time cutoff)
|
|
279
281
|
email:
|
|
280
282
|
- peter.boling@gmail.com
|
|
281
283
|
executables: []
|
|
@@ -302,10 +304,10 @@ licenses:
|
|
|
302
304
|
- MIT
|
|
303
305
|
metadata:
|
|
304
306
|
homepage_uri: https://railsbling.com/tags/gem_bench/
|
|
305
|
-
source_code_uri: http://github.com/pboling/gem_bench/tree/v2.0.
|
|
306
|
-
changelog_uri: http://github.com/pboling/gem_bench/blob/v2.0.
|
|
307
|
+
source_code_uri: http://github.com/pboling/gem_bench/tree/v2.0.2
|
|
308
|
+
changelog_uri: http://github.com/pboling/gem_bench/blob/v2.0.2/CHANGELOG.md
|
|
307
309
|
bug_tracker_uri: http://github.com/pboling/gem_bench/issues
|
|
308
|
-
documentation_uri: https://www.rubydoc.info/gems/gem_bench/2.0.
|
|
310
|
+
documentation_uri: https://www.rubydoc.info/gems/gem_bench/2.0.2
|
|
309
311
|
wiki_uri: http://github.com/pboling/gem_bench/wiki
|
|
310
312
|
funding_uri: https://liberapay.com/pboling
|
|
311
313
|
rubygems_mfa_required: 'true'
|
|
@@ -324,8 +326,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
324
326
|
- !ruby/object:Gem::Version
|
|
325
327
|
version: '0'
|
|
326
328
|
requirements: []
|
|
327
|
-
rubygems_version: 3.
|
|
329
|
+
rubygems_version: 3.5.18
|
|
328
330
|
signing_key:
|
|
329
331
|
specification_version: 4
|
|
330
|
-
summary:
|
|
332
|
+
summary: Benchmark different versions of same or similar gems & Static Gemfile and
|
|
333
|
+
installed gem library source code analysis
|
|
331
334
|
test_files: []
|
metadata.gz.sig
CHANGED
|
Binary file
|