adamantium 0.0.3 → 0.0.4

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.
@@ -1,4 +1,5 @@
1
1
  language: ruby
2
+ before_install: gem install bundler
2
3
  bundler_args: --without yard guard
3
4
  script: "bundle exec rake spec"
4
5
  rvm:
data/Gemfile CHANGED
@@ -4,10 +4,14 @@ source 'https://rubygems.org'
4
4
 
5
5
  gemspec
6
6
 
7
+ group :yard do
8
+ gem 'redcarpet', '~> 2.2.2', :platforms => [ :mri, :rbx ]
9
+ end
10
+
7
11
  group :guard do
8
- gem 'guard', '~> 1.1.1'
9
- gem 'guard-bundler', '~> 0.1.3'
10
- gem 'guard-rspec', '~> 0.7.3'
12
+ gem 'guard', '~> 1.5.4'
13
+ gem 'guard-bundler', '~> 1.0.0'
14
+ gem 'guard-rspec', '~> 1.2.1'
11
15
  end
12
16
 
13
17
  group :benchmarks do
@@ -16,17 +20,16 @@ end
16
20
 
17
21
  platform :jruby do
18
22
  group :jruby do
19
- gem 'jruby-openssl', '~> 0.7.4'
23
+ gem 'jruby-openssl', '~> 0.8.2'
20
24
  end
21
25
  end
22
26
 
23
27
  group :metrics do
24
- gem 'flay', '~> 1.4.2'
25
- gem 'flog', '~> 2.5.1'
28
+ gem 'flay', '~> 1.4.3'
29
+ gem 'flog', '~> 2.5.3'
26
30
  gem 'reek', '~> 1.2.8', :github => 'dkubb/reek'
27
31
  gem 'roodi', '~> 2.1.0'
28
- gem 'yardstick', '~> 0.7.0'
29
- gem 'simplecov'
32
+ gem 'yardstick', '~> 0.8.0'
30
33
 
31
34
  platforms :ruby_18, :ruby_19 do
32
35
  # this indirectly depends on ffi which does not build on ruby-head
@@ -38,14 +41,18 @@ group :metrics do
38
41
  gem 'fattr', '~> 2.2.0' # for metric_fu
39
42
  gem 'heckle', '~> 1.4.3'
40
43
  gem 'json', '~> 1.7.3' # for metric_fu rake task
41
- gem 'map', '~> 6.0.1' # for metric_fu
44
+ gem 'map', '~> 6.2.0' # for metric_fu
42
45
  gem 'metric_fu', '~> 2.1.1'
43
46
  gem 'mspec', '~> 1.5.17'
44
47
  gem 'rcov', '~> 1.0.0'
45
48
  gem 'ruby2ruby', '= 1.2.2' # for heckle
46
49
  end
47
50
 
51
+ platforms :ruby_19 do
52
+ gem 'simplecov', '~> 0.7.1'
53
+ end
54
+
48
55
  platforms :rbx do
49
- gem 'pelusa', '~> 0.2.1'
56
+ gem 'pelusa', '~> 0.2.2'
50
57
  end
51
58
  end
data/README.md CHANGED
@@ -1,7 +1,9 @@
1
1
  adamantium
2
2
  ==========
3
3
 
