null 0.1 → 0.1.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.
Files changed (5) hide show
  1. data/lib/null.rb +13 -3
  2. data/test/null.rb +12 -0
  3. data.tar.gz.sig +2 -2
  4. metadata +31 -44
  5. metadata.gz.sig +0 -0
data/lib/null.rb CHANGED
@@ -24,6 +24,11 @@ class Object
24
24
  self
25
25
  end
26
26
 
27
+ # +void+, +nil+, and +null+ return +null+; everything else returns +self+.
28
+ def to_null?()
29
+ self
30
+ end
31
+
27
32
  # +obj.tap?()+ is equivalent to +obj.tap()+ unless +obj+ is an instance of
28
33
  # NullClass, in which case a block must still be given, but will not be
29
34
  # executed.
@@ -53,9 +58,10 @@ end
53
58
 
54
59
  class NilClass
55
60
  include Falsiness
56
- def &(obj) false end
57
- def |(obj) !!obj end
58
- def ^(obj) !!obj end
61
+ def &(obj) false end
62
+ def |(obj) !!obj end
63
+ def ^(obj) !!obj end
64
+ def to_null?() null end
59
65
  end
60
66
 
61
67
  class FalseClass
@@ -92,6 +98,9 @@ module NillishConversions
92
98
  # +nil+
93
99
  def to_nil?() nil end
94
100
 
101
+ # +null+
102
+ def to_null?() null end
103
+
95
104
  # +nil+
96
105
  def to_param() nil end
97
106
 
@@ -137,6 +146,7 @@ class NullClass
137
146
  def to_nil?() nil end # :nodoc:
138
147
  def inspect() 'null' end # +"null"+
139
148
  def present?() false end # :nodoc:
149
+ def to_null?() null end # :nodoc:
140
150
 
141
151
  # Require a block, but don't use it; then return +self+.
142
152
  def tap? # :nodoc:
data/test/null.rb CHANGED
@@ -116,4 +116,16 @@ class NullTest < Test::Unit::TestCase
116
116
  assert_equal(expected, real)
117
117
  end
118
118
  end
119
+
120
+ def test_to_null
121
+ [nil, null, void].each do |obj|
122
+ assert_equal(null, obj.to_null?)
123
+ end
124
+
125
+ TRUTHY_TEST_OBJECTS.each do |obj|
126
+ assert_equal(obj, obj.to_null?)
127
+ end
128
+
129
+ assert_equal(false, false.to_null?)
130
+ end
119
131
  end
