mash 0.0.3 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,11 @@
1
+ === 0.0.5 / 2008-04-29
2
+
3
+ * [bugfix] Mashes do not infinite loop when initialized with another Mash.
4
+
5
+ === 0.0.4 / 2008-04-25
6
+
7
+ * Setting up for GitHub gem hosting instead of Rubyforge.
8
+
1
9
  === 0.0.3 / 2008-04-19
2
10
 
3
11
  * [] no longer defaults to a new Mash, will return nil if
data/README.txt CHANGED
@@ -26,17 +26,28 @@ to JSON and XML parsed hashes.
26
26
 
27
27
  == INSTALL:
28
28
 
29
- RubyGem:
29
+ Gem:
30
30
 
31
- sudo gem install mash
31
+ Mash is hosted on the GitHub gem repository, so if you haven't already:
32
+
33
+ gem sources -a http://gems.github.com/
34
+ sudo gem install mbleigh-mash
32
35
 
33
36
  Git:
34
37
 
35
38
  git clone git://github.com/mbleigh/mash.git
39
+
40
+ == RESOURCES
41
+
42
+ If you encounter any problems or have ideas for new features
43
+ please report them at the Lighthouse project for Mash:
44
+
45
+ http://mbleigh.lighthouseapp.com/projects/10112-mash
36
46
 
37
47
  == LICENSE:
38
48
 
39
- Copyright (c) 2008 Michael Bleigh
49
+ Copyright (c) 2008 Michael Bleigh (http://mbleigh.com/)
50
+ and Intridea Inc. (http://intridea.com/), released under the MIT license
40
51
 
41
52
  Permission is hereby granted, free of charge, to any person obtaining
42
53
  a copy of this software and associated documentation files (the
data/Rakefile CHANGED
@@ -1,18 +1,8 @@
1
- # -*- ruby -*-
2
-
3
1
  require 'rubygems'
4
- require 'hoe'
5
2
  require './lib/mash.rb'
6
3
  require 'spec/rake/spectask'
7
4
 
8
- Hoe.new('mash', Mash::VERSION) do |p|
9
- p.rubyforge_name = 'mash-hash' # if different than lowercase project name
10
- p.developer('Michael Bleigh', 'michael@intridea.com')
11
- p.remote_rdoc_dir = ''
12
- end
13
-
14
5
  desc "Run specs."
15
6
  Spec::Rake::SpecTask.new("spec") do |t|
16
7
  t.spec_files = "spec/*_spec.rb"
17
- end
18
- # vim: syntax=Ruby
8
+ end
@@ -128,14 +128,14 @@ class Mash < Hash
128
128
  # Recursively merges this mash with the passed
129
129
  # in hash, merging each hash in the hierarchy.
130
130
  def deep_update(other_hash)
131
- stringified_hash = other_hash.stringify_keys
132
- stringified_hash.each_pair do |k,v|
131
+ other_hash = other_hash.stringify_keys unless other_hash.is_a?(Mash)
132
+ other_hash.each_pair do |k,v|
133
133
  k = convert_key(k)
134
134
  self[k] = self[k].to_mash if self[k].is_a?(Hash) unless self[k].is_a?(Mash)
135
- if self[k].is_a?(Hash) && stringified_hash[k].is_a?(Hash)
136
- self[k].deep_merge!(stringified_hash[k])
135
+ if self[k].is_a?(Hash) && other_hash[k].is_a?(Hash)
136
+ self[k].deep_merge!(other_hash[k])
137
137
  else
138
- self.send(k + "=", convert_value(stringified_hash[k]))
138
+ self.send(k + "=", convert_value(other_hash[k]))
139
139
  end
140
140
  end
141
141
  end
@@ -0,0 +1,14 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = "mash"
3
+ s.version = "0.0.5"
4
+ s.date = "2008-04-26"
5
+ s.summary = "An extended Hash that gives simple pseudo-object functionality that can be built from hashes and easily extended"
6
+ s.email = "michael@intridea.com"
7
+ s.homepage = "http://github.com/mbleigh/mash"
8
+ s.summary = "Mash is an extended Hash that gives simple pseudo-object functionality that can be built from hashes and easily extended"
9
+ s.has_rdoc = true
10
+ s.authors = ["Michael Bleigh"]
11
+ s.files = ["History.txt", "Manifest.txt", "README.txt", "Rakefile", "mash.gemspec", "lib/mash.rb", "spec/mash_spec.rb","spec/spec_helper.rb"]
12
+ s.rdoc_options = ["--main", "README.txt"]
13
+ s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.txt"]
14
+ end
@@ -88,6 +88,13 @@ describe Mash do
88
88
  converted.a.first.b.should == 12
89
89
  converted.a.last.should == 23
90
90
  end
91
+
92
+ it "should convert an existing Mash into a Mash" do
93
+ initial = Mash.new(:name => 'randy')
94
+ copy = Mash.new(initial)
95
+ initial.name.should == copy.name
96
+ end
97
+
91
98
  end
92
99
  end
93
100
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Bleigh
@@ -9,21 +9,12 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-04-19 00:00:00 -04:00
12
+ date: 2008-04-26 00:00:00 -07:00
13
13
  default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: hoe
17
- version_requirement:
18
- version_requirements: !ruby/object:Gem::Requirement
19
- requirements:
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: 1.5.1
23
- version:
24
- description: Mash is an extended Hash that gives simple pseudo-object functionality that can be built from hashes and easily extended. It is designed to be used in RESTful API libraries to provide easy object-like access to JSON and XML parsed hashes.
25
- email:
26
- - michael@intridea.com
14
+ dependencies: []
15
+
16
+ description:
17
+ email: michael@intridea.com
27
18
  executables: []
28
19
 
29
20
  extensions: []
@@ -37,11 +28,14 @@ files:
37
28
  - Manifest.txt
38
29
  - README.txt
39
30
  - Rakefile
31
+ - mash.gemspec
40
32
  - lib/mash.rb
41
33
  - spec/mash_spec.rb
42
34
  - spec/spec_helper.rb
43
35
  has_rdoc: true
44
36
  homepage: http://github.com/mbleigh/mash
37
+ licenses: []
38
+
45
39
  post_install_message:
46
40
  rdoc_options:
47
41
  - --main
@@ -62,10 +56,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
62
56
  version:
63
57
  requirements: []
64
58
 
65
- rubyforge_project: mash-hash
66
- rubygems_version: 1.1.1
59
+ rubyforge_project:
60
+ rubygems_version: 1.3.5
67
61
  signing_key:
68
- specification_version: 2
62
+ specification_version: 3
69
63
  summary: Mash is an extended Hash that gives simple pseudo-object functionality that can be built from hashes and easily extended
70
64
  test_files: []
71
65