mirror of
https://github.com/jbranchaud/til
synced 2026-01-20 23:48:02 +00:00
Compare commits
2 Commits
b604d696f0
...
89a645a42a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
89a645a42a | ||
|
|
00232403f7 |
@@ -10,7 +10,7 @@ pairing with smart people at Hashrocket.
|
|||||||
|
|
||||||
For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186).
|
For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186).
|
||||||
|
|
||||||
_1223 TILs and counting..._
|
_1225 TILs and counting..._
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -749,6 +749,7 @@ _1223 TILs and counting..._
|
|||||||
- [Get ActiveRecord Attribute Directly From Database](rails/get-active-record-attribute-directly-from-database.md)
|
- [Get ActiveRecord Attribute Directly From Database](rails/get-active-record-attribute-directly-from-database.md)
|
||||||
- [Get An Array Of Values From The Database](rails/get-an-array-of-values-from-the-database.md)
|
- [Get An Array Of Values From The Database](rails/get-an-array-of-values-from-the-database.md)
|
||||||
- [Get An Empty ActiveRecord Relation](rails/get-an-empty-activerecord-relation.md)
|
- [Get An Empty ActiveRecord Relation](rails/get-an-empty-activerecord-relation.md)
|
||||||
|
- [Get Help With A Rails App Update](rails/get-help-with-a-rails-app-update.md)
|
||||||
- [Get The Column Names For A Model](rails/get-the-column-names-for-a-model.md)
|
- [Get The Column Names For A Model](rails/get-the-column-names-for-a-model.md)
|
||||||
- [Get The Current Time](rails/get-the-current-time.md)
|
- [Get The Current Time](rails/get-the-current-time.md)
|
||||||
- [Grab A Random Record From The Database](rails/grab-a-random-record-from-the-database.md)
|
- [Grab A Random Record From The Database](rails/grab-a-random-record-from-the-database.md)
|
||||||
@@ -1000,6 +1001,7 @@ _1223 TILs and counting..._
|
|||||||
- [Limit Split](ruby/limit-split.md)
|
- [Limit Split](ruby/limit-split.md)
|
||||||
- [List The Running Ruby Version](ruby/list-the-running-ruby-version.md)
|
- [List The Running Ruby Version](ruby/list-the-running-ruby-version.md)
|
||||||
- [Listing Local Variables](ruby/listing-local-variables.md)
|
- [Listing Local Variables](ruby/listing-local-variables.md)
|
||||||
|
- [Make An Executable Ruby Script](ruby/make-an-executable-ruby-script.md)
|
||||||
- [Map With Index Over An Array](ruby/map-with-index-over-an-array.md)
|
- [Map With Index Over An Array](ruby/map-with-index-over-an-array.md)
|
||||||
- [Mock Method Chain Calls With RSpec](ruby/mock-method-chain-calls-with-rspec.md)
|
- [Mock Method Chain Calls With RSpec](ruby/mock-method-chain-calls-with-rspec.md)
|
||||||
- [Mocking Requests With Partial URIs Using Regex](ruby/mocking-requests-with-partial-uris-using-regex.md)
|
- [Mocking Requests With Partial URIs Using Regex](ruby/mocking-requests-with-partial-uris-using-regex.md)
|
||||||
|
|||||||
29
rails/get-help-with-a-rails-app-update.md
Normal file
29
rails/get-help-with-a-rails-app-update.md
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# Get Help With A Rails App Update
|
||||||
|
|
||||||
|
Rails version upgrades can be pretty involved. The ecosystem and the framework
|
||||||
|
are under constant evolution. While each patch version will stay reliably
|
||||||
|
stable, as soon as you go to do a minor or major upgrade (which you should stay
|
||||||
|
on top of), you'll have lots to consider.
|
||||||
|
|
||||||
|
Rails helps with this via the `app:update` rake task.
|
||||||
|
|
||||||
|
When run, it will prompt you with a series of files that it wants to change.
|
||||||
|
For each one you'll have some options.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ rails app:update
|
||||||
|
|
||||||
|
Overwrite my-app/config/boot.rb? (enter "h" for help) [Ynaqdhm] h
|
||||||
|
Y - yes, overwrite
|
||||||
|
n - no, do not overwrite
|
||||||
|
a - all, overwrite this and all others
|
||||||
|
q - quit, abort
|
||||||
|
d - diff, show the differences between the old and the new
|
||||||
|
h - help, show this help
|
||||||
|
m - merge, run merge tool
|
||||||
|
```
|
||||||
|
|
||||||
|
Start by using `d` to see a diff of the changes. If it's small and doesn't
|
||||||
|
overwrite important, existing settings, then you can use `y` to accept them.
|
||||||
|
For a lot of these files the changes will be too aggressive. So side-by-side
|
||||||
|
with the diff, update the file manually. Then use `n` to go to the next update.
|
||||||
38
ruby/make-an-executable-ruby-script.md
Normal file
38
ruby/make-an-executable-ruby-script.md
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# Make An Executable Ruby Script
|
||||||
|
|
||||||
|
In a unix environment with Ruby available, I can make a Ruby script. To do this
|
||||||
|
I stick some code in a Ruby file, like `database_url.rb`.
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
result = `heroku pg:credentials:url DATABASE_URL --app my-app`
|
||||||
|
puts result.split("\n")[2].strip
|
||||||
|
```
|
||||||
|
|
||||||
|
And then execute that file with `ruby`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ruby database_url.rb
|
||||||
|
```
|
||||||
|
|
||||||
|
I can instead make an executable file that doesn't need to be explicitly
|
||||||
|
invoked with the `ruby` command. To do this, I need to prefix my file with a
|
||||||
|
[shebang](https://unix.stackexchange.com/a/87600/5916) for
|
||||||
|
[`ruby`](https://devcenter.heroku.com/articles/ruby-binstub-shebang).
|
||||||
|
|
||||||
|
And I'll even just call the file `database_url` now, no file suffix.
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
result = `heroku pg:credentials:url DATABASE_URL --app my-app`
|
||||||
|
puts result.split("\n")[2].strip
|
||||||
|
```
|
||||||
|
|
||||||
|
When executed, this script will see the first line and understand that it needs
|
||||||
|
to execute the rest of the script using `ruby` as the interpreter.
|
||||||
|
|
||||||
|
Like any other executable, you can call it as is, like so:
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
$ database_url
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user