data.tar.gz.sig CHANGED
@@ -1,2 +1,2 @@
1
- �'a���"��X�b�!�qc�P{,���]aR�Н���n����DB��DKX�%�R��o�0�E�|�� N�~��?��|�"�������z�<��&q��(檦%�_ יK4���Ji��A*�<��Y*�Mdm�@�J>9��_����9W8@��%�r�]u -r�?(<HJ*��;y`�ƅ�"1�-��w�O,wa��DŽs
2
- 6iP����id�\\�,6���\����4_��c�[f�����
1
+ Z����c�S�Hv���gQ1LK���H�J��p��R8=1��j ��f�!Q���4�3|$דC���<�Q{쓇��ĭr&�)�&�o��\���Q��Ѩ3��;�}��Qun�Zy��5��K�屇.6o���LI
2
+ TRk�|�
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: 'null'
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.1'
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,48 +9,35 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain:
12
- - ! '-----BEGIN CERTIFICATE-----
13
-
14
- MIIDQDCCAiigAwIBAgIBADANBgkqhkiG9w0BAQUFADBGMRgwFgYDVQQDDA90aGUu
15
-
16
- bWFnaWNhbC5rYXQxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixk
17
-
18
- ARkWA2NvbTAeFw0xMTA4MjEyMjMyMDFaFw0xMjA4MjAyMjMyMDFaMEYxGDAWBgNV
19
-
20
- BAMMD3RoZS5tYWdpY2FsLmthdDEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYK
21
-
22
- CZImiZPyLGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
23
-
24
- pBt20nwjs5W03djpRN6FAbpiio286NHMTk6HhmjV6GZKOi5ZUX5onTnKUg2Vc35z
25
-
26
- /nK+aIPReyRfBgIcfSjhoXh1A1Dp+2laNgTtU/3eMupruatgORAPCSaG9Ns+HSyR
27
-
28
- vySbz1QUrwvlvF0qkhhApNQ6dsLl2LMOV3QcluY+Y3CVccOWOSHdQcnAbPuzM9Hf
29
-
30
- 4ChI4OGL7+DwLA5OK2S5uewRAa2iLkJSN0WugnQlJqMT59GRaqTDOtnYQpiyKEBy
31
-
32
- QjVPO4LNk7iDsJP22YBrveIzm8/YYRBTU4LTHMEMOyCszrYqD2S1Lwp2rtCJzQCl
33
-
34
- BA0LtBKrZl5mwZm7qyj+TwIDAQABozkwNzAJBgNVHRMEAjAAMB0GA1UdDgQWBBSm
35
-
36
- s5arhjp61kmGl6wsmLYkqerdqDALBgNVHQ8EBAMCBLAwDQYJKoZIhvcNAQEFBQAD
37
-
38
- ggEBAA6cQNQMOPRy4yrj7Nh5Mb9qq8t/8ho/JQvjzVof9qRd+kfKrOoOhXfEO+Rm
39
-
40
- sWcaOnBCVC4DnZuNDSLygVhCDtMnHjg/JsfO/GBF/QlNTJOO1jkoQiS6w0KARlBm
41
-
42
- cpXaWg/oMtXJ2PaUga6WkNeXYf9Mad36P4yuGQScjs+WkUUy7DNZvTGReIcCWOR8
43
-
44
- jteSvvCMobQKGr2DfFOU9Jiddh2FPpz/KOM2ijzwsVNUMUr7R58LoCnQZrZ/YaRW
45
-
46
- ob6QnVgwqu5SUAKQxlFJ/aKlPMj735z8EogaZC1ZHgg3vkgGGyu57N/8BDDG0TzC
47
-
48
- Zn3u2leVae/fJ03zYGArhuJKPgc=
49
-
50
- -----END CERTIFICATE-----
51
-
52
- '
53
- date: 2012-02-01 00:00:00.000000000 Z
12
+ - !binary |-
13
+ LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURRRENDQWlpZ0F3SUJB
14
+ Z0lCQURBTkJna3Foa2lHOXcwQkFRVUZBREJHTVJnd0ZnWURWUVFEREE5MGFH
15
+ VXUKYldGbmFXTmhiQzVyWVhReEZUQVRCZ29Ka2lhSmsvSXNaQUVaRmdWbmJX
16
+ RnBiREVUTUJFR0NnbVNKb21UOGl4awpBUmtXQTJOdmJUQWVGdzB4TVRBNE1q
17
+ RXlNak15TURGYUZ3MHhNakE0TWpBeU1qTXlNREZhTUVZeEdEQVdCZ05WCkJB
18
+ TU1EM1JvWlM1dFlXZHBZMkZzTG10aGRERVZNQk1HQ2dtU0pvbVQ4aXhrQVJr
19
+ V0JXZHRZV2xzTVJNd0VRWUsKQ1pJbWlaUHlMR1FCR1JZRFkyOXRNSUlCSWpB
20
+ TkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQQpwQnQyMG53
21
+ anM1VzAzZGpwUk42RkFicGlpbzI4Nk5ITVRrNkhobWpWNkdaS09pNVpVWDVv
22
+ blRuS1VnMlZjMzV6Ci9uSythSVBSZXlSZkJnSWNmU2pob1hoMUExRHArMmxh
23
+ TmdUdFUvM2VNdXBydWF0Z09SQVBDU2FHOU5zK0hTeVIKdnlTYnoxUVVyd3Zs
24
+ dkYwcWtoaEFwTlE2ZHNMbDJMTU9WM1FjbHVZK1kzQ1ZjY09XT1NIZFFjbkFi
25
+ UHV6TTlIZgo0Q2hJNE9HTDcrRHdMQTVPSzJTNXVld1JBYTJpTGtKU04wV3Vn
26
+ blFsSnFNVDU5R1JhcVRET3RuWVFwaXlLRUJ5ClFqVlBPNExOazdpRHNKUDIy
27
+ WUJydmVJem04L1lZUkJUVTRMVEhNRU1PeUNzenJZcUQyUzFMd3AycnRDSnpR
28
+ Q2wKQkEwTHRCS3JabDVtd1ptN3F5aitUd0lEQVFBQm96a3dOekFKQmdOVkhS
29
+ TUVBakFBTUIwR0ExVWREZ1FXQkJTbQpzNWFyaGpwNjFrbUdsNndzbUxZa3Fl
30
+ cmRxREFMQmdOVkhROEVCQU1DQkxBd0RRWUpLb1pJaHZjTkFRRUZCUUFECmdn
31
+ RUJBQTZjUU5RTU9QUnk0eXJqN05oNU1iOXFxOHQvOGhvL0pRdmp6Vm9mOXFS
32
+ ZCtrZktyT29PaFhmRU8rUm0Kc1djYU9uQkNWQzREblp1TkRTTHlnVmhDRHRN
33
+ bkhqZy9Kc2ZPL0dCRi9RbE5USk9PMWprb1FpUzZ3MEtBUmxCbQpjcFhhV2cv
34
+ b010WEoyUGFVZ2E2V2tOZVhZZjlNYWQzNlA0eXVHUVNjanMrV2tVVXk3RE5a
35
+ dlRHUmVJY0NXT1I4Cmp0ZVN2dkNNb2JRS0dyMkRmRk9VOUppZGRoMkZQcHov
36
+ S09NMmlqendzVk5VTVVyN1I1OExvQ25RWnJaL1lhUlcKb2I2UW5WZ3dxdTVT
37
+ VUFLUXhsRkovYUtsUE1qNzM1ejhFb2dhWkMxWkhnZzN2a2dHR3l1NTdOLzhC
38
+ RERHMFR6QwpabjN1MmxlVmFlL2ZKMDN6WUdBcmh1SktQZ2M9Ci0tLS0tRU5E
39
+ IENFUlRJRklDQVRFLS0tLS0K
40
+ date: 2012-07-29 00:00:00.000000000 Z
54
41
  dependencies: []
55
42
  description: null is null.
56
43
  email: the.magical.kat@gmail.com
@@ -80,7 +67,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
80
67
  version: '0'
81
68
  requirements: []
82
69
  rubyforge_project:
83
- rubygems_version: 1.8.10
70
+ rubygems_version: 1.8.24
84
71
  signing_key:
85
72
  specification_version: 3
86
73
  summary: null is a Null Object.
metadata.gz.sig CHANGED
Binary file