abstract_type 0.0.1 → 0.0.2
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/config/flay.yml
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
---
|
2
|
-
threshold:
|
3
|
-
total_score:
|
2
|
+
threshold: 18
|
3
|
+
total_score: 35
|
data/lib/abstract_type.rb
CHANGED
@@ -32,7 +32,7 @@ module AbstractType
|
|
32
32
|
# @api public
|
33
33
|
def new(*)
|
34
34
|
if superclass.equal?(Object)
|
35
|
-
raise NotImplementedError, "#{
|
35
|
+
raise NotImplementedError, "#{inspect} is an abstract type"
|
36
36
|
else
|
37
37
|
super
|
38
38
|
end
|
@@ -90,9 +90,9 @@ module AbstractType
|
|
90
90
|
# @api private
|
91
91
|
def create_abstract_singleton_method(name)
|
92
92
|
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
93
|
-
def self.#{name}(*)
|
94
|
-
raise NotImplementedError, "\#{
|
95
|
-
end
|
93
|
+
def self.#{name}(*) # def self.name(*)
|
94
|
+
raise NotImplementedError, "\#{inspect}.#{name} is not implemented" # raise NotImplementedError, '\#{inspect}.name is not implemented'
|
95
|
+
end # end
|
96
96
|
RUBY
|
97
97
|
end
|
98
98
|
|
@@ -106,9 +106,9 @@ module AbstractType
|
|
106
106
|
# @api private
|
107
107
|
def create_abstract_instance_method(name)
|
108
108
|
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
109
|
-
def #{name}(*)
|
110
|
-
raise NotImplementedError, "\#{self.class.
|
111
|
-
end
|
109
|
+
def #{name}(*) # def name(*)
|
110
|
+
raise NotImplementedError, "\#{self.class.inspect}##{name} is not implemented" # raise NotImplementedError, "\#{self.class.inspect}#name is not implemented"
|
111
|
+
end # end
|
112
112
|
RUBY
|
113
113
|
end
|
114
114
|
|
@@ -13,10 +13,16 @@ describe AbstractType::ClassMethods, '#abstract_method' do
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
let(:class_under_test)do
|
17
|
-
Class.new(abstract_type)
|
18
|
-
|
19
|
-
|
16
|
+
let(:class_under_test) do
|
17
|
+
Class.new(abstract_type)
|
18
|
+
end
|
19
|
+
|
20
|
+
before do
|
21
|
+
TheClassName = class_under_test
|
22
|
+
end
|
23
|
+
|
24
|
+
after do
|
25
|
+
Object.class_eval { remove_const(:TheClassName) }
|
20
26
|
end
|
21
27
|
|
22
28
|
let(:object) { class_under_test.new }
|
@@ -10,11 +10,17 @@ describe AbstractType::ClassMethods, '#abstract_method' do
|
|
10
10
|
include AbstractType
|
11
11
|
|
12
12
|
abstract_singleton_method :some_method
|
13
|
-
|
14
|
-
def self.name; 'TheClassName'; end
|
15
13
|
end
|
16
14
|
end
|
17
15
|
|
16
|
+
before do
|
17
|
+
TheClassName = object
|
18
|
+
end
|
19
|
+
|
20
|
+
after do
|
21
|
+
Object.class_eval { remove_const(:TheClassName) }
|
22
|
+
end
|
23
|
+
|
18
24
|
it 'creates an abstract method' do
|
19
25
|
expect { subject }.to raise_error(NotImplementedError, 'TheClassName.some_method is not implemented')
|
20
26
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: abstract_type
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Dan Kubb
|