adamantium 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. data/.gitignore +4 -0
  2. data/.rvmrc +1 -0
  3. data/.travis.yml +86 -0
  4. data/Gemfile +54 -0
  5. data/Guardfile +18 -0
  6. data/LICENSE +21 -0
  7. data/README.md +90 -0
  8. data/Rakefile +9 -0
  9. data/TODO +1 -0
  10. data/adamantium.gemspec +25 -0
  11. data/config/flay.yml +3 -0
  12. data/config/flog.yml +2 -0
  13. data/config/roodi.yml +18 -0
  14. data/config/site.reek +91 -0
  15. data/config/yardstick.yml +2 -0
  16. data/lib/adamantium.rb +249 -0
  17. data/lib/adamantium/version.rb +3 -0
  18. data/spec/rcov.opts +7 -0
  19. data/spec/shared/command_method_behavior.rb +7 -0
  20. data/spec/shared/each_method_behaviour.rb +15 -0
  21. data/spec/shared/hash_method_behavior.rb +17 -0
  22. data/spec/shared/idempotent_method_behavior.rb +7 -0
  23. data/spec/shared/invertible_method_behaviour.rb +9 -0
  24. data/spec/spec_helper.rb +11 -0
  25. data/spec/unit/adamantium/class_methods/freeze_object_spec.rb +57 -0
  26. data/spec/unit/adamantium/class_methods/new_spec.rb +14 -0
  27. data/spec/unit/adamantium/dup_spec.rb +13 -0
  28. data/spec/unit/adamantium/fixtures/classes.rb +28 -0
  29. data/spec/unit/adamantium/freeze_spec.rb +51 -0
  30. data/spec/unit/adamantium/memoize_spec.rb +57 -0
  31. data/spec/unit/adamantium/memoized_spec.rb +29 -0
  32. data/spec/unit/adamantium/module_methods/included_spec.rb +16 -0
  33. data/spec/unit/adamantium/module_methods/memoize_spec.rb +88 -0
  34. data/tasks/metrics/ci.rake +7 -0
  35. data/tasks/metrics/flay.rake +47 -0
  36. data/tasks/metrics/flog.rake +43 -0
  37. data/tasks/metrics/heckle.rake +208 -0
  38. data/tasks/metrics/metric_fu.rake +29 -0
  39. data/tasks/metrics/reek.rake +15 -0
  40. data/tasks/metrics/roodi.rake +15 -0
  41. data/tasks/metrics/yardstick.rake +23 -0
  42. data/tasks/spec.rake +45 -0
  43. data/tasks/yard.rake +9 -0
  44. metadata +174 -0
