using_yaml 0.3.0 → 0.3.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.
- data/VERSION +1 -1
- data/lib/using_yaml.rb +7 -8
- data/spec/spec_helper.rb +11 -0
- data/spec/using_yaml/path_spec.rb +0 -10
- data/using_yaml.gemspec +2 -2
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.1
|
data/lib/using_yaml.rb
CHANGED
@@ -5,10 +5,6 @@ require 'using_yaml/patches/hash'
|
|
5
5
|
|
6
6
|
module UsingYAML
|
7
7
|
class << self
|
8
|
-
def cache
|
9
|
-
@@cache ||= {}
|
10
|
-
end
|
11
|
-
|
12
8
|
def path(klass)
|
13
9
|
return @@path[klass] if defined?(@@path)
|
14
10
|
end
|
@@ -47,22 +43,23 @@ module UsingYAML
|
|
47
43
|
else
|
48
44
|
filename = key
|
49
45
|
options = value
|
50
|
-
using_yaml_file(filename
|
46
|
+
using_yaml_file(filename)
|
51
47
|
end
|
52
48
|
end
|
53
49
|
end
|
54
50
|
end
|
55
51
|
end
|
56
52
|
|
57
|
-
def using_yaml_file(filename
|
53
|
+
def using_yaml_file(filename)
|
58
54
|
define_method(filename) do
|
59
55
|
pathname = using_yaml_path.join("#{filename}.yml").expand_path
|
60
|
-
|
56
|
+
cache = (@using_yaml_cache ||= {})
|
57
|
+
data = @using_yaml_cache[pathname]
|
61
58
|
return data if data
|
62
59
|
|
63
60
|
begin
|
64
61
|
data = YAML.load_file(pathname).to_ohash(pathname)
|
65
|
-
|
62
|
+
@using_yaml_cache[pathname] = data
|
66
63
|
rescue Exception => e
|
67
64
|
$stderr.puts "(UsingYAML) Could not load #{filename}: #{e.message}" unless UsingYAML.squelched?
|
68
65
|
nil
|
@@ -72,6 +69,8 @@ module UsingYAML
|
|
72
69
|
end
|
73
70
|
|
74
71
|
module InstanceMethods
|
72
|
+
attr_accessor :using_yaml_cache
|
73
|
+
|
75
74
|
def using_yaml_path
|
76
75
|
path = UsingYAML.path(self.class.name)
|
77
76
|
path = path.call(self) if path.is_a? Proc
|
data/spec/spec_helper.rb
CHANGED
@@ -13,3 +13,14 @@ class Person
|
|
13
13
|
include UsingYAML
|
14
14
|
using_yaml :children
|
15
15
|
end
|
16
|
+
|
17
|
+
def reset_person!
|
18
|
+
Person.class_eval do
|
19
|
+
include UsingYAML
|
20
|
+
using_yaml :children
|
21
|
+
end
|
22
|
+
|
23
|
+
UsingYAML.path = ['Person', nil]
|
24
|
+
@person.using_yaml_path = nil
|
25
|
+
@person.using_yaml_cache = nil
|
26
|
+
end
|
@@ -1,15 +1,5 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/../spec_helper'
|
2
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
3
|
describe "UsingYAML#paths" do
|
14
4
|
before(:each) do
|
15
5
|
@person = Person.new
|
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.3.
|
8
|
+
s.version = "0.3.1"
|
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-15}
|
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 = [
|
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.3.
|
4
|
+
version: 0.3.1
|
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-15 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|