using_yaml 0.1.1 → 0.2.0
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/Rakefile +11 -24
- data/VERSION +1 -1
- data/lib/using_yaml.rb +30 -15
- data/spec/spec_helper.rb +15 -0
- data/spec/using_yaml/path_spec.rb +35 -0
- data/spec/using_yaml/using_yaml_spec.rb +16 -0
- data/using_yaml.gemspec +8 -6
- metadata +8 -6
- data/test/helper.rb +0 -10
- data/test/test_using_yaml.rb +0 -7
data/Rakefile
CHANGED
@@ -18,31 +18,8 @@ rescue LoadError
|
|
18
18
|
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
19
19
|
end
|
20
20
|
|
21
|
-
require 'rake/testtask'
|
22
|
-
Rake::TestTask.new(:test) do |test|
|
23
|
-
test.libs << 'lib' << 'test'
|
24
|
-
test.pattern = 'test/**/test_*.rb'
|
25
|
-
test.verbose = true
|
26
|
-
end
|
27
|
-
|
28
|
-
begin
|
29
|
-
require 'rcov/rcovtask'
|
30
|
-
Rcov::RcovTask.new do |test|
|
31
|
-
test.libs << 'test'
|
32
|
-
test.pattern = 'test/**/test_*.rb'
|
33
|
-
test.verbose = true
|
34
|
-
end
|
35
|
-
rescue LoadError
|
36
|
-
task :rcov do
|
37
|
-
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
task :test => :check_dependencies
|
42
|
-
|
43
|
-
task :default => :test
|
44
|
-
|
45
21
|
require 'rake/rdoctask'
|
22
|
+
|
46
23
|
Rake::RDocTask.new do |rdoc|
|
47
24
|
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
48
25
|
|
@@ -51,3 +28,13 @@ Rake::RDocTask.new do |rdoc|
|
|
51
28
|
rdoc.rdoc_files.include('README*')
|
52
29
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
53
30
|
end
|
31
|
+
|
32
|
+
require 'spec/rake/spectask'
|
33
|
+
|
34
|
+
desc "Run specs"
|
35
|
+
Spec::Rake::SpecTask.new do |t|
|
36
|
+
t.spec_files = Rake::FileList["spec/**/*_spec.rb"]
|
37
|
+
t.spec_opts = ["-c"]
|
38
|
+
end
|
39
|
+
|
40
|
+
task :default => :spec
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/lib/using_yaml.rb
CHANGED
@@ -9,14 +9,20 @@ module UsingYAML
|
|
9
9
|
@@cache ||= {}
|
10
10
|
end
|
11
11
|
|
12
|
-
def
|
13
|
-
@@
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
12
|
+
def path(klass)
|
13
|
+
return @@path[klass] if defined?(@@path)
|
14
|
+
end
|
15
|
+
|
16
|
+
def path=(args)
|
17
|
+
(@@path ||= {})[args.first] = args.last
|
18
|
+
end
|
19
|
+
|
20
|
+
def squelch!
|
21
|
+
@@squelched = true
|
22
|
+
end
|
23
|
+
|
24
|
+
def squelched?
|
25
|
+
defined?(@@squelched) && @@squelched
|
20
26
|
end
|
21
27
|
end
|
22
28
|
|
@@ -33,10 +39,10 @@ module UsingYAML
|
|
33
39
|
using_yaml_file(filename)
|
34
40
|
when Hash
|
35
41
|
arg.each do |key, value|
|
36
|
-
case
|
37
|
-
when
|
38
|
-
UsingYAML.
|
39
|
-
|
42
|
+
case key
|
43
|
+
when :path
|
44
|
+
UsingYAML.path = [self.inspect, value]
|
45
|
+
else
|
40
46
|
filename = key
|
41
47
|
options = value
|
42
48
|
using_yaml_file(filename, options)
|
@@ -52,13 +58,22 @@ module UsingYAML
|
|
52
58
|
data = UsingYAML.cache[pathname]
|
53
59
|
return data if data
|
54
60
|
|
55
|
-
|
56
|
-
|
61
|
+
begin
|
62
|
+
data = YAML.load_file(pathname).to_ohash(pathname)
|
63
|
+
UsingYAML.cache[pathname] = data
|
64
|
+
rescue Exception => e
|
65
|
+
$stderr.puts "(UsingYAML) Could not load #{filename}: #{e.message}" unless UsingYAML.squelched?
|
66
|
+
nil
|
67
|
+
end
|
57
68
|
end
|
58
69
|
end
|
59
70
|
|
60
71
|
def using_yaml_path
|
61
|
-
@using_yaml_path ||= Pathname.new(UsingYAML.
|
72
|
+
@using_yaml_path ||= Pathname.new(UsingYAML.path(self.inspect) || ENV['HOME'])
|
73
|
+
end
|
74
|
+
|
75
|
+
def using_yaml_path=(path)
|
76
|
+
@using_yaml_path = path && Pathname.new(path)
|
62
77
|
end
|
63
78
|
end
|
64
79
|
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'spec'
|
3
|
+
require 'mocha'
|
4
|
+
require File.dirname(__FILE__) + '/../lib/using_yaml.rb'
|
5
|
+
|
6
|
+
Spec::Runner.configure do |config|
|
7
|
+
config.mock_with :mocha
|
8
|
+
end
|
9
|
+
|
10
|
+
UsingYAML.squelch!
|
11
|
+
|
12
|
+
class Person
|
13
|
+
include UsingYAML
|
14
|
+
using_yaml :children
|
15
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
def reset_person!
|
4
|
+
Person.class_eval do
|
5
|
+
include UsingYAML
|
6
|
+
using_yaml :children
|
7
|
+
end
|
8
|
+
|
9
|
+
UsingYAML.path = ['Person', nil]
|
10
|
+
Person.using_yaml_path = nil
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "UsingYAML#paths" do
|
14
|
+
before(:each) do
|
15
|
+
@person = Person.new
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should return $HOME for non-existant pathnames" do
|
19
|
+
Person.using_yaml_path.expand_path.to_s.should == ENV['HOME']
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should return path/to/defined for globally set pathnames" do
|
23
|
+
Person.using_yaml_path = "global"
|
24
|
+
Person.using_yaml_path.expand_path.to_s.should =~ /global/
|
25
|
+
reset_person!
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should return path/to/defined for locally set pathnames" do
|
29
|
+
Person.class_eval do
|
30
|
+
using_yaml :children, :path => "local"
|
31
|
+
end
|
32
|
+
Person.using_yaml_path.expand_path.to_s.should =~ /local/
|
33
|
+
reset_person!
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
describe 'UsingYAML#core' do
|
4
|
+
before(:each) do
|
5
|
+
@person = Person.new
|
6
|
+
end
|
7
|
+
|
8
|
+
it "should return nil for invalid settings files" do
|
9
|
+
@person.children.should be_nil
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should return valid settings files" do
|
13
|
+
YAML.stubs(:load_file).with(anything).returns({})
|
14
|
+
@person.children.should == {}
|
15
|
+
end
|
16
|
+
end
|
data/using_yaml.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{using_yaml}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Marc Bowes"]
|
12
|
-
s.date = %q{2010-02-
|
12
|
+
s.date = %q{2010-02-13}
|
13
13
|
s.description = %q{"Load, save and use YAML files as if they were objects"}
|
14
14
|
s.email = %q{marcbowes@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -26,8 +26,9 @@ Gem::Specification.new do |s|
|
|
26
26
|
"lib/using_yaml.rb",
|
27
27
|
"lib/using_yaml/open_hash.rb",
|
28
28
|
"lib/using_yaml/patches/hash.rb",
|
29
|
-
"
|
30
|
-
"
|
29
|
+
"spec/spec_helper.rb",
|
30
|
+
"spec/using_yaml/path_spec.rb",
|
31
|
+
"spec/using_yaml/using_yaml_spec.rb",
|
31
32
|
"using_yaml.gemspec"
|
32
33
|
]
|
33
34
|
s.homepage = %q{http://github.com/marcbowes/UsingYAML}
|
@@ -36,8 +37,9 @@ Gem::Specification.new do |s|
|
|
36
37
|
s.rubygems_version = %q{1.3.5}
|
37
38
|
s.summary = %q{"Load, save and use YAML files"}
|
38
39
|
s.test_files = [
|
39
|
-
"
|
40
|
-
"
|
40
|
+
"spec/using_yaml/path_spec.rb",
|
41
|
+
"spec/using_yaml/using_yaml_spec.rb",
|
42
|
+
"spec/spec_helper.rb"
|
41
43
|
]
|
42
44
|
|
43
45
|
if s.respond_to? :specification_version then
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: using_yaml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marc Bowes
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-02-
|
12
|
+
date: 2010-02-13 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -41,8 +41,9 @@ files:
|
|
41
41
|
- lib/using_yaml.rb
|
42
42
|
- lib/using_yaml/open_hash.rb
|
43
43
|
- lib/using_yaml/patches/hash.rb
|
44
|
-
-
|
45
|
-
-
|
44
|
+
- spec/spec_helper.rb
|
45
|
+
- spec/using_yaml/path_spec.rb
|
46
|
+
- spec/using_yaml/using_yaml_spec.rb
|
46
47
|
- using_yaml.gemspec
|
47
48
|
has_rdoc: true
|
48
49
|
homepage: http://github.com/marcbowes/UsingYAML
|
@@ -73,5 +74,6 @@ signing_key:
|
|
73
74
|
specification_version: 3
|
74
75
|
summary: "\"Load, save and use YAML files\""
|
75
76
|
test_files:
|
76
|
-
-
|
77
|
-
-
|
77
|
+
- spec/using_yaml/path_spec.rb
|
78
|
+
- spec/using_yaml/using_yaml_spec.rb
|
79
|
+
- spec/spec_helper.rb
|
data/test/helper.rb
DELETED