gom-filesystem-adapter 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.
@@ -27,12 +27,17 @@ class GOM::Storage::Filesystem::Adapter < GOM::Storage::Adapter
27
27
  read_only_error
28
28
  end
29
29
 
30
+ def count
31
+ check_setup
32
+ @drafts.size
33
+ end
34
+
30
35
  def collection(view_name, options = { })
31
36
  check_setup
37
+ configuration = self.configuration
32
38
  view = configuration.views[view_name.to_sym]
33
39
  raise ViewNotFoundError, "there are no view with the name #{view_name}" unless view
34
- fetcher = GOM::Storage::Filesystem::Collection::Fetcher.new @drafts, view
35
- GOM::Object::Collection.new fetcher
40
+ GOM::Object::Collection.new GOM::Storage::Filesystem::Collection::Fetcher.new(@drafts, view), configuration.name
36
41
  end
37
42
 
38
43
  private
@@ -28,20 +28,20 @@ class GOM::Storage::Filesystem::Loader
28
28
  end
29
29
 
30
30
  def load_file_hash(file_hash)
31
- file_hash.each do |id, hash|
32
- @drafts[id] = Builder.new(hash).draft
31
+ file_hash.each do |object_id, hash|
32
+ @drafts[object_id] = Builder.new(object_id, hash).draft
33
33
  end
34
34
  end
35
35
 
36
36
  # Builds a draft out of the file hashes.
37
37
  class Builder
38
38
 
39
- def initialize(hash)
40
- @hash = hash
39
+ def initialize(object_id, hash)
40
+ @object_id, @hash = object_id, hash
41
41
  end
42
42
 
43
43
  def draft
44
- @draft = GOM::Object::Draft.new
44
+ initialize_draft
45
45
  set_class_name
46
46
  set_properties
47
47
  set_relations
@@ -50,6 +50,10 @@ class GOM::Storage::Filesystem::Loader
50
50
 
51
51
  private
52
52
 
53
+ def initialize_draft
54
+ @draft = GOM::Object::Draft.new @object_id
55
+ end
56
+
53
57
  def set_class_name
54
58
  @draft.class_name = @hash["class"] || "Object"
55
59
  end
@@ -4,12 +4,12 @@ describe GOM::Storage::Filesystem::Adapter do
4
4
 
5
5
  before :each do
6
6
  @draft = mock GOM::Object::Draft
7
- @drafts = mock Hash, :[] => @draft
7
+ @drafts = mock Hash, :[] => @draft, :size => 1
8
8
 
9
9
  @loader = mock GOM::Storage::Filesystem::Loader, :drafts => @drafts
10
10
  GOM::Storage::Filesystem::Loader.stub(:new).and_return(@loader)
11
11
 
12
- @configuration = mock GOM::Storage::Configuration
12
+ @configuration = mock GOM::Storage::Configuration, :name => "test_storage"
13
13
  @configuration.stub(:[]).with(:files).and_return("test_files")
14
14
  @adapter = described_class.new @configuration
15
15
  end
@@ -107,6 +107,25 @@ describe GOM::Storage::Filesystem::Adapter do
107
107
 
108
108
  end
109
109
 
110
+ describe "count" do
111
+
112
+ before :each do
113
+ @adapter.setup
114
+ end
115
+
116
+ it "should return the object hash" do
117
+ @adapter.count.should == 1
118
+ end
119
+
120
+ it "should raise a #{GOM::Storage::Adapter::NoSetupError} if no drafts has been loaded" do
121
+ @adapter.teardown
122
+ lambda do
123
+ @adapter.count
124
+ end.should raise_error(GOM::Storage::Adapter::NoSetupError)
125
+ end
126
+
127
+ end
128
+
110
129
  describe "collection" do
111
130
 
112
131
  before :each do
@@ -61,11 +61,13 @@ describe GOM::Storage::Filesystem::Loader do
61
61
 
62
62
  it "should convert the file hash into drafts" do
63
63
  draft_one = @loader.drafts["object_1"]
64
+ draft_one.object_id.should == "object_1"
64
65
  draft_one.class_name.should == "Test::Model"
65
66
  draft_one.properties.should == { "test" => "test value" }
66
67
  draft_one.relations.should == { "related_object" => @proxy }
67
68
 
68
69
  draft_two = @loader.drafts["object_2"]
70
+ draft_two.object_id.should == "object_2"
69
71
  draft_two.class_name.should == "Object"
70
72
  draft_two.properties.should == { "test" => "another test value" }
71
73
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 3
8
- - 0
9
- version: 0.3.0
8
+ - 1
9
+ version: 0.3.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - "Philipp Br\xC3\xBCll"
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-02-17 00:00:00 +01:00
17
+ date: 2011-03-07 00:00:00 +01:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -28,7 +28,8 @@ dependencies:
28
28
  segments:
29
29
  - 0
30
30
  - 3
31
- version: "0.3"
31
+ - 1
32
+ version: 0.3.1
32
33
  type: :runtime
33
34
  version_requirements: *id001
34
35
  - !ruby/object:Gem::Dependency
@@ -70,20 +71,20 @@ files:
70
71
  - README.rdoc
71
72
  - LICENSE
72
73
  - Rakefile
73
- - lib/gom/storage.rb
74
- - lib/gom/filesystem-adapter.rb
75
- - lib/gom/storage/filesystem/collection/fetcher.rb
76
- - lib/gom/storage/filesystem/collection.rb
77
74
  - lib/gom/storage/filesystem/adapter.rb
78
75
  - lib/gom/storage/filesystem/loader.rb
76
+ - lib/gom/storage/filesystem/collection/fetcher.rb
77
+ - lib/gom/storage/filesystem/collection.rb
79
78
  - lib/gom/storage/filesystem.rb
80
- - spec/storage.configuration
81
- - spec/gom/storage/filesystem/loader_spec.rb
79
+ - lib/gom/filesystem-adapter.rb
80
+ - lib/gom/storage.rb
82
81
  - spec/gom/storage/filesystem/collection/fetcher_spec.rb
83
82
  - spec/gom/storage/filesystem/adapter_spec.rb
84
- - spec/acceptance/adapter_spec.rb
85
- - spec/acceptance/data/objects.yml
83
+ - spec/gom/storage/filesystem/loader_spec.rb
84
+ - spec/storage.configuration
86
85
  - spec/spec_helper.rb
86
+ - spec/acceptance/data/objects.yml
87
+ - spec/acceptance/adapter_spec.rb
87
88
  has_rdoc: true
88
89
  homepage: http://github.com/phifty/gom-filesystem-adapter
89
90
  licenses: []
@@ -117,7 +118,7 @@ signing_key:
117
118
  specification_version: 3
118
119
  summary: Filesystem storage adapter for the General Object Mapper.
119
120
  test_files:
120
- - spec/gom/storage/filesystem/loader_spec.rb
121
121
  - spec/gom/storage/filesystem/collection/fetcher_spec.rb
122
122
  - spec/gom/storage/filesystem/adapter_spec.rb
123
+ - spec/gom/storage/filesystem/loader_spec.rb
123
124
  - spec/acceptance/adapter_spec.rb