activerecord_squared 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +41 -0
- data/Rakefile +13 -0
- data/lib/activerecord_squared.rb +7 -0
- data/lib/activerecord_squared/activerecord_ext.rb +15 -0
- data/lib/activerecord_squared/railtie.rb +4 -0
- data/lib/activerecord_squared/version.rb +3 -0
- metadata +65 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 7368d7970a209d6b71cfa873affb3008ffca8021ad09fe3562876680c2cba15c
|
4
|
+
data.tar.gz: 7f17f52c409bacc250b09b42a4352712555b5aa5bd67231a9919587a480d8911
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 317f033959b5f586b75eb7a72bbe4af848fa8af652aeba80e2f3c4f26e5ec28ec8bd8278e39c2f0b016ce07274bde3e57f10dcb134c9e53b042063252e967d4c
|
7
|
+
data.tar.gz: f86d6456c4d689ed33497ba4364e1b25a92e5dad692e5d9fa80fd0a613a631b18478ef4ea371b010c4c3924d469d939e0e1fd962ae4d18b661c259a3bff5e672
|
data/README.md
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
# ActiverecordSquared
|
2
|
+
Tired of typing ```SomeModel.find_by(id: 12)```? Yeah man me too.
|
3
|
+
|
4
|
+
Even ```SomeModel.find(12)``` still a bit too long?
|
5
|
+
|
6
|
+
Wonder why you have to have 2 different methods for find and find_by, when it ought to be reasonably obvious which is called purely by the argument??
|
7
|
+
|
8
|
+
Man do we have the solution for you. Introducing...ActiveRecord...squared!...the gem that adds a class-level square bracket method to ActiveRecord objects!
|
9
|
+
|
10
|
+
What does it do? Now you can replace that with ```SomeModel[12]```. Also, you can, with zero added effort say: ```SomeModel[email_address: 'man_email_sucks@example.com']```! Revolutionary! You can do ```SomeModel[params[:id].present?``` - and ... even if the param is nil, it doesn't error out. You can even do a ```SomeModel[]``` to get everything. Stuff you could already do, but ... esier and more elegant! Great!
|
11
|
+
|
12
|
+
## Installation
|
13
|
+
Add this line to your application's Gemfile:
|
14
|
+
|
15
|
+
```ruby
|
16
|
+
gem 'activerecord_squared'
|
17
|
+
```
|
18
|
+
|
19
|
+
And then execute:
|
20
|
+
```bash
|
21
|
+
$ bundle
|
22
|
+
```
|
23
|
+
|
24
|
+
Or install it yourself as:
|
25
|
+
```bash
|
26
|
+
$ gem install activerecord_squared
|
27
|
+
```
|
28
|
+
|
29
|
+
## Usage
|
30
|
+
There are 2 main modes for this, and they are based on what is passed in the bracket:
|
31
|
+
|
32
|
+
Singular Identifier
|
33
|
+
: Either a string or integer (most likely) - similar to calling ```SomeModel.where()```. This is the default mode. One of the more interesting options here is the ability to call ```SomeModel[params[:id]]``` - with nil as the id, and get ... nil. Not an error, like you'd get with find, but nil.
|
34
|
+
|
35
|
+
Finder Hash
|
36
|
+
: Similar to calling ```SomeModel.find_by()```.
|
37
|
+
|
38
|
+
Of course, as this is ActiveRecord, they all return activerecord queries, not actual objects...and can thus be chained appropriately (though ... it's not terribly recommended - this is a shorthand - if you're gonna chain stuff, you probably want to be explicit).
|
39
|
+
|
40
|
+
## License
|
41
|
+
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
data/Rakefile
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
module ActiveRecord
|
2
|
+
class Base
|
3
|
+
def self.[](input)
|
4
|
+
case input
|
5
|
+
when nil
|
6
|
+
# Specifically enables ```SomeModel[nil]``` to not error out.
|
7
|
+
return nil
|
8
|
+
when ::Hash
|
9
|
+
return self.where(input)
|
10
|
+
else
|
11
|
+
return self.find(input)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
metadata
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: activerecord_squared
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Matthew Schultz
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-06-01 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 4.0.3
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 4.0.3
|
27
|
+
description: Adds a [] method at the class level for activerecord objects.
|
28
|
+
email:
|
29
|
+
executables: []
|
30
|
+
extensions: []
|
31
|
+
extra_rdoc_files: []
|
32
|
+
files:
|
33
|
+
- README.md
|
34
|
+
- Rakefile
|
35
|
+
- lib/activerecord_squared.rb
|
36
|
+
- lib/activerecord_squared/activerecord_ext.rb
|
37
|
+
- lib/activerecord_squared/railtie.rb
|
38
|
+
- lib/activerecord_squared/version.rb
|
39
|
+
homepage: https://github.com/MatthewSchultz/activerecord_squared
|
40
|
+
licenses:
|
41
|
+
- MIT
|
42
|
+
metadata:
|
43
|
+
homepage_uri: https://github.com/MatthewSchultz/activerecord_squared
|
44
|
+
source_code_uri: https://github.com/MatthewSchultz/activerecord_squared
|
45
|
+
changelog_uri: https://github.com/MatthewSchultz/activerecord_squared/blob/main/CHANGELOG.md
|
46
|
+
post_install_message:
|
47
|
+
rdoc_options: []
|
48
|
+
require_paths:
|
49
|
+
- lib
|
50
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.9.3
|
55
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '0'
|
60
|
+
requirements: []
|
61
|
+
rubygems_version: 3.1.2
|
62
|
+
signing_key:
|
63
|
+
specification_version: 4
|
64
|
+
summary: A shortcut for activerecord find.
|
65
|
+
test_files: []
|