@@ -0,0 +1,29 @@
1
+ begin
2
+ require 'metric_fu'
3
+ require 'json'
4
+
5
+ # XXX: temporary hack until metric_fu is fixed
6
+ MetricFu::Saikuro.class_eval { include FileUtils }
7
+
8
+ MetricFu::Configuration.run do |config|
9
+ config.rcov = {
10
+ :environment => 'test',
11
+ :test_files => %w[ spec/**/*_spec.rb ],
12
+ :rcov_opts => %w[
13
+ --sort coverage
14
+ --no-html
15
+ --text-coverage
16
+ --no-color
17
+ --profile
18
+ --exclude spec/,^/
19
+ --include lib:spec
20
+ ],
21
+ }
22
+ end
23
+ rescue LoadError
24
+ namespace :metrics do
25
+ task :all do
26
+ $stderr.puts 'metric_fu is not available. In order to run metrics:all, you must: gem install metric_fu'
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,15 @@
1
+ begin
2
+ require 'reek/rake/task'
3
+
4
+ if defined?(RUBY_ENGINE) and RUBY_ENGINE == 'rbx'
5
+ task :reek do
6
+ $stderr.puts 'Reek fails under rubinius, fix rubinius and remove guard'
7
+ end
8
+ else
9
+ Reek::Rake::Task.new
10
+ end
11
+ rescue LoadError
12
+ task :reek do
13
+ $stderr.puts 'Reek is not available. In order to run reek, you must: gem install reek'
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ begin
2
+ require 'roodi'
3
+ require 'rake/tasklib'
4
+ require 'roodi_task'
5
+
6
+ RoodiTask.new do |t|
7
+ t.verbose = false
8
+ t.config = File.expand_path('../../../config/roodi.yml', __FILE__)
9
+ t.patterns = %w[ lib/**/*.rb ]
10
+ end
11
+ rescue LoadError
12
+ task :roodi do
13
+ abort 'Roodi is not available. In order to run roodi, you must: gem install roodi'
14
+ end
15
+ end
@@ -0,0 +1,23 @@
1
+ begin
2
+ require 'pathname'
3
+ require 'yardstick'
4
+ require 'yardstick/rake/measurement'
5
+ require 'yardstick/rake/verify'
6
+ require 'yaml'
7
+
8
+ config = YAML.load_file(File.expand_path('../../../config/yardstick.yml', __FILE__))
9
+
10
+ # yardstick_measure task
11
+ Yardstick::Rake::Measurement.new
12
+
13
+ # verify_measurements task
14
+ Yardstick::Rake::Verify.new do |verify|
15
+ verify.threshold = config.fetch('threshold')
16
+ end
17
+ rescue LoadError
18
+ %w[ yardstick_measure verify_measurements ].each do |name|
19
+ task name.to_s do
20
+ abort "Yardstick is not available. In order to run #{name}, you must: gem install yardstick"
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,45 @@
1
+ begin
2
+
3
+ begin
4
+ require 'rspec/core/rake_task'
5
+ rescue LoadError
6
+ require 'spec/rake/spectask'
7
+
8
+ module RSpec
9
+ module Core
10
+ RakeTask = Spec::Rake::SpecTask
11
+ end
12
+ end
13
+ end
14
+
15
+ desc 'run all specs'
16
+ task :spec => %w[ spec:unit spec:integration ]
17
+
18
+ namespace :spec do
19
+ RSpec::Core::RakeTask.new(:integration) do |t|
20
+ t.pattern = 'spec/integration/**/*_spec.rb'
21
+ end
22
+
23
+ RSpec::Core::RakeTask.new(:unit) do |t|
24
+ t.pattern = 'spec/unit/**/*_spec.rb'
25
+ end
26
+ end
27
+ rescue LoadError
28
+ task :spec do
29
+ abort 'rspec is not available. In order to run spec, you must: gem install rspec'
30
+ end
31
+ end
32
+
33
+ begin
34
+ desc "Generate code coverage"
35
+ RSpec::Core::RakeTask.new(:rcov) do |t|
36
+ t.rcov = true
37
+ t.rcov_opts = File.read('spec/rcov.opts').split(/\s+/)
38
+ end
39
+ rescue LoadError
40
+ task :rcov do
41
+ abort 'rcov is not available. In order to run rcov, you must: gem install rcov'
42
+ end
43
+ end
44
+
45
+ task :test => 'spec'
@@ -0,0 +1,9 @@
1
+ begin
2
+ require 'yard'
3
+
4
+ YARD::Rake::YardocTask.new
5
+ rescue LoadError
6
+ task :yard do
7
+ abort 'YARD is not available. In order to run yard, you must: gem install yard'
8
+ end
9
+ end
metadata ADDED
@@ -0,0 +1,174 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: adamantium
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Dan Kubb
9
+ - Markus Schirp
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2012-10-12 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: backports
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: 2.6.1
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ version: 2.6.1
31
+ - !ruby/object:Gem::Dependency
32
+ name: ice_nine
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ~>
37
+ - !ruby/object:Gem::Version
38
+ version: 0.4.0
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: 0.4.0
47
+ - !ruby/object:Gem::Dependency
48
+ name: rake
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 0.9.2
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: 0.9.2
63
+ - !ruby/object:Gem::Dependency
64
+ name: rspec
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ~>
69
+ - !ruby/object:Gem::Version
70
+ version: 1.3.2
71
+ type: :development
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: 1.3.2
79
+ - !ruby/object:Gem::Dependency
80
+ name: yard
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ~>
85
+ - !ruby/object:Gem::Version
86
+ version: 0.8.1
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ~>
93
+ - !ruby/object:Gem::Version
94
+ version: 0.8.1
95
+ description: Immutable extensions to objects
96
+ email:
97
+ - dan.kubb@gmail.com
98
+ - mbj@seonic.net
99
+ executables: []
100
+ extensions: []
101
+ extra_rdoc_files:
102
+ - LICENSE
103
+ - README.md
104
+ - TODO
105
+ files:
106
+ - .gitignore
107
+ - .rvmrc
108
+ - .travis.yml
109
+ - Gemfile
110
+ - Guardfile
111
+ - LICENSE
112
+ - README.md
113
+ - Rakefile
114
+ - TODO
115
+ - adamantium.gemspec
116
+ - config/flay.yml
117
+ - config/flog.yml
118
+ - config/roodi.yml
119
+ - config/site.reek
120
+ - config/yardstick.yml
121
+ - lib/adamantium.rb
122
+ - lib/adamantium/version.rb
123
+ - spec/rcov.opts
124
+ - spec/shared/command_method_behavior.rb
125
+ - spec/shared/each_method_behaviour.rb
126
+ - spec/shared/hash_method_behavior.rb
127
+ - spec/shared/idempotent_method_behavior.rb
128
+ - spec/shared/invertible_method_behaviour.rb
129
+ - spec/spec_helper.rb
130
+ - spec/unit/adamantium/class_methods/freeze_object_spec.rb
131
+ - spec/unit/adamantium/class_methods/new_spec.rb
132
+ - spec/unit/adamantium/dup_spec.rb
133
+ - spec/unit/adamantium/fixtures/classes.rb
134
+ - spec/unit/adamantium/freeze_spec.rb
135
+ - spec/unit/adamantium/memoize_spec.rb
136
+ - spec/unit/adamantium/memoized_spec.rb
137
+ - spec/unit/adamantium/module_methods/included_spec.rb
138
+ - spec/unit/adamantium/module_methods/memoize_spec.rb
139
+ - tasks/metrics/ci.rake
140
+ - tasks/metrics/flay.rake
141
+ - tasks/metrics/flog.rake
142
+ - tasks/metrics/heckle.rake
143
+ - tasks/metrics/metric_fu.rake
144
+ - tasks/metrics/reek.rake
145
+ - tasks/metrics/roodi.rake
146
+ - tasks/metrics/yardstick.rake
147
+ - tasks/spec.rake
148
+ - tasks/yard.rake
149
+ homepage: https://github.com/dkubb/adamantium
150
+ licenses: []
151
+ post_install_message:
152
+ rdoc_options: []
153
+ require_paths:
154
+ - lib
155
+ required_ruby_version: !ruby/object:Gem::Requirement
156
+ none: false
157
+ requirements:
158
+ - - ! '>='
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
161
+ required_rubygems_version: !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - ! '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ requirements: []
168
+ rubyforge_project:
169
+ rubygems_version: 1.8.24
170
+ signing_key:
171
+ specification_version: 3
172
+ summary: Immutable extensions to objects
173
+ test_files: []
174
+ has_rdoc: