ice_nine 0.7.0 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.ruby-gemset +1 -0
- data/.travis.yml +5 -3
- data/CONTRIBUTING.md +11 -0
- data/Gemfile +18 -13
- data/LICENSE +1 -1
- data/README.md +14 -13
- data/TODO +4 -0
- data/config/flog.yml +1 -1
- data/config/site.reek +91 -0
- data/ice_nine.gemspec +2 -4
- data/lib/ice_nine.rb +1 -1
- data/lib/ice_nine/core_ext/object.rb +1 -1
- data/lib/ice_nine/freezer/hash.rb +1 -0
- data/lib/ice_nine/version.rb +2 -2
- data/spec/support/config_alias.rb +2 -0
- data/spec/support/heckle.rb +2 -0
- data/spec/unit/ice_nine/freezer/hash/class_methods/deep_freeze_spec.rb +44 -2
- data/tasks/metrics/flay.rake +12 -12
- data/tasks/metrics/flog.rake +13 -18
- data/tasks/metrics/heckle.rake +22 -22
- data/tasks/metrics/roodi.rake +9 -9
- data/tasks/metrics/yardstick.rake +11 -11
- metadata +56 -83
- data/.rvmrc +0 -1
data/.ruby-gemset
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ice_nine
|
data/.travis.yml
CHANGED
@@ -3,16 +3,18 @@ before_install: gem install bundler
|
|
3
3
|
bundler_args: --without yard guard metrics benchmarks
|
4
4
|
script: "bundle exec rake spec"
|
5
5
|
rvm:
|
6
|
+
- ree
|
6
7
|
- 1.8.7
|
7
8
|
- 1.9.2
|
8
9
|
- 1.9.3
|
10
|
+
- 2.0.0
|
11
|
+
- ruby-head
|
9
12
|
- jruby-18mode
|
10
13
|
- jruby-19mode
|
14
|
+
- jruby-head
|
11
15
|
- rbx-18mode
|
12
16
|
- rbx-19mode
|
13
|
-
- ree
|
14
|
-
- ruby-head
|
15
|
-
- jruby-head
|
16
17
|
notifications:
|
18
|
+
irc: "irc.freenode.org#datamapper"
|
17
19
|
email:
|
18
20
|
- dan.kubb@gmail.com
|
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
Contributing
|
2
|
+
------------
|
3
|
+
|
4
|
+
* If you want your code merged into the mainline, please discuss the proposed changes with me before doing any work on it. This library is still in early development, and the direction it is going may not always be clear. Some features may not be appropriate yet, may need to be deferred until later when the foundation for them is laid, or may be more applicable in a plugin.
|
5
|
+
* Fork the project.
|
6
|
+
* Make your feature addition or bug fix.
|
7
|
+
* Follow this [style guide](https://github.com/dkubb/styleguide).
|
8
|
+
* Add specs for it. This is important so I don't break it in a future version unintentionally. Tests must cover all branches within the code, and code must be fully covered.
|
9
|
+
* Commit, do not mess with Rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
10
|
+
* Run "rake ci". This must pass and not show any regressions in the metrics for the code to be merged.
|
11
|
+
* Send me a pull request. Bonus points for topic branches.
|
data/Gemfile
CHANGED
@@ -4,16 +4,23 @@ source 'https://rubygems.org'
|
|
4
4
|
|
5
5
|
gemspec
|
6
6
|
|
7
|
+
group :development do
|
8
|
+
gem 'rake', '~> 10.0.4'
|
9
|
+
gem 'rspec', '~> 1.3.2'
|
10
|
+
gem 'yard', '~> 0.8.6.1'
|
11
|
+
end
|
12
|
+
|
7
13
|
group :yard do
|
8
|
-
gem '
|
14
|
+
gem 'kramdown', '~> 1.0.1'
|
9
15
|
end
|
10
16
|
|
11
17
|
group :guard do
|
12
|
-
gem 'guard', '~> 1.
|
18
|
+
gem 'guard', '~> 1.8.0'
|
13
19
|
gem 'guard-bundler', '~> 1.0.0'
|
14
20
|
gem 'guard-rspec', '~> 1.2.1'
|
15
21
|
|
16
22
|
# file system change event handling
|
23
|
+
gem 'listen', '~> 1.2.1'
|
17
24
|
gem 'rb-fchange', '~> 0.0.6', :require => false
|
18
25
|
gem 'rb-fsevent', '~> 0.9.3', :require => false
|
19
26
|
gem 'rb-inotify', '~> 0.9.0', :require => false
|
@@ -25,31 +32,29 @@ group :guard do
|
|
25
32
|
end
|
26
33
|
|
27
34
|
group :metrics do
|
35
|
+
gem 'backports', '~> 3.3', '>= 3.3.2'
|
36
|
+
gem 'coveralls', '~> 0.6.7'
|
28
37
|
gem 'flay', '~> 1.4.3'
|
29
38
|
gem 'flog', '~> 2.5.3'
|
39
|
+
gem 'simplecov', '~> 0.7.1'
|
30
40
|
gem 'roodi', '~> 2.2.0'
|
31
41
|
gem 'yardstick', '~> 0.9.2'
|
32
42
|
|
33
|
-
platforms :
|
34
|
-
# this indirectly depends on ffi which does not build on ruby-head
|
43
|
+
platforms :ruby_19 do
|
35
44
|
gem 'yard-spellcheck', '~> 0.1.5'
|
36
45
|
end
|
37
46
|
|
38
47
|
platforms :mri_18 do
|
39
|
-
gem 'arrayfields', '~> 4.
|
48
|
+
gem 'arrayfields', '~> 4.9.0' # for metric_fu
|
40
49
|
gem 'fattr', '~> 2.2.0' # for metric_fu
|
41
50
|
gem 'heckle', '~> 1.4.3'
|
42
|
-
gem 'json', '~> 1.
|
43
|
-
gem 'map', '~> 6.
|
51
|
+
gem 'json', '~> 1.8.0' # for metric_fu rake task
|
52
|
+
gem 'map', '~> 6.5.1' # for metric_fu
|
44
53
|
gem 'metric_fu', '~> 2.1.1'
|
45
54
|
gem 'mspec', '~> 1.5.17'
|
55
|
+
gem 'rails_best_practices', '= 1.13.3' # for metric_fu
|
46
56
|
gem 'rcov', '~> 1.0.0'
|
47
57
|
gem 'ruby2ruby', '= 1.2.2' # for heckle
|
48
|
-
gem 'rails_best_practices', '= 1.13.3' # for metric_fu
|
49
|
-
end
|
50
|
-
|
51
|
-
platforms :mri_19 do
|
52
|
-
gem 'simplecov', '~> 0.7.1'
|
53
58
|
end
|
54
59
|
|
55
60
|
platforms :rbx do
|
@@ -63,6 +68,6 @@ end
|
|
63
68
|
|
64
69
|
platform :jruby do
|
65
70
|
group :jruby do
|
66
|
-
gem 'jruby-openssl', '~> 0.8.
|
71
|
+
gem 'jruby-openssl', '~> 0.8.5'
|
67
72
|
end
|
68
73
|
end
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -3,9 +3,17 @@ ice_nine
|
|
3
3
|
|
4
4
|
Deep freeze ruby objects
|
5
5
|
|
6
|
-
[![
|
7
|
-
[![
|
8
|
-
[![
|
6
|
+
[![Gem Version](https://badge.fury.io/rb/ice_nine.png)][gem]
|
7
|
+
[![Build Status](https://secure.travis-ci.org/dkubb/ice_nine.png?branch=master)][travis]
|
8
|
+
[![Dependency Status](https://gemnasium.com/dkubb/ice_nine.png)][gemnasium]
|
9
|
+
[![Code Climate](https://codeclimate.com/github/dkubb/ice_nine.png)][codeclimate]
|
10
|
+
[![Coverage Status](https://coveralls.io/repos/dkubb/ice_nine/badge.png?branch=master)][coveralls]
|
11
|
+
|
12
|
+
[gem]: https://rubygems.org/gems/ice_nine
|
13
|
+
[travis]: https://travis-ci.org/dkubb/ice_nine
|
14
|
+
[gemnasium]: https://gemnasium.com/dkubb/ice_nine
|
15
|
+
[codeclimate]: https://codeclimate.com/github/dkubb/ice_nine
|
16
|
+
[coveralls]: https://coveralls.io/r/dkubb/ice_nine
|
9
17
|
|
10
18
|
Examples
|
11
19
|
--------
|
@@ -50,18 +58,11 @@ $ irb -rubygems
|
|
50
58
|
```
|
51
59
|
|
52
60
|
Contributing
|
53
|
-
|
61
|
+
------------
|
54
62
|
|
55
|
-
|
56
|
-
* Fork the project.
|
57
|
-
* Make your feature addition or bug fix.
|
58
|
-
* Follow this [style guide](https://github.com/dkubb/styleguide).
|
59
|
-
* Add specs for it. This is important so I don't break it in a future version unintentionally. Tests must cover all branches within the code, and code must be fully covered.
|
60
|
-
* Commit, do not mess with Rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
61
|
-
* Run "rake ci". This must pass and not show any regressions in the metrics for the code to be merged.
|
62
|
-
* Send me a pull request. Bonus points for topic branches.
|
63
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
|
63
64
|
|
64
65
|
Copyright
|
65
66
|
---------
|
66
67
|
|
67
|
-
Copyright © 2012 Dan Kubb. See LICENSE for details.
|
68
|
+
Copyright © 2012-2013 Dan Kubb. See LICENSE for details.
|
data/TODO
CHANGED
@@ -1,3 +1,7 @@
|
|
1
1
|
* Add a utility method that allows "NoFreeze" subclasses to be easily added for
|
2
2
|
any constant.
|
3
3
|
* Refactor the existing NoFreeze subclasses to use the method.
|
4
|
+
|
5
|
+
* Consider adding support for OpenStruct
|
6
|
+
* should freeze the singleton class too in order to prevent no new members
|
7
|
+
* being added (by new_ostruct_member)
|
data/config/flog.yml
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
---
|
2
|
-
threshold: 9.
|
2
|
+
threshold: 9.7
|
data/config/site.reek
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
---
|
2
|
+
UncommunicativeParameterName:
|
3
|
+
accept: []
|
4
|
+
exclude: []
|
5
|
+
enabled: true
|
6
|
+
reject:
|
7
|
+
- !ruby/regexp /^.$/
|
8
|
+
- !ruby/regexp /[0-9]$/
|
9
|
+
- !ruby/regexp /[A-Z]/
|
10
|
+
LargeClass:
|
11
|
+
max_methods: 1
|
12
|
+
exclude: []
|
13
|
+
enabled: true
|
14
|
+
max_instance_variables: 1
|
15
|
+
UncommunicativeMethodName:
|
16
|
+
accept: []
|
17
|
+
exclude: []
|
18
|
+
enabled: true
|
19
|
+
reject:
|
20
|
+
- !ruby/regexp /^[a-z]$/
|
21
|
+
- !ruby/regexp /[0-9]$/
|
22
|
+
- !ruby/regexp /[A-Z]/
|
23
|
+
LongParameterList:
|
24
|
+
max_params: 1
|
25
|
+
exclude: []
|
26
|
+
enabled: true
|
27
|
+
overrides: {}
|
28
|
+
FeatureEnvy:
|
29
|
+
exclude: []
|
30
|
+
enabled: true
|
31
|
+
ClassVariable:
|
32
|
+
exclude: []
|
33
|
+
enabled: true
|
34
|
+
BooleanParameter:
|
35
|
+
exclude: []
|
36
|
+
enabled: true
|
37
|
+
IrresponsibleModule:
|
38
|
+
exclude: []
|
39
|
+
enabled: true
|
40
|
+
UncommunicativeModuleName:
|
41
|
+
accept: []
|
42
|
+
exclude: []
|
43
|
+
enabled: true
|
44
|
+
reject:
|
45
|
+
- !ruby/regexp /^.$/
|
46
|
+
- !ruby/regexp /[0-9]$/
|
47
|
+
NestedIterators:
|
48
|
+
ignore_iterators: []
|
49
|
+
exclude: []
|
50
|
+
enabled: true
|
51
|
+
max_allowed_nesting: 1
|
52
|
+
LongMethod:
|
53
|
+
max_statements: 5
|
54
|
+
exclude: []
|
55
|
+
enabled: true
|
56
|
+
Duplication:
|
57
|
+
allow_calls: []
|
58
|
+
exclude: []
|
59
|
+
enabled: true
|
60
|
+
max_calls: 1
|
61
|
+
UtilityFunction:
|
62
|
+
max_helper_calls: 0
|
63
|
+
exclude: []
|
64
|
+
enabled: true
|
65
|
+
Attribute:
|
66
|
+
exclude: []
|
67
|
+
enabled: false
|
68
|
+
UncommunicativeVariableName:
|
69
|
+
accept: []
|
70
|
+
exclude: []
|
71
|
+
enabled: true
|
72
|
+
reject:
|
73
|
+
- !ruby/regexp /^.$/
|
74
|
+
- !ruby/regexp /[0-9]$/
|
75
|
+
- !ruby/regexp /[A-Z]/
|
76
|
+
SimulatedPolymorphism:
|
77
|
+
exclude: []
|
78
|
+
enabled: true
|
79
|
+
max_ifs: 1
|
80
|
+
DataClump:
|
81
|
+
exclude: []
|
82
|
+
enabled: true
|
83
|
+
max_copies: 0
|
84
|
+
min_clump_size: 0
|
85
|
+
ControlCouple:
|
86
|
+
exclude: []
|
87
|
+
enabled: true
|
88
|
+
LongYieldList:
|
89
|
+
max_params: 0
|
90
|
+
exclude: []
|
91
|
+
enabled: true
|
data/ice_nine.gemspec
CHANGED
@@ -13,10 +13,8 @@ Gem::Specification.new do |gem|
|
|
13
13
|
|
14
14
|
gem.require_paths = %w[lib]
|
15
15
|
gem.files = `git ls-files`.split($/)
|
16
|
-
gem.test_files = `git ls-files --
|
16
|
+
gem.test_files = `git ls-files -- spec/{unit,integration}`.split($/)
|
17
17
|
gem.extra_rdoc_files = %w[LICENSE README.md TODO]
|
18
18
|
|
19
|
-
gem.add_development_dependency('
|
20
|
-
gem.add_development_dependency('rspec', '~> 1.3.2')
|
21
|
-
gem.add_development_dependency('yard', '~> 0.8.4.1')
|
19
|
+
gem.add_development_dependency('bundler', '~> 1.3', '>= 1.3.5')
|
22
20
|
end
|
data/lib/ice_nine.rb
CHANGED
data/lib/ice_nine/version.rb
CHANGED
data/spec/support/heckle.rb
CHANGED
@@ -8,8 +8,46 @@ describe IceNine::Freezer::Hash, '.deep_freeze' do
|
|
8
8
|
|
9
9
|
let(:object) { described_class }
|
10
10
|
|
11
|
-
context 'with a Hash object' do
|
12
|
-
let(:value)
|
11
|
+
context 'with a Hash object having a default proc' do
|
12
|
+
let(:value) do
|
13
|
+
Hash.new {}.update(Object.new => Object.new)
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'returns the object' do
|
17
|
+
should be(value)
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'freezes the object' do
|
21
|
+
expect { subject }.to change(value, :frozen?).from(false).to(true)
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'freezes the default proc' do
|
25
|
+
subject.default_proc.should be_frozen
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'freezes each key in the Hash' do
|
29
|
+
subject.keys.select(&:frozen?).should == subject.keys
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'freezes each value in the Hash' do
|
33
|
+
subject.values.select(&:frozen?).should == subject.values
|
34
|
+
end
|
35
|
+
|
36
|
+
if RUBY_VERSION >= '1.9' and RUBY_ENGINE == 'rbx'
|
37
|
+
it 'does not freeze the Hash state' do
|
38
|
+
subject.instance_variable_get(:@state).should_not be_frozen
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'does not freeze the Hash entries' do
|
42
|
+
subject.instance_variable_get(:@entries).should_not be_frozen
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
context 'with a Hash object having a default value' do
|
48
|
+
let(:value) do
|
49
|
+
Hash.new('').update(Object.new => Object.new)
|
50
|
+
end
|
13
51
|
|
14
52
|
it 'returns the object' do
|
15
53
|
should be(value)
|
@@ -19,6 +57,10 @@ describe IceNine::Freezer::Hash, '.deep_freeze' do
|
|
19
57
|
expect { subject }.to change(value, :frozen?).from(false).to(true)
|
20
58
|
end
|
21
59
|
|
60
|
+
it 'freezes the default value' do
|
61
|
+
subject.default.should be_frozen
|
62
|
+
end
|
63
|
+
|
22
64
|
it 'freezes each key in the Hash' do
|
23
65
|
subject.keys.select(&:frozen?).should == subject.keys
|
24
66
|
end
|
data/tasks/metrics/flay.rake
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
namespace :metrics do
|
4
|
+
begin
|
5
|
+
require 'flay'
|
6
|
+
require 'yaml'
|
6
7
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
config = YAML.load_file(File.expand_path('../../../config/flay.yml', __FILE__)).freeze
|
9
|
+
threshold = config.fetch('threshold').to_i
|
10
|
+
total_score = config.fetch('total_score').to_f
|
11
|
+
files = Flay.expand_dirs_to_files(config.fetch('path', 'lib')).sort
|
11
12
|
|
12
|
-
namespace :metrics do
|
13
13
|
# original code by Marty Andrews:
|
14
14
|
# http://blog.martyandrews.net/2009/05/enforcing-ruby-code-quality.html
|
15
15
|
desc 'Analyze for code duplication'
|
@@ -37,9 +37,9 @@ begin
|
|
37
37
|
raise "#{flay.masses.size} chunks of code have a duplicate mass > #{threshold}"
|
38
38
|
end
|
39
39
|
end
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
40
|
+
rescue LoadError
|
41
|
+
task :flay do
|
42
|
+
$stderr.puts 'Flay is not available. In order to run flay, you must: gem install flay'
|
43
|
+
end
|
44
44
|
end
|
45
45
|
end
|
data/tasks/metrics/flog.rake
CHANGED
@@ -1,19 +1,14 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
namespace :metrics do
|
4
|
+
begin
|
5
|
+
require 'backports'
|
6
|
+
require 'flog'
|
7
|
+
require 'yaml'
|
6
8
|
|
7
|
-
|
8
|
-
|
9
|
-
(self * 10**n).round.to_f * 10**-n
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
config = YAML.load_file(File.expand_path('../../../config/flog.yml', __FILE__)).freeze
|
14
|
-
threshold = config.fetch('threshold').to_f.round_to(1)
|
9
|
+
config = YAML.load_file(File.expand_path('../../../config/flog.yml', __FILE__)).freeze
|
10
|
+
threshold = config.fetch('threshold').to_f.round(1)
|
15
11
|
|
16
|
-
namespace :metrics do
|
17
12
|
# original code by Marty Andrews:
|
18
13
|
# http://blog.martyandrews.net/2009/05/enforcing-ruby-code-quality.html
|
19
14
|
desc 'Analyze for code complexity'
|
@@ -21,8 +16,8 @@ begin
|
|
21
16
|
flog = Flog.new
|
22
17
|
flog.flog Array(config.fetch('path', 'lib'))
|
23
18
|
|
24
|
-
totals = flog.totals.select { |name, score| name[-5, 5] != '#none'
|
25
|
-
map { |name, score| [ name, score.
|
19
|
+
totals = flog.totals.select { |name, score| name[-5, 5] != '#none' }.
|
20
|
+
map { |name, score| [ name, score.round(1) ] }.
|
26
21
|
sort_by { |name, score| score }
|
27
22
|
|
28
23
|
if totals.any?
|
@@ -41,9 +36,9 @@ begin
|
|
41
36
|
raise "#{bad_methods.size} methods have a flog complexity > #{threshold}"
|
42
37
|
end
|
43
38
|
end
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
39
|
+
rescue LoadError
|
40
|
+
task :flog do
|
41
|
+
$stderr.puts 'Flog is not available. In order to run flog, you must: gem install flog'
|
42
|
+
end
|
48
43
|
end
|
49
44
|
end
|
data/tasks/metrics/heckle.rake
CHANGED
@@ -5,27 +5,27 @@ $LOAD_PATH.unshift(File.expand_path('../../../lib', __FILE__))
|
|
5
5
|
# original code by Ashley Moran:
|
6
6
|
# http://aviewfromafar.net/2007/11/1/rake-task-for-heckling-your-specs
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
8
|
+
namespace :metrics do
|
9
|
+
begin
|
10
|
+
require 'pathname'
|
11
|
+
require 'heckle'
|
12
|
+
require 'mspec'
|
13
|
+
require 'mspec/utils/name_map'
|
14
|
+
|
15
|
+
SKIP_METHODS = %w[ blank_slate_method_added guarded_objects ].freeze
|
16
|
+
|
17
|
+
class NameMap
|
18
|
+
def file_name(method, constant)
|
19
|
+
map = MAP[method]
|
20
|
+
name = if map
|
21
|
+
map[constant] || map[:default]
|
22
|
+
else
|
23
|
+
method.gsub(/[?!=]\z/, '')
|
24
|
+
end
|
25
|
+
"#{name}_spec.rb"
|
23
26
|
end
|
24
|
-
"#{name}_spec.rb"
|
25
27
|
end
|
26
|
-
end
|
27
28
|
|
28
|
-
namespace :metrics do
|
29
29
|
desc 'Heckle each module and class'
|
30
30
|
task :heckle => :coverage do
|
31
31
|
unless Ruby2Ruby::VERSION == '1.2.2'
|
@@ -199,9 +199,9 @@ begin
|
|
199
199
|
puts 'Well done! Your code withstood a heckling.'
|
200
200
|
end
|
201
201
|
end
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
202
|
+
rescue LoadError
|
203
|
+
task :heckle => :coverage do
|
204
|
+
$stderr.puts 'Heckle or mspec is not available. In order to run heckle, you must: gem install heckle mspec'
|
205
|
+
end
|
206
206
|
end
|
207
207
|
end
|
data/tasks/metrics/roodi.rake
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
namespace :metrics do
|
4
|
+
begin
|
5
|
+
require 'roodi'
|
6
|
+
require 'rake/tasklib'
|
7
|
+
require 'roodi_task'
|
7
8
|
|
8
|
-
namespace :metrics do
|
9
9
|
RoodiTask.new do |t|
|
10
10
|
t.verbose = false
|
11
11
|
t.config = File.expand_path('../../../config/roodi.yml', __FILE__)
|
12
12
|
t.patterns = %w[ lib/**/*.rb ]
|
13
13
|
end
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
14
|
+
rescue LoadError
|
15
|
+
task :roodi do
|
16
|
+
$stderr.puts 'Roodi is not available. In order to run roodi, you must: gem install roodi'
|
17
|
+
end
|
18
18
|
end
|
19
19
|
end
|
@@ -1,13 +1,13 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
namespace :metrics do
|
4
|
+
begin
|
5
|
+
require 'yardstick/rake/measurement'
|
6
|
+
require 'yardstick/rake/verify'
|
7
|
+
require 'yaml'
|
7
8
|
|
8
|
-
|
9
|
+
config = YAML.load_file(File.expand_path('../../../config/yardstick.yml', __FILE__))
|
9
10
|
|
10
|
-
namespace :metrics do
|
11
11
|
# yardstick_measure task
|
12
12
|
Yardstick::Rake::Measurement.new
|
13
13
|
|
@@ -15,11 +15,11 @@ begin
|
|
15
15
|
Yardstick::Rake::Verify.new do |verify|
|
16
16
|
verify.threshold = config.fetch('threshold')
|
17
17
|
end
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
18
|
+
rescue LoadError
|
19
|
+
%w[ yardstick_measure verify_measurements ].each do |name|
|
20
|
+
task name.to_s do
|
21
|
+
$stderr.puts "Yardstick is not available. In order to run #{name}, you must: gem install yardstick"
|
22
|
+
end
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|
metadata
CHANGED
@@ -1,88 +1,54 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: ice_nine
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.8.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 7
|
9
|
-
- 0
|
10
|
-
version: 0.7.0
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Dan Kubb
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
prerelease: false
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
-
none: false
|
25
|
-
requirements:
|
26
|
-
- - ~>
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 73
|
29
|
-
segments:
|
30
|
-
- 10
|
31
|
-
- 0
|
32
|
-
- 3
|
33
|
-
version: 10.0.3
|
34
|
-
type: :development
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: rspec
|
38
|
-
prerelease: false
|
39
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
12
|
+
date: 2013-06-22 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: bundler
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
40
17
|
none: false
|
41
|
-
requirements:
|
18
|
+
requirements:
|
42
19
|
- - ~>
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
- 2
|
49
|
-
version: 1.3.2
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.3'
|
22
|
+
- - ! '>='
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: 1.3.5
|
50
25
|
type: :development
|
51
|
-
version_requirements: *id002
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
|
-
name: yard
|
54
26
|
prerelease: false
|
55
|
-
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
56
28
|
none: false
|
57
|
-
requirements:
|
29
|
+
requirements:
|
58
30
|
- - ~>
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
- 4
|
65
|
-
- 1
|
66
|
-
version: 0.8.4.1
|
67
|
-
type: :development
|
68
|
-
version_requirements: *id003
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '1.3'
|
33
|
+
- - ! '>='
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: 1.3.5
|
69
36
|
description: Deep Freeze Ruby Objects
|
70
|
-
email:
|
37
|
+
email:
|
71
38
|
- dan.kubb@gmail.com
|
72
39
|
executables: []
|
73
|
-
|
74
40
|
extensions: []
|
75
|
-
|
76
|
-
extra_rdoc_files:
|
41
|
+
extra_rdoc_files:
|
77
42
|
- LICENSE
|
78
43
|
- README.md
|
79
44
|
- TODO
|
80
|
-
files:
|
45
|
+
files:
|
81
46
|
- .gitignore
|
82
47
|
- .pelusa.yml
|
83
|
-
- .
|
48
|
+
- .ruby-gemset
|
84
49
|
- .travis.yml
|
85
50
|
- .yardopts
|
51
|
+
- CONTRIBUTING.md
|
86
52
|
- Gemfile
|
87
53
|
- Guardfile
|
88
54
|
- LICENSE
|
@@ -92,6 +58,7 @@ files:
|
|
92
58
|
- config/flay.yml
|
93
59
|
- config/flog.yml
|
94
60
|
- config/roodi.yml
|
61
|
+
- config/site.reek
|
95
62
|
- config/yardstick.yml
|
96
63
|
- ice_nine.gemspec
|
97
64
|
- lib/ice_nine.rb
|
@@ -144,37 +111,43 @@ files:
|
|
144
111
|
- tasks/yard.rake
|
145
112
|
homepage: https://github.com/dkubb/ice_nine
|
146
113
|
licenses: []
|
147
|
-
|
148
114
|
post_install_message:
|
149
115
|
rdoc_options: []
|
150
|
-
|
151
|
-
require_paths:
|
116
|
+
require_paths:
|
152
117
|
- lib
|
153
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
118
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
154
119
|
none: false
|
155
|
-
requirements:
|
156
|
-
- -
|
157
|
-
- !ruby/object:Gem::Version
|
158
|
-
|
159
|
-
|
160
|
-
- 0
|
161
|
-
version: "0"
|
162
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ! '>='
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
124
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
163
125
|
none: false
|
164
|
-
requirements:
|
165
|
-
- -
|
166
|
-
- !ruby/object:Gem::Version
|
167
|
-
|
168
|
-
segments:
|
169
|
-
- 0
|
170
|
-
version: "0"
|
126
|
+
requirements:
|
127
|
+
- - ! '>='
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: '0'
|
171
130
|
requirements: []
|
172
|
-
|
173
131
|
rubyforge_project:
|
174
132
|
rubygems_version: 1.8.25
|
175
133
|
signing_key:
|
176
134
|
specification_version: 3
|
177
135
|
summary: Deep Freeze Ruby Objects
|
178
|
-
test_files:
|
179
|
-
|
136
|
+
test_files:
|
137
|
+
- spec/integration/ice_nine/class_methods/deep_freeze_spec.rb
|
138
|
+
- spec/unit/ice_nine/class_methods/deep_freeze_spec.rb
|
139
|
+
- spec/unit/ice_nine/freezer/array/class_methods/deep_freeze_spec.rb
|
140
|
+
- spec/unit/ice_nine/freezer/class_methods/element_reference_spec.rb
|
141
|
+
- spec/unit/ice_nine/freezer/false_class/class_methods/deep_freeze_spec.rb
|
142
|
+
- spec/unit/ice_nine/freezer/hash/class_methods/deep_freeze_spec.rb
|
143
|
+
- spec/unit/ice_nine/freezer/nil_class/class_methods/deep_freeze_spec.rb
|
144
|
+
- spec/unit/ice_nine/freezer/no_freeze/class_methods/deep_freeze_spec.rb
|
145
|
+
- spec/unit/ice_nine/freezer/numeric/class_methods/deep_freeze_spec.rb
|
146
|
+
- spec/unit/ice_nine/freezer/object/class_methods/deep_freeze_spec.rb
|
147
|
+
- spec/unit/ice_nine/freezer/range/class_methods/deep_freeze_spec.rb
|
148
|
+
- spec/unit/ice_nine/freezer/struct/class_methods/deep_freeze_spec.rb
|
149
|
+
- spec/unit/ice_nine/freezer/symbol/class_methods/deep_freeze_spec.rb
|
150
|
+
- spec/unit/ice_nine/freezer/true_class/class_methods/deep_freeze_spec.rb
|
151
|
+
- spec/unit/ice_nine/recursion_guard/class_methods/guard_spec.rb
|
152
|
+
- spec/unit/object/deep_freeze_spec.rb
|
180
153
|
has_rdoc:
|
data/.rvmrc
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
rvm use @$(basename `pwd`) --create
|