mostash 0.1.0 → 0.1.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/VERSION +1 -1
- data/lib/mostash/mostash.rb +7 -2
- metadata +10 -10
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/lib/mostash/mostash.rb
CHANGED
@@ -1,14 +1,18 @@
|
|
1
1
|
class Mostash < Hash
|
2
2
|
alias_method :orig_init, :initialize
|
3
|
+
|
4
|
+
attr_accessor :default_proc
|
5
|
+
|
3
6
|
def initialize(init={}, &def_proc)
|
7
|
+
@default_proc = nil
|
4
8
|
if init.is_a? Hash
|
5
9
|
__init__ init
|
6
10
|
self.send(:default=, init.default) if init.default
|
7
|
-
|
11
|
+
@default_proc = init.default_proc if init.default_proc
|
8
12
|
else
|
9
13
|
super
|
10
14
|
end
|
11
|
-
|
15
|
+
@default_proc = def_proc if block_given?
|
12
16
|
end
|
13
17
|
|
14
18
|
def clone
|
@@ -18,6 +22,7 @@ class Mostash < Hash
|
|
18
22
|
|
19
23
|
def method_missing(method_name, *args, &block)
|
20
24
|
#dbg "#{method_name} was sent #{args.inspect}, and block #{block.inspect}"
|
25
|
+
return default_proc.call(self, method_name) if default_proc
|
21
26
|
if __is_setter__( method_name )
|
22
27
|
method_name = method_name.to_s.gsub! '=', ''
|
23
28
|
self[method_name] = args.first
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mostash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-10-31 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &70249506679780 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.3.0
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70249506679780
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: bundler
|
27
|
-
requirement: &
|
27
|
+
requirement: &70249506679300 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 1.0.21
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70249506679300
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: jeweler
|
38
|
-
requirement: &
|
38
|
+
requirement: &70249506643200 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.6.4
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70249506643200
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rcov
|
49
|
-
requirement: &
|
49
|
+
requirement: &70249506642720 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70249506642720
|
58
58
|
description: You can treat an object as either a hash or as an OpenStruct. In additon
|
59
59
|
to this you can create them nested, unlike OpenStruct
|
60
60
|
email: asher.friedman@gmail.com
|
@@ -91,7 +91,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
91
91
|
version: '0'
|
92
92
|
segments:
|
93
93
|
- 0
|
94
|
-
hash:
|
94
|
+
hash: 4573630709485983224
|
95
95
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
96
|
none: false
|
97
97
|
requirements:
|