rash 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -19,3 +19,5 @@ rdoc
19
19
  pkg
20
20
 
21
21
  ## PROJECT::SPECIFIC
22
+ Gemfile.lock
23
+ *.gem
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --color
2
+ --format=nested
3
+ --backtrace
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source :rubygems
2
+ gemspec
@@ -50,7 +50,7 @@ You will now be able to access those keys through underscored key names (camelCa
50
50
 
51
51
  == Copyright
52
52
 
53
- Copyright (c) 2010 Tom Coccca. See LICENSE for details.
53
+ Copyright (c) 2010 Tom Cocca. See LICENSE for details.
54
54
 
55
55
  === Acknowledgements
56
56
 
data/Rakefile CHANGED
@@ -1,38 +1,10 @@
1
- require 'rubygems'
2
- require 'rake'
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
3
 
4
- begin
5
- require 'jeweler'
6
- Jeweler::Tasks.new do |gem|
7
- gem.name = "rash"
8
- gem.summary = %Q{simple extension to Hashie::Mash for rubyified keys}
9
- gem.description = %Q{simple extension to Hashie::Mash for rubyified keys, all keys are converted to underscore to eliminate horrible camelCasing}
10
- gem.email = "tom.cocca@gmail.com"
11
- gem.homepage = "http://github.com/tcocca/rash"
12
- gem.authors = ["tcocca"]
13
- gem.add_dependency "hashie", ">= 0.4.0"
14
- gem.add_development_dependency "rspec", ">= 1.2.9"
15
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
16
- end
17
- Jeweler::GemcutterTasks.new
18
- rescue LoadError
19
- puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
20
- end
21
-
22
- require 'spec/rake/spectask'
23
- Spec::Rake::SpecTask.new(:spec) do |spec|
24
- spec.libs << 'lib' << 'spec'
25
- spec.spec_files = FileList['spec/**/*_spec.rb']
26
- end
27
-
28
- Spec::Rake::SpecTask.new(:rcov) do |spec|
29
- spec.libs << 'lib' << 'spec'
30
- spec.pattern = 'spec/**/*_spec.rb'
31
- spec.rcov = true
32
- end
33
-
34
- task :spec => :check_dependencies
4
+ require 'rspec/core/rake_task'
5
+ RSpec::Core::RakeTask.new(:spec)
35
6
 
7
+ task :test => :spec
36
8
  task :default => :spec
37
9
 
38
10
  require 'rake/rdoctask'
@@ -0,0 +1,26 @@
1
+ require 'hashie/mash'
2
+
3
+ module Hashie
4
+ class Rash < Mash
5
+
6
+ protected
7
+
8
+ def convert_key(key) #:nodoc:
9
+ underscore_string(key.to_s)
10
+ end
11
+
12
+ # converts a camel_cased string to a underscore string
13
+ # subs spaces with underscores, strips whitespace
14
+ # Same way ActiveSupport does string.underscore
15
+ def underscore_string(str)
16
+ str.to_s.strip.
17
+ gsub(' ', '_').
18
+ gsub(/::/, '/').
19
+ gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
20
+ gsub(/([a-z\d])([A-Z])/,'\1_\2').
21
+ tr("-", "_").
22
+ downcase
23
+ end
24
+
25
+ end
26
+ end
@@ -1,28 +1 @@
1
- require 'rubygems'
2
- require 'hashie'
3
-
4
- module Hashie
5
- class Rash < Mash
6
-
7
- protected
8
-
9
- def convert_key(key) #:nodoc:
10
- underscore_string(key.to_s)
11
- end
12
-
13
- # converts a camel_cased string to a underscore string
14
- # subs spaces with underscores, strips whitespace
15
- # Same way ActiveSupport does string.underscore
16
- def underscore_string(str)
17
- str.to_s.strip.
18
- gsub(' ', '_').
19
- gsub(/::/, '/').
20
- gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
21
- gsub(/([a-z\d])([A-Z])/,'\1_\2').
22
- tr("-", "_").
23
- downcase
24
- end
25
-
26
- end
27
-
28
- end
1
+ require 'hashie/rash'
@@ -0,0 +1,3 @@
1
+ module Rash
2
+ VERSION = '0.3.0'
3
+ end
@@ -1,58 +1,27 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
1
  # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "rash/version"
5
4
 
6
5
  Gem::Specification.new do |s|
7
6
  s.name = %q{rash}
8
- s.version = "0.2.0"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
7
  s.authors = ["tcocca"]
12
8
  s.date = %q{2010-08-31}
13
9
  s.description = %q{simple extension to Hashie::Mash for rubyified keys, all keys are converted to underscore to eliminate horrible camelCasing}
14
10
  s.email = %q{tom.cocca@gmail.com}
15
- s.extra_rdoc_files = [
16
- "LICENSE",
17
- "README.rdoc"
18
- ]
19
- s.files = [
20
- ".document",
21
- ".gitignore",
22
- "LICENSE",
23
- "README.rdoc",
24
- "Rakefile",
25
- "VERSION",
26
- "lib/rash.rb",
27
- "rash.gemspec",
28
- "spec/rash_spec.rb",
29
- "spec/spec.opts",
30
- "spec/spec_helper.rb"
31
- ]
32
11
  s.homepage = %q{http://github.com/tcocca/rash}
33
12
  s.rdoc_options = ["--charset=UTF-8"]
34
- s.require_paths = ["lib"]
35
13
  s.rubygems_version = %q{1.3.5}
36
14
  s.summary = %q{simple extension to Hashie::Mash for rubyified keys}
37
- s.test_files = [
38
- "spec/rash_spec.rb",
39
- "spec/spec_helper.rb"
40
- ]
41
15
 
42
- if s.respond_to? :specification_version then
43
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
44
- s.specification_version = 3
16
+ s.version = Rash::VERSION
17
+ s.platform = Gem::Platform::RUBY
18
+
19
+ s.add_dependency "hashie", '~> 1.0.0'
20
+ s.add_development_dependency "rspec", "~> 2.5.0"
45
21
 
46
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
47
- s.add_runtime_dependency(%q<hashie>, [">= 0.4.0"])
48
- s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
49
- else
50
- s.add_dependency(%q<hashie>, [">= 0.4.0"])
51
- s.add_dependency(%q<rspec>, [">= 1.2.9"])
52
- end
53
- else
54
- s.add_dependency(%q<hashie>, [">= 0.4.0"])
55
- s.add_dependency(%q<rspec>, [">= 1.2.9"])
56
- end
22
+ s.require_paths = ['lib']
23
+ s.files = `git ls-files`.split("\n")
24
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
25
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
57
26
  end
58
27
 
@@ -1,15 +1,15 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
1
+ require 'spec_helper'
2
2
 
3
- describe Hashie::Rash do
3
+ describe Hashie::Rash do
4
4
  subject {
5
5
  Hashie::Rash.new({
6
- "varOne" => 1,
7
- "two" => 2,
8
- :three => 3,
9
- :varFour => 4,
10
- "fiveHumpHumps" => 5,
6
+ "varOne" => 1,
7
+ "two" => 2,
8
+ :three => 3,
9
+ :varFour => 4,
10
+ "fiveHumpHumps" => 5,
11
11
  :nested => {
12
- "NestedOne" => "One",
12
+ "NestedOne" => "One",
13
13
  :two => "two",
14
14
  "nested_three" => "three"
15
15
  },
@@ -21,9 +21,9 @@ describe Hashie::Rash do
21
21
  "trailing spaces " => "better safe than sorry"
22
22
  })
23
23
  }
24
-
24
+
25
25
  it { should be_a(Hashie::Mash) }
26
-
26
+
27
27
  it "should create a new rash where all the keys are underscored instead of camelcased" do
28
28
  subject.var_one.should == 1
29
29
  subject.two.should == 2
@@ -40,35 +40,35 @@ describe Hashie::Rash do
40
40
  subject.spaced_key.should == "When would this happen?"
41
41
  subject.trailing_spaces.should == "better safe than sorry"
42
42
  end
43
-
43
+
44
44
  it "should allow camelCased accessors" do
45
45
  subject.varOne.should == 1
46
46
  subject.varOne = "once"
47
47
  subject.varOne.should == "once"
48
48
  subject.var_one.should == "once"
49
49
  end
50
-
50
+
51
51
  it "should allow camelCased accessors on nested hashes" do
52
52
  subject.nested.nestedOne.should == "One"
53
53
  subject.nested.nestedOne = "once"
54
54
  subject.nested.nested_one.should == "once"
55
55
  end
56
-
56
+
57
57
  it "should merge well with a Mash" do
58
58
  subject.update Hashie::Mash.new(
59
59
  :nested => {:fourTimes => "a charm"},
60
60
  :nested3 => {:helloWorld => "hi"}
61
61
  )
62
-
62
+
63
63
  subject.nested.four_times.should == "a charm"
64
64
  subject.nested.fourTimes.should == "a charm"
65
65
  subject.nested3.hello_world.should == "hi"
66
66
  subject.nested3.helloWorld.should == "hi"
67
67
  end
68
-
68
+
69
69
  it "should allow initializing reader" do
70
70
  subject.nested3!.helloWorld = "hi"
71
71
  subject.nested3.hello_world.should == "hi"
72
72
  end
73
-
73
+
74
74
  end
@@ -1,9 +1,3 @@
1
- $LOAD_PATH.unshift(File.dirname(__FILE__))
2
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
- require 'rash'
4
- require 'spec'
5
- require 'spec/autorun'
1
+ require File.expand_path('../../lib/rash', __FILE__)
6
2
 
7
- Spec::Runner.configure do |config|
8
-
9
- end
3
+ require 'rspec'
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ hash: 19
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 3
9
+ - 0
10
+ version: 0.3.0
5
11
  platform: ruby
6
12
  authors:
7
13
  - tcocca
@@ -14,44 +20,57 @@ default_executable:
14
20
  dependencies:
15
21
  - !ruby/object:Gem::Dependency
16
22
  name: hashie
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
20
26
  requirements:
21
- - - ">="
27
+ - - ~>
22
28
  - !ruby/object:Gem::Version
23
- version: 0.4.0
24
- version:
29
+ hash: 23
30
+ segments:
31
+ - 1
32
+ - 0
33
+ - 0
34
+ version: 1.0.0
35
+ type: :runtime
36
+ version_requirements: *id001
25
37
  - !ruby/object:Gem::Dependency
26
38
  name: rspec
27
- type: :development
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
30
42
  requirements:
31
- - - ">="
43
+ - - ~>
32
44
  - !ruby/object:Gem::Version
33
- version: 1.2.9
34
- version:
45
+ hash: 27
46
+ segments:
47
+ - 2
48
+ - 5
49
+ - 0
50
+ version: 2.5.0
51
+ type: :development
52
+ version_requirements: *id002
35
53
  description: simple extension to Hashie::Mash for rubyified keys, all keys are converted to underscore to eliminate horrible camelCasing
36
54
  email: tom.cocca@gmail.com
37
55
  executables: []
38
56
 
39
57
  extensions: []
40
58
 
41
- extra_rdoc_files:
42
- - LICENSE
43
- - README.rdoc
59
+ extra_rdoc_files: []
60
+
44
61
  files:
45
62
  - .document
46
63
  - .gitignore
64
+ - .rspec
65
+ - Gemfile
47
66
  - LICENSE
48
67
  - README.rdoc
49
68
  - Rakefile
50
- - VERSION
69
+ - lib/hashie/rash.rb
51
70
  - lib/rash.rb
71
+ - lib/rash/version.rb
52
72
  - rash.gemspec
53
73
  - spec/rash_spec.rb
54
- - spec/spec.opts
55
74
  - spec/spec_helper.rb
56
75
  has_rdoc: true
57
76
  homepage: http://github.com/tcocca/rash
@@ -63,21 +82,27 @@ rdoc_options:
63
82
  require_paths:
64
83
  - lib
65
84
  required_ruby_version: !ruby/object:Gem::Requirement
85
+ none: false
66
86
  requirements:
67
87
  - - ">="
68
88
  - !ruby/object:Gem::Version
89
+ hash: 3
90
+ segments:
91
+ - 0
69
92
  version: "0"
70
- version:
71
93
  required_rubygems_version: !ruby/object:Gem::Requirement
94
+ none: false
72
95
  requirements:
73
96
  - - ">="
74
97
  - !ruby/object:Gem::Version
98
+ hash: 3
99
+ segments:
100
+ - 0
75
101
  version: "0"
76
- version:
77
102
  requirements: []
78
103
 
79
104
  rubyforge_project:
80
- rubygems_version: 1.3.5
105
+ rubygems_version: 1.4.2
81
106
  signing_key:
82
107
  specification_version: 3
83
108
  summary: simple extension to Hashie::Mash for rubyified keys
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.2.0
@@ -1 +0,0 @@
1
- --color