method-not-implemented 1.0.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 +7 -0
- data/.gitignore +6 -0
- data/.travis.yml +6 -0
- data/Gemfile +5 -0
- data/Gemfile.lock +23 -0
- data/README.md +42 -0
- data/Rakefile +8 -0
- data/lib/method-not-implemented.rb +22 -0
- data/method-not-implemented.gemspec +22 -0
- data/test/test_method_not_implemented.rb +27 -0
- metadata +81 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b7647ef1084811d03b48d16e1f1a558239f49386
|
4
|
+
data.tar.gz: ecea00e134a10c15fbef56c0b7a75f43f29107ce
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f23d384116186fd58b801b203014764cf7259809311fc0fb23143180da94d7e2212cc105b49434cb0adc60e75870fecee418657a45d640548f324c526fb04ff3
|
7
|
+
data.tar.gz: 862f0bef5684f98f17aabd266c19ae742f4bbc62e483621a46fb6b984a8192b2cd610f26aceb95dbf5854468ce4b6aaf24e8968537ee54c8e9610b335d8cc769
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
method-not-implemented (1.0.0)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: https://rubygems.org/
|
8
|
+
specs:
|
9
|
+
power_assert (1.0.1)
|
10
|
+
rake (12.0.0)
|
11
|
+
test-unit (3.2.3)
|
12
|
+
power_assert
|
13
|
+
|
14
|
+
PLATFORMS
|
15
|
+
ruby
|
16
|
+
|
17
|
+
DEPENDENCIES
|
18
|
+
method-not-implemented!
|
19
|
+
rake (~> 12.0)
|
20
|
+
test-unit (~> 3.2)
|
21
|
+
|
22
|
+
BUNDLED WITH
|
23
|
+
1.14.3
|
data/README.md
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
## Adds `method_not_implemented` to every class and module in Ruby.
|
2
|
+
|
3
|
+
[](https://badge.fury.io/rb/method-not-implemented)
|
4
|
+
[](https://travis-ci.org/yivo/method-not-implemented)
|
5
|
+
|
6
|
+
## About
|
7
|
+
This gem adds `method_not_implemented` to every class and module in Ruby.
|
8
|
+
```ruby
|
9
|
+
class SomeBaseClass
|
10
|
+
def some_method
|
11
|
+
method_not_implemented
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class SomeDerivedClass < SomeBaseClass
|
16
|
+
|
17
|
+
end
|
18
|
+
```
|
19
|
+
|
20
|
+
If `some_method` will be invoked on instance of `SomeDerivedClass` `MethodNotImplemented: SomeDerivedClass.some_method (instance method)` will be raised.
|
21
|
+
|
22
|
+
## Installing gem
|
23
|
+
Add to your Gemfile:
|
24
|
+
```ruby
|
25
|
+
gem 'method-not-implemented', '~> 1.0'
|
26
|
+
```
|
27
|
+
|
28
|
+
## Running Tests
|
29
|
+
Install bundler:
|
30
|
+
```bash
|
31
|
+
gem install bundler
|
32
|
+
```
|
33
|
+
|
34
|
+
Install dependencies:
|
35
|
+
```bash
|
36
|
+
cd method-not-implemented && bundle
|
37
|
+
```
|
38
|
+
|
39
|
+
Run tests:
|
40
|
+
```bash
|
41
|
+
cd method-not-implemented && bundle exec rake test
|
42
|
+
```
|
data/Rakefile
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
class MethodNotImplemented < StandardError
|
5
|
+
VERSION = '1.0.0'
|
6
|
+
|
7
|
+
module Extension
|
8
|
+
def method_not_implemented
|
9
|
+
method = caller_locations(1,1)[0].label
|
10
|
+
message = case self
|
11
|
+
when Class, Module
|
12
|
+
"#{self.inspect}.#{method} (class or module method)"
|
13
|
+
else
|
14
|
+
"#{self.class.inspect}.#{method} (instance method)"
|
15
|
+
end
|
16
|
+
|
17
|
+
raise MethodNotImplemented, message
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
Object.include MethodNotImplemented::Extension
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require File.expand_path('../lib/method-not-implemented', __FILE__)
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = 'method-not-implemented'
|
8
|
+
s.version = MethodNotImplemented::VERSION
|
9
|
+
s.author = 'Yaroslav Konoplov'
|
10
|
+
s.email = 'eahome00@gmail.com'
|
11
|
+
s.summary = 'Adds method_not_implemented to every class and module in Ruby.'
|
12
|
+
s.description = 'Adds method_not_implemented to every class and module in Ruby.'
|
13
|
+
s.homepage = 'https://github.com/yivo/method-not-implemented'
|
14
|
+
s.license = 'MIT'
|
15
|
+
|
16
|
+
s.files = `git ls-files -z`.split("\x0")
|
17
|
+
s.test_files = `git ls-files -z -- {test,spec,features}/*`.split("\x0")
|
18
|
+
s.require_paths = ['lib']
|
19
|
+
|
20
|
+
s.add_development_dependency 'rake', '~> 12.0'
|
21
|
+
s.add_development_dependency 'test-unit', '~> 3.2'
|
22
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require 'test-unit'
|
5
|
+
require 'method-not-implemented'
|
6
|
+
|
7
|
+
class MethodNotImplementedTest < Test::Unit::TestCase
|
8
|
+
class Foo
|
9
|
+
def bar
|
10
|
+
method_not_implemented
|
11
|
+
end
|
12
|
+
|
13
|
+
class << self
|
14
|
+
def baz
|
15
|
+
method_not_implemented
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_method_not_implemented_works_with_classes
|
21
|
+
assert_raise(MethodNotImplemented) { Foo.new.bar }
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_method_not_implemented_works_with_modules
|
25
|
+
assert_raise(MethodNotImplemented) { Foo.baz }
|
26
|
+
end
|
27
|
+
end
|
metadata
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: method-not-implemented
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Yaroslav Konoplov
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-03-25 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '12.0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '12.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: test-unit
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '3.2'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '3.2'
|
41
|
+
description: Adds method_not_implemented to every class and module in Ruby.
|
42
|
+
email: eahome00@gmail.com
|
43
|
+
executables: []
|
44
|
+
extensions: []
|
45
|
+
extra_rdoc_files: []
|
46
|
+
files:
|
47
|
+
- ".gitignore"
|
48
|
+
- ".travis.yml"
|
49
|
+
- Gemfile
|
50
|
+
- Gemfile.lock
|
51
|
+
- README.md
|
52
|
+
- Rakefile
|
53
|
+
- lib/method-not-implemented.rb
|
54
|
+
- method-not-implemented.gemspec
|
55
|
+
- test/test_method_not_implemented.rb
|
56
|
+
homepage: https://github.com/yivo/method-not-implemented
|
57
|
+
licenses:
|
58
|
+
- MIT
|
59
|
+
metadata: {}
|
60
|
+
post_install_message:
|
61
|
+
rdoc_options: []
|
62
|
+
require_paths:
|
63
|
+
- lib
|
64
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '0'
|
74
|
+
requirements: []
|
75
|
+
rubyforge_project:
|
76
|
+
rubygems_version: 2.6.8
|
77
|
+
signing_key:
|
78
|
+
specification_version: 4
|
79
|
+
summary: Adds method_not_implemented to every class and module in Ruby.
|
80
|
+
test_files:
|
81
|
+
- test/test_method_not_implemented.rb
|