couch-quilt 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
data/couch-quilt.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{couch-quilt}
8
- s.version = "0.2.2"
8
+ s.version = "0.2.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Johannes J\303\266rg Schmidt"]
data/lib/couchquilt/fs.rb CHANGED
@@ -14,7 +14,9 @@ module Couchquilt
14
14
 
15
15
  list case named_path(path)
16
16
  when :root
17
- @couch.get("_all_dbs")
17
+ ["_uuids"] + @couch.get("_all_dbs")
18
+ when :uuids
19
+ ["0i.js"]
18
20
  when :database
19
21
  ["_design"] +
20
22
  # database meta data
@@ -59,7 +61,7 @@ module Couchquilt
59
61
  doc = get_view_result_part(database, id, parts)
60
62
  # arrays and hashes are mapped into directories
61
63
  doc.is_a?(Hash) || doc.is_a?(Array)
62
- when :database_info, :show_function_result, :list_function_result
64
+ when :database_info, :show_function_result, :list_function_result, :uuid
63
65
  false
64
66
  when nil
65
67
  # look into document
@@ -78,7 +80,7 @@ module Couchquilt
78
80
  database, id, *parts = extract_parts(path)
79
81
 
80
82
  case named_path(path)
81
- when :database_info, :show_function_result, :list_function_result
83
+ when :database_info, :show_function_result, :list_function_result, :uuid
82
84
  true
83
85
  when :view_function_result
84
86
  # Every javascript or HTML is file, based on extension
@@ -108,6 +110,8 @@ module Couchquilt
108
110
  @couch.get(remove_extname(File.join(database, id, "_list", *parts)))
109
111
  when :view_function_result
110
112
  get_view_result_part(database, id, parts)
113
+ when :uuid
114
+ get_document_part(database, id, ["uuids"])
111
115
  else
112
116
  get_document_part(database, id, parts)
113
117
  end
@@ -121,7 +125,7 @@ module Couchquilt
121
125
  case named_path(path)
122
126
  when :switch_delete_database, :switch_delete_document
123
127
  true
124
- when :database_info, :show_function_result, :list_function_result, :view_function_result
128
+ when :database_info, :show_function_result, :list_function_result, :view_function_result, :uuid
125
129
  false
126
130
  else
127
131
  File.basename(path) !~ /\A_/ && File.extname(path) == ".js"
@@ -144,7 +148,7 @@ module Couchquilt
144
148
  return false if File.basename(path) =~ /\A_/
145
149
 
146
150
  case named_path(path)
147
- when :database_info, :show_function_result, :list_function_result, :view_function_result
151
+ when :database_info, :show_function_result, :list_function_result, :view_function_result, :uuid
148
152
  false
149
153
  else
150
154
  true
@@ -255,6 +259,10 @@ module Couchquilt
255
259
  if database.nil?
256
260
  # /
257
261
  :root
262
+ elsif database == "_uuids" && id.nil?
263
+ :uuids
264
+ elsif database == "_uuids"
265
+ :uuid
258
266
  elsif id == "_delete"
259
267
  :switch_delete_database
260
268
  elsif parts.size == 1 && parts.first == "_delete"
@@ -385,7 +393,7 @@ module Couchquilt
385
393
  # Appends extname, that is: builds a filename from key and value.
386
394
  # Note: values are casted by extension.
387
395
  def append_extname(key, value)
388
- basename = key.is_a?(Integer) ? "%.3d" % key : key
396
+ basename = key.is_a?(Integer) ? "%di" % key : key
389
397
 
390
398
  case value
391
399
  when Float
@@ -1,3 +1,3 @@
1
1
  module Couchquilt
2
- VERSION = '0.2.2'
2
+ VERSION = '0.2.3'
3
3
  end
@@ -52,6 +52,9 @@ describe "Quilt" do
52
52
  it "contents should list databases" do
53
53
  @quilt.contents("/").should include(TESTDB)
54
54
  end
55
+ it "contents should include _uuids" do
56
+ @quilt.contents("/").should include("_uuids")
57
+ end
55
58
  it "can_mkdir? should return false" do
56
59
  @quilt.can_mkdir?("/").should be_false
57
60
  end
@@ -300,7 +303,7 @@ describe "Quilt" do
300
303
  @quilt.file?("/#{TESTDB}/document_id/array").should be_false
301
304
  end
302
305
  it "contents should list array content" do
303
- @quilt.contents("/#{TESTDB}/document_id/array").should == ["000.js"]
306
+ @quilt.contents("/#{TESTDB}/document_id/array").should == ["0i.js"]
304
307
  end
305
308
  it "can_mkdir? should return false" do
306
309
  @quilt.can_mkdir?("/#{TESTDB}/document_id/array").should be_false
@@ -605,7 +608,7 @@ describe "Quilt" do
605
608
  @quilt.file?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows").should be_false
606
609
  end
607
610
  it "contents should list view rows" do
608
- @quilt.contents("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows").should == ["000"]
611
+ @quilt.contents("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows").should == ["0i"]
609
612
  end
610
613
  it "can_mkdir? should return false" do
611
614
  @quilt.can_mkdir?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows").should be_false
@@ -613,71 +616,71 @@ describe "Quilt" do
613
616
  it "can_rmdir? should return false" do
614
617
  @quilt.can_rmdir?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows").should be_false
615
618
  end
616
- describe "000/" do
619
+ describe "0i/" do
617
620
  it "directory? should return true" do
618
- @quilt.directory?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000").should be_true
621
+ @quilt.directory?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/0i").should be_true
619
622
  end
