wideopenspaces-wicked 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION.yml ADDED
@@ -0,0 +1,4 @@
1
+ ---
2
+ :minor: 1
3
+ :patch: 3
4
+ :major: 0
data/lib/wicked.rb ADDED
@@ -0,0 +1,99 @@
1
+ $:.unshift File.dirname(__FILE__)
2
+
3
+ gem 'andand'
4
+ require 'andand'
5
+
6
+ module Wicked
7
+ # Got it? Wicked Good!
8
+ module Good
9
+
10
+ # Aliases for 'andand'
11
+ # if phone = user.et.number; .... ; end
12
+ alias_method :et, :andand # Latin for 'and'
13
+
14
+ # if phone = user.ask.number ....
15
+ alias_method :ask, :andand
16
+
17
+ # Alias for andand that's meaningful when checking booleans;
18
+ # this is the positive version of aint.
19
+ # "don't fix it" unless it.is.broken?
20
+ # Returns nil if 'it' is broken, so this is safer than:
21
+ # "don't fix it" unless it.broken?
22
+ alias_method :is, :andand
23
+
24
+ # Guarded method negation in the style of andand
25
+ # Returns the logical opposite of the method invoked on the receiver
26
+ # receiver.aint.method
27
+ # Traps NoMethodError and returns nil if receiver is nil
28
+ # or the method does not exist on the receiver.
29
+ #
30
+ # [].aint.empty?
31
+ # => false
32
+ # [].aint.nil?
33
+ # => true
34
+ # it.aint.broken?
35
+ # => false
36
+ #
37
+ # Don't be a doofus, use this wisely, on boolean methods only
38
+ # if you know what's good for you.
39
+
40
+ def aint (p = nil)
41
+ NotReturningMe.new(self)
42
+ end
43
+
44
+ # A few stylistic variations on aint
45
+ alias_method :isnt, :aint
46
+ alias_method :is_not, :aint
47
+ alias_method :notnot, :aint
48
+
49
+ # Hehe
50
+ alias_method :aintnot, :andand
51
+ # As in 'User, eh? Wot's yer number?'
52
+ # if phone = user.eh?.number; .... ; end
53
+ alias_method :eh?, :andand
54
+ end
55
+
56
+ end
57
+
58
+ class Object
59
+ include Wicked::Good
60
+ end
61
+
62
+ unless Module.constants.include?('BlankSlate')
63
+ if Module.constants.include?('BasicObject')
64
+ module Wicked
65
+ class BlankSlate < BasicObject
66
+ end
67
+ end
68
+ else
69
+ module Wicked
70
+ class BlankSlate
71
+ def self.wipe
72
+ instance_methods.reject { |m| m =~ /^__/ }.each { |m| undef_method m }
73
+ end
74
+ def initialize
75
+ BlankSlate.wipe
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
81
+
82
+ module Wicked
83
+
84
+ # A proxy that returns the opposite of whatever you ask it.
85
+ class NotReturningMe < BlankSlate
86
+ def initialize(me)
87
+ super()
88
+ @me = me
89
+ end
90
+
91
+ def method_missing(sym, *args, &block)
92
+ begin
93
+ !@me.__send__(sym, *args, &block)
94
+ rescue NoMethodError
95
+ nil
96
+ end
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,10 @@
1
+ require 'rubygems'
2
+ require 'test/unit'
3
+ require 'shoulda'
4
+ require 'mocha'
5
+
6
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
7
+ require 'wicked'
8
+
9
+ class Test::Unit::TestCase
10
+ end
@@ -0,0 +1,7 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+
3
+ class WickedTest < Test::Unit::TestCase
4
+ should "probably rename this file and start testing for real" do
5
+ flunk "hey buddy, you should probably rename this file and start testing for real"
6
+ end
7
+ end
metadata ADDED
@@ -0,0 +1,65 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: wideopenspaces-wicked
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.3
5
+ platform: ruby
6
+ authors:
7
+ - Jacob Stetser
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-01-31 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: andand
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.3.1
23
+ version:
24
+ description: "Wicked Good extensions to Object in the vein of #andand"
25
+ email: jake@wideopenspac.es
26
+ executables: []
27
+
28
+ extensions: []
29
+
30
+ extra_rdoc_files: []
31
+
32
+ files:
33
+ - VERSION.yml
34
+ - lib/wicked.rb
35
+ - test/test_helper.rb
36
+ - test/wicked_test.rb
37
+ has_rdoc: true
38
+ homepage: http://github.com/wideopenspaces/wicked
39
+ post_install_message:
40
+ rdoc_options:
41
+ - --inline-source
42
+ - --charset=UTF-8
43
+ require_paths:
44
+ - lib
45
+ required_ruby_version: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: "0"
50
+ version:
51
+ required_rubygems_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: "0"
56
+ version:
57
+ requirements: []
58
+
59
+ rubyforge_project:
60
+ rubygems_version: 1.2.0
61
+ signing_key:
62
+ specification_version: 2
63
+ summary: "Wicked Good extensions to Object in the vein of #andand"
64
+ test_files: []
65
+