rom-yaml 0.0.1 → 0.1.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +13 -0
- data/lib/rom/yaml/dataset.rb +1 -2
- data/lib/rom/yaml/repository.rb +50 -12
- data/lib/rom/yaml/version.rb +1 -1
- data/rom-yaml.gemspec +1 -1
- data/spec/unit/dataset_spec.rb +2 -2
- metadata +11 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 794b2d24bea0ff0867b5dcdbe980597c032c6971
|
4
|
+
data.tar.gz: edc4737b87e16147cf0cfa028549b4e2a53a888d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 77a6e50f68d1f1a0141c0acd1cfa5b9597d32a1c0b0cfc7d484f63cab2136303e84d9b35218e7a41a0176865939970228ce141ef863ba0c1d01e9c4846bae7ab
|
7
|
+
data.tar.gz: 97f6d0a5b77b1a6fa8158fa3ebce5d12257f518d92386127a86ed1e6f22fab0a315c2dc3b087d0184aac6e5668ccd09a4738eeea86f327df72b1e12efd0e7628
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
## v0.1.0 2015-05-19
|
2
|
+
|
3
|
+
### Added
|
4
|
+
|
5
|
+
* Support for loading relations from multiple files (solnic)
|
6
|
+
|
7
|
+
### Changed
|
8
|
+
|
9
|
+
* Symbolize keys recursively in tuples (cflipse)
|
10
|
+
* Make it work with ROM 0.7.0 (cflipse)
|
11
|
+
|
12
|
+
[Compare v0.0.1...v0.1.0](https://github.com/rom-rb/rom-yaml/compare/v0.0.1...v0.1.0)
|
13
|
+
|
1
14
|
## v0.0.1 2015-03-22
|
2
15
|
|
3
16
|
First public release
|
data/lib/rom/yaml/dataset.rb
CHANGED
data/lib/rom/yaml/repository.rb
CHANGED
@@ -21,28 +21,66 @@ module ROM
|
|
21
21
|
#
|
22
22
|
# @api public
|
23
23
|
class Repository < ROM::Repository
|
24
|
-
#
|
24
|
+
# @attr_reader [Hash] sources Data loaded from files
|
25
25
|
#
|
26
26
|
# @api private
|
27
|
-
attr_reader :
|
27
|
+
attr_reader :sources
|
28
28
|
|
29
|
-
# @
|
29
|
+
# @attr_reader [Hash] datasets YAML datasets from sources
|
30
30
|
#
|
31
31
|
# @api private
|
32
|
-
|
33
|
-
|
32
|
+
attr_reader :datasets
|
33
|
+
|
34
|
+
# Create a new yaml repository from a path to file(s)
|
35
|
+
#
|
36
|
+
# @example
|
37
|
+
# repository = ROM::YAML::Repository.new('/path/to/files')
|
38
|
+
#
|
39
|
+
# @param [String, Pathname] path The path to your YAML file(s)
|
40
|
+
#
|
41
|
+
# @return [Repository]
|
42
|
+
#
|
43
|
+
# @api public
|
44
|
+
def self.new(path)
|
45
|
+
super(load_from(path))
|
46
|
+
end
|
34
47
|
|
48
|
+
# Load data from yaml file(s)
|
49
|
+
#
|
50
|
+
# @api private
|
51
|
+
def self.load_from(path)
|
35
52
|
if File.directory?(path)
|
36
|
-
|
37
|
-
name = File.basename(file, '.*')
|
38
|
-
data = ::YAML.load_file(file)[name]
|
39
|
-
h[name] = data
|
40
|
-
end
|
53
|
+
load_files(path)
|
41
54
|
else
|
42
|
-
|
55
|
+
load_file(path)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
# Load yaml files from a given directory and return a name => data map
|
60
|
+
#
|
61
|
+
# @api private
|
62
|
+
def self.load_files(path)
|
63
|
+
Dir["#{path}/*.yml"].each_with_object({}) do |file, h|
|
64
|
+
name = File.basename(file, '.*')
|
65
|
+
h[name] = load_file(file).fetch(name)
|
43
66
|
end
|
44
67
|
end
|
45
68
|
|
69
|
+
# Load yaml file
|
70
|
+
#
|
71
|
+
# @api private
|
72
|
+
def self.load_file(path)
|
73
|
+
::YAML.load_file(path)
|
74
|
+
end
|
75
|
+
|
76
|
+
# @param [String] path The absolute path to yaml file
|
77
|
+
#
|
78
|
+
# @api private
|
79
|
+
def initialize(sources)
|
80
|
+
@sources = sources
|
81
|
+
@datasets = {}
|
82
|
+
end
|
83
|
+
|
46
84
|
# Return dataset by its name
|
47
85
|
#
|
48
86
|
# @param [Symbol]
|
@@ -62,7 +100,7 @@ module ROM
|
|
62
100
|
#
|
63
101
|
# @api public
|
64
102
|
def dataset(name)
|
65
|
-
datasets[name] = Dataset.new(
|
103
|
+
datasets[name] = Dataset.new(sources.fetch(name.to_s))
|
66
104
|
end
|
67
105
|
|
68
106
|
# Return if a dataset with provided name exists
|
data/lib/rom/yaml/version.rb
CHANGED
data/rom-yaml.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_runtime_dependency 'rom', '~> 0.
|
21
|
+
spec.add_runtime_dependency 'rom', '~> 0.7', '>= 0.7.0'
|
22
22
|
|
23
23
|
spec.add_development_dependency 'bundler'
|
24
24
|
spec.add_development_dependency 'rake'
|
data/spec/unit/dataset_spec.rb
CHANGED
@@ -13,8 +13,8 @@ describe ROM::YAML::Dataset do
|
|
13
13
|
expect(dataset.to_a).to eq([{ foo: 23 }])
|
14
14
|
end
|
15
15
|
|
16
|
-
it "
|
16
|
+
it "symbolizes keys recursively" do
|
17
17
|
dataset = ROM::YAML::Dataset.new(["foo" => { "bar" => :baz }])
|
18
|
-
expect(dataset.to_a).to eq([foo: {
|
18
|
+
expect(dataset.to_a).to eq([foo: { bar: :baz }])
|
19
19
|
end
|
20
20
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rom-yaml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Piotr Solnica
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-05-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rom
|
@@ -16,14 +16,20 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: '0.7'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 0.7.0
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
27
|
- - "~>"
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
29
|
+
version: '0.7'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 0.7.0
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: bundler
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -118,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
118
124
|
version: '0'
|
119
125
|
requirements: []
|
120
126
|
rubyforge_project:
|
121
|
-
rubygems_version: 2.
|
127
|
+
rubygems_version: 2.4.5
|
122
128
|
signing_key:
|
123
129
|
specification_version: 4
|
124
130
|
summary: YAML support for Ruby Object Mapper
|
@@ -130,4 +136,3 @@ test_files:
|
|
130
136
|
- spec/spec_helper.rb
|
131
137
|
- spec/unit/dataset_spec.rb
|
132
138
|
- spec/unit/repository_spec.rb
|
133
|
-
has_rdoc:
|