annal 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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