Commit Graph

26 Commits

Author SHA1 Message Date
Cody Cutrer 8f21292850 re-implement Autoextend with TracePoint
removes dependency on ActiveSupport/Zeitwerk, vastly simplifies the
implementation, and removes the limitations with detecting constants
before they're fully defined.

should also fix issues with hooks being called multiple times (because
they're detected in multiple ways - there's only a single way to detect
constants now)

Change-Id: Iaaae82a56a79a306f07c5845dfbc395cb37040d0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/344620
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2024-04-10 17:05:57 +00:00
Cody Cutrer 8eeebf32b3 bundle update rubocop
lots of autocorrect of RSpec/RedundantPredicateMatcher, and some
manual corrections of RSpec/RemoveConst (mostly ignoring it)

[skip-stages=Flakey]
[skip-crystalball]

Change-Id: I57a01c06a5f2dafd985912c5ea9dc18e199eddaa
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/337931
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Build-Review: Cody Cutrer <cody@instructure.com>
2024-01-24 16:17:43 +00:00
Cody Cutrer 62fc5c033d rubocop: prep for updating rubocop-rspec
auto-correctable cops applied

[skip-stages=Flakey]

Change-Id: I17e18e2e1a230ef7b27f01ddb7e587045eabf97f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/315809
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2023-04-12 19:30:10 +00:00
Jacob Burroughs d166798ef9 Drop rails 6.1 support
Change-Id: I25be73991a0542755579de897b98561ded3cd0c2
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310452
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Jacob Burroughs <jburroughs@instructure.com>
Product-Review: Jacob Burroughs <jburroughs@instructure.com>
Build-Review: Jacob Burroughs <jburroughs@instructure.com>
2023-02-14 21:47:03 +00:00
Jacob Burroughs b48f69f216 Drop support for classic autoloading
Change-Id: I99875135a37cfc302897ce6ffebbe6dee9a4a610
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/307802
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: Jacob Burroughs <jburroughs@instructure.com>
Product-Review: Jacob Burroughs <jburroughs@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2022-12-21 15:19:59 +00:00
Aaron Ogata 0e13f0d033 replace CANVAS_RAILS6_x variables with CANVAS_RAILS
refs DE-523

Test Plan

1. Ensure CANVAS_RAILS override works
2. Ensure file override works
3. Ensure consul override works

Change-Id: I6eea63bba5c401428c02179a3d6187c8265ce33e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/287849
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2022-03-24 18:14:52 +00:00
Cody Cutrer c2cba46851 RuboCop: Style/StringLiterals, Style/StringLiteralsInInterpolation
[skip-stages=Flakey]

auto-corrected

Change-Id: I4a0145abfd50f126669b20f3deaeae8377bac24d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/279535
Tested-by: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Migration-Review: Cody Cutrer <cody@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
2021-11-25 14:03:06 +00:00
Cody Cutrer d91263c442 RuboCop: Style/ExpandPathArguments
auto-corrected, but so many tweaks after to gemspecs it may as well
have been manual

Change-Id: I69aeb6e216894462d6d893ed4c123aa9898fc72f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/278516
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2021-11-17 22:06:59 +00:00
Cody Cutrer 7fdf9d7588 RuboCop: Lint
[skip-stages=Flakey]

the balance. mostly. Lint/UriEscapeUnescape is put in the pending
block because it's so touchy, and I didn't want to deal with it
right now

all manual

Change-Id: Ibeb81e013f56f160d51f7d237a9bcfe98daa1e53
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/277569
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2021-11-09 21:42:31 +00:00
Cody Cutrer 0321c40e94 RuboCop: Lint/ConstantDefinitionInBlock app, config, gems, lib
all except for spec

all manual

Change-Id: I8d4f118598ad7521b705a52d1133097b17f94393
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/277228
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2021-11-02 01:34:48 +00:00
Jacob Burroughs d6f5683fbe Make zeitwerk work with autoextend
fixes FOO-2517

Change-Id: I510e4640d9ad0db9fd5f5db65611adcc8b60ef58
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/277075
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
QA-Review: Jacob Burroughs <jburroughs@instructure.com>
Product-Review: Jacob Burroughs <jburroughs@instructure.com>
2021-10-29 16:39:25 +00:00
Cody Cutrer 475cec61e5 RuboCop: RSpec/ExampleWording gems
[skip-stages=Flakey]

