mostash 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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.3
1
+ 0.0.4
@@ -1,6 +1,7 @@
1
1
  class Mostash < OpenStruct
2
2
  def initialize(init={})
3
3
  super({})
4
+ @initial_hash = init
4
5
  __init__ init
5
6
  end
6
7
 
@@ -11,7 +12,7 @@ class Mostash < OpenStruct
11
12
  elsif __is_setter__( method_name )
12
13
  super method_name, __adjusted_value__( args.first )
13
14
  else
14
- super
15
+ super || @initial_hash.send(:[], method_name, *args, &block)
15
16
  end
16
17
  end
17
18
 
@@ -16,6 +16,21 @@ describe 'MoStash as Hash' do
16
16
  end
17
17
  end
18
18
 
19
+ context 'initialization' do
20
+ it "should support initialzation from hash with default value" do
21
+ mo = Mostash.new(Hash.new(123))
22
+
23
+ mo.doesnt_exist.should == 123
24
+ end
25
+
26
+ it "should support initialization from hash with block for deafult" do
27
+ h = Hash.new { |hash, key| hash[key] = "Go Fish: #{key}" }
28
+ mo = Mostash.new h
29
+
30
+ mo.doesnt_exist.should == "Go Fish: doesnt_exist"
31
+ end
32
+ end
33
+
19
34
  context 'hash functions' do
20
35
 
21
36
  it "should respond to empty?" do
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mostash
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
5
4
  prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 0
9
- - 3
10
- version: 0.0.3
8
+ - 4
9
+ version: 0.0.4
11
10
  platform: ruby
12
11
  authors:
13
12
  - Joel Friedman
@@ -15,7 +14,7 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2010-07-08 00:00:00 -05:00
17
+ date: 2011-04-18 00:00:00 -05:00
19
18
  default_executable:
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
@@ -26,7 +25,6 @@ dependencies:
26
25
  requirements:
27
26
  - - ">="
28
27
  - !ruby/object:Gem::Version
29
- hash: 3
30
28
  segments:
31
29
  - 0
32
30
  version: "0"
@@ -41,7 +39,6 @@ extensions: []
41
39
  extra_rdoc_files:
42
40
  - README.markdown
43
41
  files:
44
- - .gitignore
45
42
  - README.markdown
46
43
  - Rakefile
47
44
  - VERSION
@@ -55,8 +52,8 @@ homepage:
55
52
  licenses: []
56
53
 
57
54
  post_install_message:
58
- rdoc_options:
59
- - --charset=UTF-8
55
+ rdoc_options: []
56
+
60
57
  require_paths:
61
58
  - lib
62
59
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -64,7 +61,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
64
61
  requirements:
65
62
  - - ">="
66
63
  - !ruby/object:Gem::Version
67
- hash: 3
68
64
  segments:
69
65
  - 0
70
66
  version: "0"
@@ -73,7 +69,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
73
69
  requirements:
74
70
  - - ">="
75
71
  - !ruby/object:Gem::Version
76
- hash: 3
77
72
  segments:
78
73
  - 0
79
74
  version: "0"
data/.gitignore DELETED
@@ -1,2 +0,0 @@
1
- pkg/*
2
- *.gemspec