kim 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.
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in kim.gemspec
4
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require 'bundler/gem_tasks'
data/kim.gemspec ADDED
@@ -0,0 +1,20 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "kim/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "kim"
7
+ s.version = Kim::VERSION
8
+ s.authors = ["Giancarlo Palavicini"]
9
+ s.email = ["kasthor@kasthor.com"]
10
+ s.homepage = ""
11
+ s.summary = %q{Improvements to several Ruby classes}
12
+ s.description = %q{Handy additions to various ruby classes}
13
+
14
+ s.rubyforge_project = "kim"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+ end
data/lib/kim/hash.rb ADDED
@@ -0,0 +1,24 @@
1
+ module Kim
2
+ module Hash
3
+ def deep_merge other, bang = false
4
+ merge_method = bang ? :merge! : :merge
5
+ other.inject(self) do | result, item |
6
+ key, value = item
7
+ self.__send__ merge_method, (
8
+ if has_key? key and self[key].is_a? Hash and value.is_a? Hash
9
+ { key => self[key].deep_merge(value) }
10
+ else
11
+ other
12
+ end
13
+ )
14
+ end
15
+ end
16
+ def deep_merge! other
17
+ deep_merge other, true
18
+ end
19
+ end
20
+ end
21
+
22
+ class Hash
23
+ include Kim::Hash
24
+ end
@@ -0,0 +1,3 @@
1
+ module Kim
2
+ VERSION = "0.0.1"
3
+ end
data/lib/kim.rb ADDED
@@ -0,0 +1,3 @@
1
+ require "kim/version"
2
+
3
+ require "kim/hash"
metadata ADDED
@@ -0,0 +1,72 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: kim
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Giancarlo Palavicini
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-08-18 00:00:00 Z
19
+ dependencies: []
20
+
21
+ description: Handy additions to various ruby classes
22
+ email:
23
+ - kasthor@kasthor.com
24
+ executables: []
25
+
26
+ extensions: []
27
+
28
+ extra_rdoc_files: []
29
+
30
+ files:
31
+ - .gitignore
32
+ - Gemfile
33
+ - Rakefile
34
+ - kim.gemspec
35
+ - lib/kim.rb
36
+ - lib/kim/hash.rb
37
+ - lib/kim/version.rb
38
+ homepage: ""
39
+ licenses: []
40
+
41
+ post_install_message:
42
+ rdoc_options: []
43
+
44
+ require_paths:
45
+ - lib
46
+ required_ruby_version: !ruby/object:Gem::Requirement
47
+ none: false
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ hash: 3
52
+ segments:
53
+ - 0
54
+ version: "0"
55
+ required_rubygems_version: !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ hash: 3
61
+ segments:
62
+ - 0
63
+ version: "0"
64
+ requirements: []
65
+
66
+ rubyforge_project: kim
67
+ rubygems_version: 1.8.7
68
+ signing_key:
69
+ specification_version: 3
70
+ summary: Improvements to several Ruby classes
71
+ test_files: []
72
+