Change-Id: I7bd5d93d0ec4a95971f7ce8fbff8e76b5bfea5a2
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/274249
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2021-09-24 02:14:45 +00:00
Cody Cutrer dd8fc67c41 RuboCop: Layout gems
Change-Id: Ie49d89234f4ffed27236a1713d072a00f637a253
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/274064
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2021-09-22 15:35:24 +00:00
Cody Cutrer d6e044ff76 add # frozen_string_literal: true for embedded gems
Change-Id: Ib49bc8939cf1706e758429e531a87c57d0231a37
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/251156
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
2020-10-28 22:08:40 +00:00
Jacob Burroughs e6d6577e74 Add dependency resolution to autoextend
flag=none

refs QUIZ-7242

test plan:
- Specs pass

Change-Id: I5029cd059ef62c4df91ae62cf039e3908739bfb3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/220913
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2019-12-16 21:38:14 +00:00
James Butters 0f383e71ef spec: use rspec for autoextend tests rather than minitest
Change-Id: I1c58754aa0864254377581176cac9ba81f09ea92
Reviewed-on: https://gerrit.instructure.com/208071
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2019-09-04 16:21:26 +00:00
Landon Wilkins c5b5cc786d da licença part 53
add consistent license headers to all source files

Change-Id: I405d2def01ad68c76533b9254983497485cd7073
Reviewed-on: https://gerrit.instructure.com/110160
Reviewed-by: Landon Wilkins <lwilkins@instructure.com>
Tested-by: Jenkins
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
2017-05-01 21:06:11 +00:00
Cody Cutrer 4afb90a86b ensure all Autoextend extensions get used
to avoid bugs creating new ones

Change-Id: Ie5e9444ac7445d388de7e3b466c53be9ef17c0ab
Reviewed-on: https://gerrit.instructure.com/101946
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Reviewed-by: Tyler Pickett <tpickett@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2017-02-13 23:06:36 +00:00
Cody Cutrer 1339e44130 fix autoextend detecting nested modules from autoloading
fixes CNVS-34248

Change-Id: I8b4c899568f06886354d66f1a1462141a557d3da
Reviewed-on: https://gerrit.instructure.com/99225
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2017-01-10 20:52:15 +00:00
Cody Cutrer adf329b5f0 improve autoextend to hook into ActiveSupport
refs CNVS-33695

this allows immediate detection of modules that came from autoloading,
and also allows delaying calling your extension until the class
is fully loaded if desired (to call a method on the base class, for
example)

Change-Id: I2ddd2055e3cf184d3ee149f114da7ec93bd0ead8
Reviewed-on: https://gerrit.instructure.com/97928
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2016-12-20 20:23:26 +00:00
Cody Cutrer 011f78b53a remove old autoextend API
including autoextension of methods - use prepend!

Change-Id: I073dcf4324a92e6cf14360d77fa59b1a6a4a1588
Reviewed-on: https://gerrit.instructure.com/56479
Tested-by: Jenkins
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2015-06-17 19:48:45 +00:00
Cody Cutrer 772105314f allow autoextend target to be an actual module
sometimes there's no point in delay loading the extension

Change-Id: I0b758789f5d9985381cd6b293946312e4d3a04ac
Reviewed-on: https://gerrit.instructure.com/56347
Tested-by: Jenkins
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2015-06-15 16:11:19 +00:00
Cody Cutrer 387a0f05c1 fix an order-of-inclusion problem with Autoextend on modules
Change-Id: I84a2a5bda44cd38236bed907200ba7b42a51bc5b
Reviewed-on: https://gerrit.instructure.com/56253
Tested-by: Jenkins
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2015-06-12 18:27:02 +00:00
Cody Cutrer 9db90e3f32 improve Autoextend
use prepend, and do a best effort hook of modules

Change-Id: I7c636d3bfaf332cf7d2faebf62abeffed1659335
Reviewed-on: https://gerrit.instructure.com/56042
Tested-by: Jenkins
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2015-06-11 15:52:08 +00:00
Cody Cutrer bd52b0a491 fix autoextend for ruby 1.9
const_get in 1.9 doesn't support nested constants

Change-Id: I1f511697b44846f7b8c9714f8bf84adaf42591bf
Reviewed-on: https://gerrit.instructure.com/52054
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2015-04-13 21:11:08 +00:00
Cody Cutrer a424a91f97 add autoextend gem for plugins to easily add functionality to canvas
closes CNVS-14263

Change-Id: If2fb80e776662cae1fe56dd9e5e550c50f6accd8
Reviewed-on: https://gerrit.instructure.com/51654
Tested-by: Jenkins
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2015-04-13 18:25:50 +00:00