null_and_void 1.5.0 → 1.6.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 54e7461e16ef169494da8b6cef6de6545576bf0f
4
- data.tar.gz: 7a6d0b7b67f632407797355842a141dbecf3b76a
3
+ metadata.gz: cd57b6116b87debb496856ec08bfb61534b32736
4
+ data.tar.gz: ac78347d4f9623371d3793180bd38ca427244cce
5
5
  SHA512:
6
- metadata.gz: cfb6ae255abfb738c20fd7663b23bb4fd0df59191fc4af30be4dbc9405146931680daa9557ad8578f52bc519b651511b01002e50a58db86b69bb1550e19cf61b
7
- data.tar.gz: 8bdbea1907101836bf5e98decec3bc05a2d6532b478ea7a9b5853419a3954541193deb307840085b644b0b4dba2346bf85a2007cab54eb8fbfb3f1d3e44ca040
6
+ metadata.gz: ce07d944a7a2349de21ba76166f0815d4ed0cdca8b0ae107b8add0016a4c791b4f1f78433f587513cdcf367356c079ef1e4b63b370c61078af5306c0eb97cd98
7
+ data.tar.gz: 0fa946f52e6d6975cc2df4fccce0d1f1d4c94b02bfcae5be5f28d9d9eda14e8f8a381a0cc253c621932feaad156cd4df4cf9f844fc1bc51888f7447207c98464
checksums.yaml.gz.sig ADDED
Binary file
data.tar.gz.sig ADDED
Binary file
data/LICENSE.txt ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2010-2016 The Kompanee, Ltd
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
@@ -10,7 +10,7 @@ module NullAndVoid
10
10
  Complex(0)
11
11
  end
12
12
 
13
- alias_method :to_int, :to_i
13
+ alias to_int to_i
14
14
 
15
15
  def to_f
16
16
  0.0
@@ -28,7 +28,7 @@ module NullAndVoid
28
28
  []
29
29
  end
30
30
 
31
- alias_method :to_ary, :to_a
31
+ alias to_ary to_a
32
32
 
33
33
  def to_hash
34
34
  {}
@@ -50,6 +50,7 @@ module NullAndVoid
50
50
  ''
51
51
  end
52
52
 
53
+ # rubocop:disable Style/ExtraSpacing
53
54
  def to_model
54
55
  base_path = NullAndVoid::Inflections.demodulize(self.class.name)
55
56
  module_path = NullAndVoid::Inflections.deconstantize(self.class.name)
@@ -58,5 +59,6 @@ module NullAndVoid
58
59
 
59
60
  NullAndVoid::Inflections.constantize(source_model_path).new
60
61
  end
62
+ # rubocop:enable Style/ExtraSpacing
61
63
  end
62
64
  end
@@ -1,5 +1,6 @@
1
1
  # rubocop:disable Lint/AssignmentInCondition, Metrics/CyclomaticComplexity
2
2
  # rubocop:disable Metrics/LineLength, Metrics/PerceivedComplexity, Style/EachWithObject
3
+ # rubocop:disable Style/ExtraSpacing
3
4
  module NullAndVoid
4
5
  module Inflections
5
6
  def self.demodulize(path)
@@ -24,7 +25,7 @@ module Inflections
24
25
  # Remove the first blank element in case of '::ClassName' notation.
25
26
  names.shift if names.size > 1 && names.first.empty?
26
27
 
27
- names.reduce(Object) do |constant, name|
28
+ names.inject(Object) do |constant, name|
28
29
  if constant == Object
29
30
  constant.const_get(name)
30
31
  else
@@ -34,7 +35,7 @@ module Inflections
34
35
 
35
36
  # Go down the ancestors to check it it's owned
36
37
  # directly before we reach Object or the end of ancestors.
37
- constant = constant.ancestors.reduce do |const, ancestor|
38
+ constant = constant.ancestors.inject do |const, ancestor|
38
39
  break const if ancestor == Object
39
40
  break ancestor if ancestor.const_defined?(name, false)
40
41
  const
@@ -49,3 +50,4 @@ end
49
50
  end
50
51
  # rubocop:enable Lint/AssignmentInCondition, Metrics/CyclomaticComplexity
51
52
  # rubocop:enable Metrics/LineLength, Metrics/PerceivedComplexity, Style/EachWithObject
53
+ # rubocop:enable Style/ExtraSpacing
@@ -4,6 +4,7 @@ require 'null_and_void/null_object'
4
4
  module NullAndVoid
5
5
  module ModelSupport
6
6
  module ClassMethods
7
+ # rubocop:disable Style/ExtraSpacing
7
8
  def as_null_object
8
9
  base_path = NullAndVoid::Inflections.demodulize(name)
9
10
  module_path = NullAndVoid::Inflections.deconstantize(name)
@@ -14,6 +15,7 @@ module NullAndVoid
14
15
  rescue NameError
15
16
  NullAndVoid::NullObject.instance
16
17
  end
18
+ # rubocop:enable Style/ExtraSpacing
17
19
  end
18
20
 
19
21
  def as_null_object
@@ -7,11 +7,11 @@ require 'null_and_void/introspectable'
7
7
  module NullAndVoid
8
8
  module Nullified
9
9
  def self.included(base)
10
- base.send(:include, Singleton)
11
- base.send(:include, ::NullAndVoid::Stubbable)
12
- base.send(:include, ::NullAndVoid::Convertible)
13
- base.send(:include, ::NullAndVoid::Falsifiable)
14
- base.send(:include, ::NullAndVoid::Introspectable)
10
+ base.__send__(:include, Singleton)
11
+ base.__send__(:include, ::NullAndVoid::Stubbable)
12
+ base.__send__(:include, ::NullAndVoid::Convertible)
13
+ base.__send__(:include, ::NullAndVoid::Falsifiable)
14
+ base.__send__(:include, ::NullAndVoid::Introspectable)
15
15
  end
16
16
  end
17
17
  end
@@ -1,6 +1,14 @@
1
1
  module NullAndVoid
2
2
  module Persistable
3
+ module ClassMethods
4
+ def find(_id)
5
+ instance
6
+ end
7
+ end
8
+
3
9
  def id
10
+ return 1 if caller[1].include?('/globalid')
11
+
4
12
  nil
5
13
  end
6
14
 
@@ -35,5 +43,9 @@ module NullAndVoid
35
43
  def valid?
36
44
  true
37
45
  end
46
+
47
+ def self.included(base)
48
+ base.extend(ClassMethods)
49
+ end
38
50
  end
39
51
  end
@@ -1,3 +1,3 @@
1
1
  module NullAndVoid
2
- VERSION = '1.5.0'
2
+ VERSION = '1.6.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,37 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: null_and_void
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - jfelchner
8
8
  autorequire:
9
9
  bindir: bin