4
- [![Build Status](https://secure.travis-ci.org/dkubb/adamantium.png)](http://travis-ci.org/dkubb/adamantium)
4
+ Create immutable objects
5
+
6
+ [![Build Status](https://secure.travis-ci.org/dkubb/adamantium.png)](https://travis-ci.org/dkubb/adamantium)
5
7
  [![Dependency Status](https://gemnasium.com/dkubb/adamantium.png)](https://gemnasium.com/dkubb/adamantium)
6
8
  [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/dkubb/adamantium)
7
9
 
@@ -11,12 +13,24 @@ It allows to make objects immutable in an unobtrusive way.
11
13
  Installation
12
14
  ------------
13
15
 
14
- There is no gem release yet so use git source.
16
+ With Rubygems:
15
17
 
16
- In your **Gemfile**:
18
+ ```bash
19
+ $ gem install adamantium
20
+ $ irb -rubygems
21
+ >> require 'adamantium'
22
+ => true
23
+ ```
17
24
 
18
- ``` ruby
19
- gem 'adamantium', :git => 'https://github.com/dkubb/adamantium.git'
25
+ With git and local working copy:
26
+
27
+ ```bash
28
+ $ git clone git://github.com/dkubb/adamantium.git
29
+ $ cd adamantium
30
+ $ rake install
31
+ $ irb -rubygems
32
+ >> require 'adamantium'
33
+ => true
20
34
  ```
21
35
 
22
36
  Examples
@@ -135,27 +149,7 @@ Contributing
135
149
  * Run "rake ci". This must pass and not show any regressions in the metrics for the code to be merged.
136
150
  * Send me a pull request. Bonus points for topic branches.
137
151
 
138
- License
139
- -------
152
+ Copyright
153
+ ---------
140
154
 
141
- Copyright (c) 2009-2012 Dan Kubb
142
- Copyright (c) 2012 Markus Schirp
143
-
144
- Permission is hereby granted, free of charge, to any person obtaining
145
- a copy of this software and associated documentation files (the
146
- "Software"), to deal in the Software without restriction, including
147
- without limitation the rights to use, copy, modify, merge, publish,
148
- distribute, sublicense, and/or sell copies of the Software, and to
149
- permit persons to whom the Software is furnished to do so, subject to
150
- the following conditions:
151
-
152
- The above copyright notice and this permission notice shall be
153
- included in all copies or substantial portions of the Software.
154
-
155
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
156
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
157
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
158
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
159
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
160
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
161
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
155
+ Copyright © 2012 Dan Kubb. See LICENSE for details.
data/TODO CHANGED
@@ -1 +1 @@
1
- * Make a gem release after review from original author (dkubb).
1
+ * Update #hash to be memoized automatically
@@ -17,9 +17,9 @@ Gem::Specification.new do |gem|
17
17
  gem.extra_rdoc_files = %w[LICENSE README.md TODO]
18
18
 
19
19
  gem.add_runtime_dependency('backports', '~> 2.6.4')
20
- gem.add_runtime_dependency('ice_nine', '~> 0.5.0')
20
+ gem.add_runtime_dependency('ice_nine', '~> 0.6.0')
21
21
 
22
- gem.add_development_dependency('rake', '~> 0.9.2.2')
22
+ gem.add_development_dependency('rake', '~> 10.0.3')
23
23
  gem.add_development_dependency('rspec', '~> 1.3.2')
24
24
  gem.add_development_dependency('yard', '~> 0.8.3')
25
25
  end
@@ -26,7 +26,7 @@ module Adamantium
26
26
  # @api public
27
27
  def self.call(object)
28
28
  case object
29
- when Numeric, TrueClass, FalseClass, NilClass, Symbol, Class, Module
29
+ when Numeric, TrueClass, FalseClass, NilClass, Symbol, Class, Module, UnboundMethod, Method
30
30
  object
31
31
  else
32
32
  freeze_value(object)
@@ -1,3 +1,3 @@
1
1
  module Adamantium
2
- VERSION = '0.0.3'.freeze
2
+ VERSION = '0.0.4'.freeze
3
3
  end
@@ -43,6 +43,22 @@ describe Adamantium::Freezer::Deep, '.call' do
43
43
  it { should equal(value) }
44
44
  end
45
45
 
46
+ context 'with a method value' do
47
+ let(:value) { Object.method(:to_s) }
48
+
49
+ it { should equal(value) }
50
+
51
+ it { should_not be_frozen }
52
+ end
53
+
54
+ context 'with a unbound method value' do
55
+ let(:value) { Object.instance_method(:to_s) }
56
+
57
+ it { should equal(value) }
58
+
59
+ it { should_not be_frozen }
60
+ end
61
+
46
62
  context 'with a module value' do
47
63
  let(:value) { Module.new }
48
64
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adamantium
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 3
10
- version: 0.0.3
9
+ - 4
10
+ version: 0.0.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Dan Kubb
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2012-11-14 00:00:00 Z
19
+ date: 2012-12-20 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: backports
@@ -42,12 +42,12 @@ dependencies:
42
42
  requirements:
43
43
  - - ~>
44
44
  - !ruby/object:Gem::Version
45
- hash: 11
45
+ hash: 7
46
46
  segments:
47
47
  - 0
48
- - 5
48
+ - 6
49
49
  - 0
50
- version: 0.5.0
50
+ version: 0.6.0
51
51
  type: :runtime
52
52
  version_requirements: *id002
53
53
  - !ruby/object:Gem::Dependency
@@ -58,13 +58,12 @@ dependencies:
58
58
  requirements:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
- hash: 11
61
+ hash: 73
62
62
  segments:
63
+ - 10
63
64
  - 0
64
- - 9
65
- - 2
66
- - 2
67
- version: 0.9.2.2
65
+ - 3
66
+ version: 10.0.3
68
67
  type: :development
69
68
  version_requirements: *id003
70
69
  - !ruby/object:Gem::Dependency