couch-quilt 0.2.2 → 0.2.3

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.
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"