wideopenspaces-wicked 0.2.0 → 0.3.1
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.
- data/VERSION.yml +2 -2
- data/lib/wicked.rb +42 -28
- metadata +29 -10
data/VERSION.yml
CHANGED
data/lib/wicked.rb
CHANGED
@@ -7,63 +7,77 @@ module Wicked
|
|
7
7
|
# Got it? Wicked Good!
|
8
8
|
module Good
|
9
9
|
|
10
|
-
#
|
11
|
-
# if
|
10
|
+
# Alias for 'andand' that reads like 'if user and number'
|
11
|
+
# if user.et.number...
|
12
12
|
alias_method :et, :andand # Latin for 'and'
|
13
13
|
|
14
|
-
#
|
14
|
+
# Alias for 'andand' that reads like 'if user, ask its number'
|
15
|
+
# if user.ask.number...
|
15
16
|
alias_method :ask, :andand
|
16
17
|
|
17
18
|
# Alias for andand that's meaningful when checking booleans;
|
18
19
|
# this is the positive version of aint.
|
19
20
|
# "don't fix it" unless it.is.broken?
|
20
|
-
|
21
|
-
|
22
|
-
|
21
|
+
alias_method :is, :andand
|
22
|
+
|
23
|
+
# :nodoc:
|
24
|
+
alias_method :aintnot, :andand
|
23
25
|
|
24
26
|
# Guarded method negation in the style of andand
|
25
27
|
# Returns the logical opposite of the method invoked on the receiver
|
26
|
-
#
|
27
|
-
# Traps NoMethodError and returns nil if receiver is nil
|
28
|
-
# or the method does not exist on the receiver.
|
28
|
+
# Returns nil if receiver is nil or doesn't have method.
|
29
29
|
#
|
30
|
-
# [].aint.empty?
|
31
|
-
# =>
|
32
|
-
#
|
33
|
-
# => true
|
34
|
-
# it.aint.broken?
|
35
|
-
# => false
|
30
|
+
# [].aint.empty? => false
|
31
|
+
# [].aint.nil? => true
|
32
|
+
# it.aint.broken? => false
|
36
33
|
#
|
37
|
-
# Don't be a doofus, use this wisely, on boolean methods only
|
38
|
-
# if you know what's good for you.
|
39
|
-
|
34
|
+
# Don't be a doofus, use this wisely, on boolean methods only if you know what's good for you.
|
40
35
|
def aint(p = nil)
|
41
36
|
NotReturningMe.new(self)
|
42
37
|
end
|
43
38
|
|
44
39
|
# A funny byproduct of using aint...
|
45
|
-
#
|
40
|
+
# nil.aint_nothin? => false
|
46
41
|
def aint_nothin?
|
47
42
|
self.aint.nil?
|
48
43
|
end
|
49
|
-
# See? You can laugh...
|
50
44
|
alias_method :aint_it_somethin?, :aint_nothin?
|
51
45
|
|
52
|
-
#
|
46
|
+
# nil.is_nothin? => true
|
53
47
|
def is_nothin?
|
54
48
|
!self.is.nil?
|
55
49
|
end
|
56
50
|
|
57
|
-
# A few stylistic variations on aint
|
51
|
+
# A few stylistic variations on aint for the grammatically uncreative ;)
|
52
|
+
# --
|
53
|
+
# 'andnot' is probably the closest analogue to 'andand' (and Ruby's
|
54
|
+
# syntax - && !), unless you want to write out 'andandnot' :)
|
55
|
+
alias_method :andnot, :aint
|
56
|
+
|
58
57
|
alias_method :isnt, :aint
|
59
58
|
alias_method :is_not, :aint
|
60
|
-
|
59
|
+
# Removed #notnot in favor of #andnot
|
60
|
+
|
61
|
+
# Just in case you can't keep your fingers off the Gs
|
62
|
+
alias_method :aint_nothing?, :aint_nothin?
|
63
|
+
alias_method :is_nothing?, :is_nothin?
|
61
64
|
|
62
|
-
|
63
|
-
|
64
|
-
#
|
65
|
-
#
|
66
|
-
|
65
|
+
|
66
|
+
|
67
|
+
# Are you reading my notes? Well, cool!
|
68
|
+
# I wrote this for my personal site -- jacob-stetser.com -- and thought
|
69
|
+
# it might be useful to other people, so I extracted it!
|
70
|
+
|
71
|
+
# Here's a few real-world uses:
|
72
|
+
# [Create or find a user, assign to 'user' and check if new record all in one line]
|
73
|
+
# if (user = User.find_or_initialize_by_email(self.author_email)).is.new_record? ... end
|
74
|
+
#
|
75
|
+
# [Safely simplify chained expressions] from:
|
76
|
+
# if @current_user and role = @current_user.role and role.admin?
|
77
|
+
# to:
|
78
|
+
# if @current_user.ask.role.is.admin?
|
79
|
+
#
|
80
|
+
# Wicked Sweet. Ciao!
|
67
81
|
end
|
68
82
|
|
69
83
|
end
|
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wideopenspaces-wicked
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 17
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 3
|
9
|
+
- 1
|
10
|
+
version: 0.3.1
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- Jacob Stetser
|
@@ -9,18 +15,24 @@ autorequire:
|
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
17
|
|
12
|
-
date: 2009-02-01 00:00:00
|
13
|
-
default_executable:
|
18
|
+
date: 2009-02-01 00:00:00 Z
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
16
21
|
name: andand
|
17
|
-
|
18
|
-
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
19
25
|
requirements:
|
20
26
|
- - ">="
|
21
27
|
- !ruby/object:Gem::Version
|
28
|
+
hash: 25
|
29
|
+
segments:
|
30
|
+
- 1
|
31
|
+
- 3
|
32
|
+
- 1
|
22
33
|
version: 1.3.1
|
23
|
-
|
34
|
+
type: :runtime
|
35
|
+
version_requirements: *id001
|
24
36
|
description: "Wicked Good extensions to Object in the vein of #andand"
|
25
37
|
email: jake@wideopenspac.es
|
26
38
|
executables: []
|
@@ -34,8 +46,9 @@ files:
|
|
34
46
|
- lib/wicked.rb
|
35
47
|
- test/test_helper.rb
|
36
48
|
- test/wicked_test.rb
|
37
|
-
has_rdoc: true
|
38
49
|
homepage: http://github.com/wideopenspaces/wicked
|
50
|
+
licenses: []
|
51
|
+
|
39
52
|
post_install_message:
|
40
53
|
rdoc_options:
|
41
54
|
- --inline-source
|
@@ -43,21 +56,27 @@ rdoc_options:
|
|
43
56
|
require_paths:
|
44
57
|
- lib
|
45
58
|
required_ruby_version: !ruby/object:Gem::Requirement
|
59
|
+
none: false
|
46
60
|
requirements:
|
47
61
|
- - ">="
|
48
62
|
- !ruby/object:Gem::Version
|
63
|
+
hash: 3
|
64
|
+
segments:
|
65
|
+
- 0
|
49
66
|
version: "0"
|
50
|
-
version:
|
51
67
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
52
69
|
requirements:
|
53
70
|
- - ">="
|
54
71
|
- !ruby/object:Gem::Version
|
72
|
+
hash: 3
|
73
|
+
segments:
|
74
|
+
- 0
|
55
75
|
version: "0"
|
56
|
-
version:
|
57
76
|
requirements: []
|
58
77
|
|
59
78
|
rubyforge_project:
|
60
|
-
rubygems_version: 1.2
|
79
|
+
rubygems_version: 1.7.2
|
61
80
|
signing_key:
|
62
81
|
specification_version: 2
|
63
82
|
summary: "Wicked Good extensions to Object in the vein of #andand"
|