620
623
  it "file? should return false" do
621
- @quilt.file?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000").should be_false
624
+ @quilt.file?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/0i").should be_false
622
625
  end
623
626
  it "contents should list view result row content" do
624
- @quilt.contents("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000").should == ["id.js", "key.js", "value.js"]
627
+ @quilt.contents("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/0i").should == ["id.js", "key.js", "value.js"]
625
628
  end
626
629
  it "can_mkdir? should return false" do
627
- @quilt.can_mkdir?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000").should be_false
630
+ @quilt.can_mkdir?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/0i").should be_false
628
631
  end
629
632
  it "can_rmdir? should return false" do
630
- @quilt.can_rmdir?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000").should be_false
633
+ @quilt.can_rmdir?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/0i").should be_false
631
634
  end
632
635
  describe "id.js" do
633
636
  it "directory? should return false" do
634
- @quilt.directory?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/id.js").should be_false
637
+ @quilt.directory?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/0i/id.js").should be_false
635
638
  end
636
639
  it "file? should return true" do
637
- @quilt.file?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/id.js").should be_true
640
+ @quilt.file?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/0i/id.js").should be_true
638
641
  end
639
642
  it "read_file should return contents" do
640
- @quilt.read_file("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/id.js").should == "document_id"
643
+ @quilt.read_file("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/0i/id.js").should == "document_id"
641
644
  end
642
645
  it "can_write? should return false" do
643
- @quilt.can_write?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/id.js").should be_false
646
+ @quilt.can_write?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/0i/id.js").should be_false
644
647
  end
645
648
  it "can_delete? should return false" do
646
- @quilt.can_delete?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/id.js").should be_false
649
+ @quilt.can_delete?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/0i/id.js").should be_false
647
650
  end
648
651
  end
649
652
  describe "key.js" do
650
653
  it "directory? should return false" do
651
- @quilt.directory?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/key.js").should be_false
654
+ @quilt.directory?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/0i/key.js").should be_false
652
655
  end
653
656
  it "file? should return true" do
654
- @quilt.file?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/key.js").should be_true
657
+ @quilt.file?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/0i/key.js").should be_true
655
658
  end
656
659
  it "read_file should return contents" do
657
- @quilt.read_file("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/key.js").should == "This is a name"
660
+ @quilt.read_file("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/0i/key.js").should == "This is a name"
658
661
  end
659
662
  it "can_write? should return false" do
660
- @quilt.can_write?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/key.js").should be_false
663
+ @quilt.can_write?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/0i/key.js").should be_false
661
664
  end
662
665
  it "can_delete? should return false" do
663
- @quilt.can_delete?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/key.js").should be_false
666
+ @quilt.can_delete?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/0i/key.js").should be_false
664
667
  end
665
668
  end
666
669
  describe "value.js" do
667
670
  it "directory? should return false" do
668
- @quilt.directory?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/value.js").should be_false
671
+ @quilt.directory?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/0i/value.js").should be_false
669
672
  end
670
673
  it "file? should return true" do
671
- @quilt.file?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/value.js").should be_true
674
+ @quilt.file?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/0i/value.js").should be_true
672
675
  end
673
676
  it "read_file should return contents" do
674
- @quilt.read_file("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/value.js").should == ""
677
+ @quilt.read_file("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/0i/value.js").should == ""
675
678
  end
676
679
  it "can_write? should return false" do
677
- @quilt.can_write?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/value.js").should be_false
680
+ @quilt.can_write?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/0i/value.js").should be_false
678
681
  end
679
682
  it "can_delete? should return false" do
680
- @quilt.can_delete?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/000/value.js").should be_false
683
+ @quilt.can_delete?("/#{TESTDB}/_design/design_document_id/_view/view_function_name/rows/0i/value.js").should be_false
681
684
  end
682
685
  end
683
686
  end
@@ -687,5 +690,41 @@ describe "Quilt" do
687
690
  end
688
691
  end
689
692
  end
693
+
694
+ # /_uuids
695
+ describe "_uuids/" do
696
+ it "directory? should return true" do
697
+ @quilt.directory?("/_uuids").should be_true
698
+ end
699
+ it "file? should return false" do
700
+ @quilt.file?("/_uuids").should be_false
701
+ end
702
+ it "can_mkdir? should return false" do
703
+ @quilt.can_mkdir?("/_uuids").should be_false
704
+ end
705
+ it "can_rmdir? should return false" do
706
+ @quilt.can_rmdir?("/_uuids").should be_false
707
+ end
708
+ it "contents should include 0i.js" do
709
+ @quilt.contents("/_uuids").should == ["0i.js"]
710
+ end
711
+ describe "0i.js" do
712
+ it "directory? should return false" do
713
+ @quilt.directory?("/_uuids/0i.js").should be_false
714
+ end
715
+ it "file? should return true" do
716
+ @quilt.file?("/_uuids/0i.js").should be_true
717
+ end
718
+ it "can_delete? should return false" do
719
+ @quilt.can_delete?("/_uuids/0i.js").should be_false
720
+ end
721
+ it "can_write? should return false" do
722
+ @quilt.can_write?("/_uuids/0i.js").should be_false
723
+ end
724
+ it "read_file should return contents" do
725
+ @quilt.read_file("/_uuids/0i.js").should =~ /\A[a-z0-9]{32}\z/
726
+ end
727
+ end
728
+ end
690
729
  end
691
730
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: couch-quilt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - "Johannes J\xC3\xB6rg Schmidt"