docbrown/config
Jeremy Friesen 6fb7361552
Extracting listing routes (#16338)
The fundamental goal in this refactor is to make it easier to disable the
Listings feature set.  By extracting a routes file (via the `draw` method [see
implementation details][1]), we can more easily disable those routes _en
masse_.  This "crease in the code" could mean that we wouldn't need to update
the controller action logic.  An update of that logic might mean going into
each controller action related to listing and adding a conditional for render
404 when listing is disabled.

Now, on to why this should work (not I did not open the application and click
around, but instead went with a "let the framework help me" mindset).

I believe that this should work; though there's a caveat†.  Here's why I
believe this will work for extracting the listing routes:

Before making changes I ran the following:

```sh
$ rails routes | sort > original-routes.txt
```

Let's break that down:

- `rails routes` :: renders the routing table for Rails; this is how
  Rails converts routes to the magic of stuff like `article_path(:id)`
- `| sort` :: to sort the results
- `> original-routes.txt` :: to write the results into a file.

Then I made the changes and ran the following:

```sh
$ rails routes | sort > updated-listing-routes.txt
```

And finally, I ran:

```sh
$ diff updated-routes.txt original-routes.txt
```

The results were as follows:

```sh
500c500
<                     api_organization_listings GET      (/locale/:locale)/api/organizations/:organization_username/listings(.:format)          api/v0/organizations#listings {:locale=>nil, :format=>"json", :to=>"organizations#listings"}
---
>                     api_organization_listings GET      (/locale/:locale)/api/organizations/:organization_username/listings(.:format)          api/v0/organizations#listings {:locale=>nil, :format=>"json"}
```

Note the only difference is that the above two lines, one has
`:to=>"organizations#listings"` and the other does not.  However, the
`./spec/requests/api/v0/organizations_spec.rb` exercises the route; so I
assume a hiccup/foible in the route reporting.

There was no difference between the before and after files.

† Caveat: if for some reason the order of the routes mattered, this will
have messed that up.  I don't think that is the case, but we shall see.

Related to forem/rfcs#291 and #16335
2022-01-28 10:49:52 -05:00
..
environments Don't load ActiveJob railtie (#16074) 2022-01-12 22:29:54 +07:00
fastly/snippets Disallow null user agent and obsolete browser (#15817) 2021-12-17 15:02:30 -05:00
initializers Ensure arguments to perform_async are json safe (#16285) 2022-01-25 18:07:40 -06:00
locales Added search feature to tags index to search all tags (#16292) 2022-01-28 08:00:11 -05:00
routes Extracting listing routes (#16338) 2022-01-28 10:49:52 -05:00
webpack Added the babel-inline-react-svg plugin (#15461) 2021-11-23 12:24:50 -05:00
application.rb Enable use_cookies_with_metadata option (#16087) 2022-01-13 10:27:19 -05:00
blazer.yml Increase Blazer's timeout (#15427) 2021-11-18 14:50:18 -05:00
boot.rb Upgrade to Rails 6.0 (#7658) 2020-06-04 11:54:25 +02:00
cable.yml Upgrade Rails to 5.2.3 (#1408) 2019-04-03 13:08:59 -04:00
database.yml Update database config (#11308) 2021-02-23 17:41:34 -05:00
environment.rb Rails 6: enable zeitwerk autoloader (#8766) 2020-06-22 16:27:55 +02:00
field_test.yml Feed Experiment round 5: Factor in sum of tag points (#16272) 2022-01-25 17:08:31 -05:00
i18n-tasks.yml Remove Doorkeeper gem (#15749) 2021-12-21 12:29:58 +07:00
puma.rb Upgrade Rails to 6.1.3.1 (#11333) 2021-04-05 10:39:48 -04:00
routes.rb Extracting listing routes (#16338) 2022-01-28 10:49:52 -05:00
schedule.yml Remove hardcoded /badge page that is DEV-only ✂️✂️✂️ (#16303) 2022-01-27 13:29:05 -05:00
secrets.yml Initial commit 2018-02-28 16:11:08 -05:00
sidekiq.yml setup sidekiq queues for different priority jobs (#5300) [deploy] 2019-12-30 10:16:52 -06:00
spring.rb Upgrade Rails to 6.1.3.1 (#11333) 2021-04-05 10:39:48 -04:00
storage.yml Upgrade Rails to 5.2.3 (#1408) 2019-04-03 13:08:59 -04:00
webpacker.yml Moved from resolved_paths (deprecated) to additional_paths. (#9982) 2020-08-24 16:08:16 -04:00