10
- cert_chain: []
11
- date: 2015-05-13 00:00:00.000000000 Z
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDrjCCApagAwIBAgIBATANBgkqhkiG9w0BAQUFADBOMRowGAYDVQQDDBFhY2Nv
14
+ dW50c19ydWJ5Z2VtczEbMBkGCgmSJomT8ixkARkWC3RoZWtvbXBhbmVlMRMwEQYK
15
+ CZImiZPyLGQBGRYDY29tMB4XDTE2MDQyNDAyNTEyM1oXDTE3MDQyNDAyNTEyM1ow
16
+ TjEaMBgGA1UEAwwRYWNjb3VudHNfcnVieWdlbXMxGzAZBgoJkiaJk/IsZAEZFgt0
17
+ aGVrb21wYW5lZTETMBEGCgmSJomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEB
18
+ BQADggEPADCCAQoCggEBANklzdaVeHtut6LTe/hrl6Krz2Z60InEbNb+TMG43tww
19
+ jBpWZrdU/SBkR3EYbTAQv/yGTuMHoVKGK2kDlFvdofW2hX0d14qPyYJUNYt+7VWE
20
+ 3UhPSxw1i6MxeU1QwfkIyaN8A5lj0225+rwI/mbplv+lSXPlJEroCQ9EfniZD4jL
21
+ URlrHWl/UejcQ32C1IzBwth3+nacrO1197v5nSdozFzQwm4groaggXn9F/WpThu+
22
+ MhcE4bfttwEjAfU3zAThyzOFoVPpACP+SwOuyPJSl02+9BiwzeAnFJDfge7+rsd5
23
+ 64W/VzBIklEKUZMmxZwr5DwpSXLrknBDtHLABG9Nr3cCAwEAAaOBljCBkzAJBgNV
24
+ HRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUP7v0f/qfa0LMrhkzHRI3l10X
25
+ LYIwLAYDVR0RBCUwI4EhYWNjb3VudHMrcnVieWdlbXNAdGhla29tcGFuZWUuY29t
26
+ MCwGA1UdEgQlMCOBIWFjY291bnRzK3J1YnlnZW1zQHRoZWtvbXBhbmVlLmNvbTAN
27
+ BgkqhkiG9w0BAQUFAAOCAQEASqdfJKMun1twosHfvdDH7Vgrb5VqX28qJ6MgnhjF
28
+ p+3HYTjYo/KMQqu78TegUFO5xQ4oumU0FTXADW0ryXZvUGV74M0zwqpFqeo8onII
29
+ lsVsWdMCLZS21M0uCQmcV+OQMNxL8jV3c0D3x9Srr9yO4oamW3seIdb+b9RfhmV2
30
+ ryr+NH8U/4xgzdJ4hWV4qk93nwigp4lwJ4u93XJ7Cdyw7itvaEPnn8HpCfzsiLcw
31
+ QwSfDGz6+zsImi5N3UT71+mk7YcviQSgvMRl3VkAv8MZ6wcJ5SQRpf9w0OeFH6Ln
32
+ nNbCoHiYeXX/lz/M6AIbxDIZZTwxcyvF7bdrQ2fbH5MsfQ==
33
+ -----END CERTIFICATE-----
34
+ date: 2016-05-12 00:00:00.000000000 Z
12
35
  dependencies:
13
36
  - !ruby/object:Gem::Dependency
14
37
  name: rspec
@@ -44,7 +67,7 @@ executables: []
44
67
  extensions: []
45
68
  extra_rdoc_files: []
46
69
  files:
47
- - LICENSE
70
+ - LICENSE.txt
48
71
  - README.md
49
72
  - Rakefile
50
73
  - lib/null_and_void.rb
@@ -69,7 +92,8 @@ files:
69
92
  - spec/nullified_spec.rb
70
93
  - spec/stubbable_spec.rb
71
94
  homepage: https://github.com/jfelchner/null_and_void
72
- licenses: []
95
+ licenses:
96
+ - MIT
73
97
  metadata: {}
74
98
  post_install_message:
75
99
  rdoc_options: []
@@ -87,7 +111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
87
111
  version: '0'
88
112
  requirements: []
89
113
  rubyforge_project:
90
- rubygems_version: 2.4.6
114
+ rubygems_version: 2.4.5.1
91
115
  signing_key:
92
116
  specification_version: 4
93
117
  summary: Easy Null Objects
@@ -101,3 +125,4 @@ test_files:
101
125
  - spec/null_object_spec.rb
102
126
  - spec/nullified_spec.rb
103
127
  - spec/stubbable_spec.rb
128
+ has_rdoc:
metadata.gz.sig ADDED
Binary file
data/LICENSE DELETED
@@ -1,22 +0,0 @@
1
- Copyright (c) 2013 Jeff Felchner
2
-
3
- MIT License
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining
6
- a copy of this software and associated documentation files (the
7
- "Software"), to deal in the Software without restriction, including
8
- without limitation the rights to use, copy, modify, merge, publish,
9
- distribute, sublicense, and/or sell copies of the Software, and to
10
- permit persons to whom the Software is furnished to do so, subject to
11
- the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be
14
- included in all copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.