final 0.2.1 → 0.3.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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/CHANGES +3 -0
- data/Gemfile +6 -0
- data/MANIFEST +1 -1
- data/Rakefile +26 -29
- data/final.gemspec +6 -3
- data/lib/final.rb +1 -1
- data/spec/final_spec.rb +41 -0
- metadata +38 -9
- metadata.gz.sig +0 -0
- data/test/test_final.rb +0 -44
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5f7914e66cf69af464eda26e6289e3f05c6a078349e2b9fe91ad4e0a20dec5ca
|
4
|
+
data.tar.gz: 5146a6c91f11149bb18071978f68f422ae60a748c0f5fa563ff73c66f4558ffb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 832ed6846121c6c19d486f44a34f08b33cc69bed9999628b1a5655f97d211f8773c87f4f60c604f3d709fb951f63307948c9b33bdd00e11c388071896dc8d232
|
7
|
+
data.tar.gz: 58990ef4509fd12f0e73a6374485684076fcec5891181b5052ef24abebe9cb91a18fb38fbbe2a0a6311274a5c2ea9cec9205c9f96a29123413d85d67c1629ce6
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/CHANGES
CHANGED
data/Gemfile
ADDED
data/MANIFEST
CHANGED
data/Rakefile
CHANGED
@@ -1,29 +1,26 @@
|
|
1
|
-
require 'rake'
|
2
|
-
require 'rake/clean'
|
3
|
-
require '
|
4
|
-
|
5
|
-
CLEAN.include('**/*.gem', '**/*.rbc')
|
6
|
-
|
7
|
-
namespace :gem do
|
8
|
-
desc 'Build the final gem'
|
9
|
-
task :create => [:clean] do
|
10
|
-
require 'rubygems/package'
|
11
|
-
spec = eval(IO.read('final.gemspec'))
|
12
|
-
spec.signing_key = File.join(Dir.home, '.ssh', 'gem-private_key.pem')
|
13
|
-
Gem::Package.build(spec, true)
|
14
|
-
end
|
15
|
-
|
16
|
-
desc "Install the final gem"
|
17
|
-
task :install => [:create] do
|
18
|
-
file = Dir["*.gem"].first
|
19
|
-
sh "gem install -l #{file}"
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
end
|
28
|
-
|
29
|
-
task :default => :test
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/clean'
|
3
|
+
require 'rspec/core/rake_task'
|
4
|
+
|
5
|
+
CLEAN.include('**/*.gem', '**/*.rbc')
|
6
|
+
|
7
|
+
namespace :gem do
|
8
|
+
desc 'Build the final gem'
|
9
|
+
task :create => [:clean] do
|
10
|
+
require 'rubygems/package'
|
11
|
+
spec = eval(IO.read('final.gemspec'))
|
12
|
+
spec.signing_key = File.join(Dir.home, '.ssh', 'gem-private_key.pem')
|
13
|
+
Gem::Package.build(spec, true)
|
14
|
+
end
|
15
|
+
|
16
|
+
desc "Install the final gem"
|
17
|
+
task :install => [:create] do
|
18
|
+
file = Dir["*.gem"].first
|
19
|
+
sh "gem install -l #{file}"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
desc "Run the test suite"
|
24
|
+
RSpec::Core::RakeTask.new(:spec)
|
25
|
+
|
26
|
+
task :default => :spec
|
data/final.gemspec
CHANGED
@@ -2,17 +2,20 @@ require 'rubygems'
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = 'final'
|
5
|
-
spec.version = '0.
|
5
|
+
spec.version = '0.3.0'
|
6
6
|
spec.license = 'Apache-2.0'
|
7
7
|
spec.author = 'Daniel J. Berger'
|
8
8
|
spec.email = 'djberg96@gmail.com'
|
9
9
|
spec.homepage = 'https://github.com/djberg96/final'
|
10
10
|
spec.summary = "An implementation of 'final' for Ruby"
|
11
|
-
spec.test_files = Dir['
|
11
|
+
spec.test_files = Dir['spec/*_spec.rb']
|
12
12
|
spec.files = Dir['**/*'].reject{ |f| f.include?('git') }
|
13
13
|
spec.cert_chain = Dir['certs/*']
|
14
14
|
|
15
|
-
spec.extra_rdoc_files
|
15
|
+
spec.extra_rdoc_files = ['README', 'CHANGES', 'MANIFEST']
|
16
|
+
|
17
|
+
spec.add_development_dependency "rake"
|
18
|
+
spec.add_development_dependency "rspec", "~> 3.9"
|
16
19
|
|
17
20
|
spec.metadata = {
|
18
21
|
'homepage_uri' => 'https://github.com/djberg96/final',
|
data/lib/final.rb
CHANGED
data/spec/final_spec.rb
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
########################################################################
|
2
|
+
# final_spec.rb
|
3
|
+
#
|
4
|
+
# Test suite for the final library.
|
5
|
+
########################################################################
|
6
|
+
require 'rspec'
|
7
|
+
require 'final'
|
8
|
+
|
9
|
+
RSpec.describe Final do
|
10
|
+
let(:klass){
|
11
|
+
Class.new do
|
12
|
+
include Final
|
13
|
+
def bar; end
|
14
|
+
end
|
15
|
+
}
|
16
|
+
|
17
|
+
before do
|
18
|
+
@foo = klass.new
|
19
|
+
end
|
20
|
+
|
21
|
+
example "version constant returns expected version number" do
|
22
|
+
expect(Final::FINAL_VERSION).to eq('0.3.0')
|
23
|
+
expect(Final::FINAL_VERSION).to be_frozen
|
24
|
+
end
|
25
|
+
|
26
|
+
example "final class cannot be subclassed" do
|
27
|
+
expect{ class Bar < klass; end }.to raise_error(Final::Error)
|
28
|
+
end
|
29
|
+
|
30
|
+
example "final class cannot have instance methods redefined" do
|
31
|
+
expect{ klass.define_method(:bar){ "bar" } }.to raise_error(Final::Error)
|
32
|
+
end
|
33
|
+
|
34
|
+
example "adding a new method is not an error" do
|
35
|
+
expect{ klass.define_method(:foo){ "foo" } }.not_to raise_error
|
36
|
+
end
|
37
|
+
|
38
|
+
example "finalized classes do not interfere with each other" do
|
39
|
+
expect{ class Foo2; include Final; def bar; end; end }.not_to raise_error
|
40
|
+
end
|
41
|
+
end
|
metadata
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: final
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel J. Berger
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain:
|
11
11
|
- |
|
@@ -35,8 +35,36 @@ cert_chain:
|
|
35
35
|
ORVCZpRuCPpmC8qmqxUnARDArzucjaclkxjLWvCVHeFa9UP7K3Nl9oTjJNv+7/jM
|
36
36
|
WZs4eecIcUc4tKdHxcAJ0MO/Dkqq7hGaiHpwKY76wQ1+8xAh
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date:
|
38
|
+
date:
|
39
39
|
dependencies:
|
40
|
+
- !ruby/object:Gem::Dependency
|
41
|
+
name: rake
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
type: :development
|
48
|
+
prerelease: false
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
- !ruby/object:Gem::Dependency
|
55
|
+
name: rspec
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '3.9'
|
61
|
+
type: :development
|
62
|
+
prerelease: false
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '3.9'
|
40
68
|
- !ruby/object:Gem::Dependency
|
41
69
|
name: rake
|
42
70
|
requirement: !ruby/object:Gem::Requirement
|
@@ -77,16 +105,17 @@ extra_rdoc_files:
|
|
77
105
|
- MANIFEST
|
78
106
|
files:
|
79
107
|
- LICENSE
|
80
|
-
- test
|
81
|
-
- test/test_final.rb
|
82
108
|
- CHANGES
|
83
109
|
- MANIFEST
|
110
|
+
- spec
|
111
|
+
- spec/final_spec.rb
|
84
112
|
- README
|
85
113
|
- Rakefile
|
86
114
|
- certs
|
87
115
|
- certs/djberg96_pub.pem
|
88
116
|
- lib
|
89
117
|
- lib/final.rb
|
118
|
+
- Gemfile
|
90
119
|
- final.gemspec
|
91
120
|
homepage: https://github.com/djberg96/final
|
92
121
|
licenses:
|
@@ -98,7 +127,7 @@ metadata:
|
|
98
127
|
documentation_uri: https://github.com/djberg96/final/wiki
|
99
128
|
source_code_uri: https://github.com/djberg96/final
|
100
129
|
wiki_uri: https://github.com/djberg96/final/wiki
|
101
|
-
post_install_message:
|
130
|
+
post_install_message:
|
102
131
|
rdoc_options: []
|
103
132
|
require_paths:
|
104
133
|
- lib
|
@@ -113,9 +142,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
113
142
|
- !ruby/object:Gem::Version
|
114
143
|
version: '0'
|
115
144
|
requirements: []
|
116
|
-
rubygems_version: 3.
|
117
|
-
signing_key:
|
145
|
+
rubygems_version: 3.1.4
|
146
|
+
signing_key:
|
118
147
|
specification_version: 4
|
119
148
|
summary: An implementation of 'final' for Ruby
|
120
149
|
test_files:
|
121
|
-
-
|
150
|
+
- spec/final_spec.rb
|
metadata.gz.sig
CHANGED
Binary file
|
data/test/test_final.rb
DELETED
@@ -1,44 +0,0 @@
|
|
1
|
-
########################################################################
|
2
|
-
# test_final.rb
|
3
|
-
#
|
4
|
-
# Test suite for the final library.
|
5
|
-
########################################################################
|
6
|
-
require 'rubygems'
|
7
|
-
require 'test-unit'
|
8
|
-
require 'final'
|
9
|
-
|
10
|
-
class TC_Final < Test::Unit::TestCase
|
11
|
-
class Foo
|
12
|
-
include Final
|
13
|
-
def bar; end
|
14
|
-
end
|
15
|
-
|
16
|
-
def setup
|
17
|
-
@foo = Foo.new
|
18
|
-
end
|
19
|
-
|
20
|
-
test "version constant returns expected version number" do
|
21
|
-
assert_equal('0.2.1', Final::FINAL_VERSION)
|
22
|
-
assert_true(Final::FINAL_VERSION.frozen?)
|
23
|
-
end
|
24
|
-
|
25
|
-
test "final class cannot be subclassed" do
|
26
|
-
assert_raise(Final::Error){ class Bar < Foo; end }
|
27
|
-
end
|
28
|
-
|
29
|
-
test "final class cannot have instance methods redefined" do
|
30
|
-
assert_raise(Final::Error){ class Foo; def bar; end; end }
|
31
|
-
end
|
32
|
-
|
33
|
-
test "adding a new method is not an error" do
|
34
|
-
assert_nothing_raised{ class Foo; def baz; end; end }
|
35
|
-
end
|
36
|
-
|
37
|
-
test "finalized classes do not interfere with each other" do
|
38
|
-
assert_nothing_raised{ class Foo2; include Final; def bar; end; end }
|
39
|
-
end
|
40
|
-
|
41
|
-
def teardown
|
42
|
-
@foo = nil
|
43
|
-
end
|
44
|
-
end
|