adamantium 0.0.1

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.
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: