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.
Files changed (3) hide show
  1. data/VERSION +1 -1
  2. data/lib/mostash/mostash.rb +7 -2
  3. metadata +10 -10
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -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
- self.send(:default_proc=, init.default_proc) if init.default_proc
11
+ @default_proc = init.default_proc if init.default_proc
8
12
  else
9
13
  super
10
14
  end
11
- self.send(:default_proc=, def_proc) if block_given?
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.0
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: &70178437964520 !ruby/object:Gem::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: *70178437964520
24
+ version_requirements: *70249506679780
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &70178437964040 !ruby/object:Gem::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: *70178437964040
35
+ version_requirements: *70249506679300
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: jeweler
38
- requirement: &70178437963560 !ruby/object:Gem::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: *70178437963560
46
+ version_requirements: *70249506643200
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rcov
49
- requirement: &70178437958980 !ruby/object:Gem::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: *70178437958980
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: 3141743245854038340
94
+ hash: 4573630709485983224
95
95
  required_rubygems_version: !ruby/object:Gem::Requirement
96
96
  none: false
97
97
  requirements: