annal 0.0.1 → 0.0.2

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.
@@ -2,6 +2,7 @@ require "annal/version"
2
2
  require 'annal/parse'
3
3
  require 'annal/fetch'
4
4
  require 'annal/document'
5
+ require 'annal/collection'
5
6
 
6
7
  module Annal
7
8
  def self.root
@@ -0,0 +1,16 @@
1
+ module Annal
2
+ class Collection
3
+ attr_accessor :dir
4
+ def initialize(dir)
5
+ self.dir = dir
6
+ end
7
+
8
+ def file_paths(glob_match = '*')
9
+ Dir.glob("#{dir}/#{glob_match}").select {|path| File.file?(path) }
10
+ end
11
+
12
+ def documents
13
+ file_paths.collect {|fp| Document.find(fp) }
14
+ end
15
+ end
16
+ end
@@ -13,7 +13,11 @@ module Annal
13
13
 
14
14
  # Also parses JSON
15
15
  def parse_yaml
16
- YAML.load(raw_data)
16
+ begin
17
+ YAML.load(raw_data)
18
+ rescue Psych::SyntaxError
19
+ raw_data
20
+ end
17
21
  end
18
22
  end
19
23
  end
@@ -1,3 +1,3 @@
1
1
  module Annal
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -0,0 +1,24 @@
1
+ require_relative 'minitest_helper'
2
+
3
+ class TestCollectionIntegration < MiniTest::Unit::TestCase
4
+ def setup
5
+ @collection = Annal::Collection.new("#{Annal.project_root}/test")
6
+ end
7
+
8
+ def test_file_paths
9
+ assert_operator @collection.file_paths.length, :>, 1
10
+ end
11
+
12
+ def test_file_paths
13
+ refute_includes @collection.file_paths, "#{Annal.project_root}/test/test-dir"
14
+ end
15
+
16
+ def test_documents
17
+ assert_operator @collection.documents.length, :>, 1
18
+ end
19
+
20
+ def test_glob
21
+ assert_equal ["#{Annal.project_root}/test/test.yml"], @collection.file_paths('*.yml')
22
+ end
23
+
24
+ end
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: annal
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-21 00:00:00.000000000 Z
12
+ date: 2013-01-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &70229027829860 !ruby/object:Gem::Requirement
16
+ requirement: &70321319294640 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70229027829860
24
+ version_requirements: *70321319294640
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: minitest
27
- requirement: &70229027829060 !ruby/object:Gem::Requirement
27
+ requirement: &70321319293840 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70229027829060
35
+ version_requirements: *70321319293840
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70229027828380 !ruby/object:Gem::Requirement
38
+ requirement: &70321319292820 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70229027828380
46
+ version_requirements: *70321319292820
47
47
  description: Loads up files. Parses YAML/JSON and other stuff maybe.
48
48
  email:
49
49
  - samsm@samsm.com
@@ -59,15 +59,18 @@ files:
59
59
  - Rakefile
60
60
  - annal.gemspec
61
61
  - lib/annal.rb
62
+ - lib/annal/collection.rb
62
63
  - lib/annal/document.rb
63
64
  - lib/annal/fetch.rb
64
65
  - lib/annal/parse.rb
65
66
  - lib/annal/version.rb
66
67
  - test/annal_integration_test.rb
67
68
  - test/annal_test.rb
69
+ - test/collection_integration_test.rb
68
70
  - test/fetch_integration_spec.rb
69
71
  - test/minitest_helper.rb
70
72
  - test/parse_integration_test.rb
73
+ - test/test-dir/.gitkeep
71
74
  - test/test.json
72
75
  - test/test.yml
73
76
  homepage: ''
@@ -84,7 +87,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
84
87
  version: '0'
85
88
  segments:
86
89
  - 0
87
- hash: 1386763992562460045
90
+ hash: -263292446635961119
88
91
  required_rubygems_version: !ruby/object:Gem::Requirement
89
92
  none: false
90
93
  requirements:
@@ -93,7 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
93
96
  version: '0'
94
97
  segments:
95
98
  - 0
96
- hash: 1386763992562460045
99
+ hash: -263292446635961119
97
100
  requirements: []
98
101
  rubyforge_project:
99
102
  rubygems_version: 1.8.10
@@ -103,8 +106,10 @@ summary: A wrapper for text files.
103
106
  test_files:
104
107
  - test/annal_integration_test.rb
105
108
  - test/annal_test.rb
109
+ - test/collection_integration_test.rb
106
110
  - test/fetch_integration_spec.rb
107
111
  - test/minitest_helper.rb
108
112
  - test/parse_integration_test.rb
113
+ - test/test-dir/.gitkeep
109
114
  - test/test.json
110
115
  - test/test.yml