dircat 0.1.12 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. data/LICENSE.txt +1 -1
  2. data/README.md +31 -6
  3. data/bin/dircat +5 -1
  4. data/bin/scat +9 -0
  5. data/dircat.gemspec +48 -15
  6. data/examples/example.rb +2 -1
  7. data/lib/dircat.rb +29 -34
  8. data/lib/dircat/cat_on_sqlite/cat_on_sqlite.rb +177 -0
  9. data/lib/dircat/cat_on_sqlite/directory_visitor.rb +106 -0
  10. data/lib/dircat/cat_on_sqlite/migration/00_create_dircat_properties.rb +13 -0
  11. data/lib/dircat/cat_on_sqlite/migration/01_create_categories.rb +12 -0
  12. data/lib/dircat/cat_on_sqlite/migration/02_create_images.rb +16 -0
  13. data/lib/dircat/cat_on_sqlite/migration/03_create_items.rb +23 -0
  14. data/lib/dircat/cat_on_sqlite/migration/04_create_taggings.rb +13 -0
  15. data/lib/dircat/cat_on_sqlite/migration/05_create_tags.rb +13 -0
  16. data/lib/dircat/cat_on_sqlite/model/category.rb +16 -0
  17. data/lib/dircat/cat_on_sqlite/model/image.rb +24 -0
  18. data/lib/dircat/cat_on_sqlite/model/item.rb +19 -0
  19. data/lib/dircat/cat_on_sqlite/model/tag.rb +58 -0
  20. data/lib/dircat/cat_on_sqlite/model/tagging.rb +9 -0
  21. data/lib/dircat/cat_on_sqlite/simple_cataloger_error.rb +9 -0
  22. data/lib/dircat/cat_on_sqlite_cli/cli_cat.rb +25 -0
  23. data/lib/dircat/cat_on_sqlite_cli/cli_server.rb +65 -0
  24. data/lib/dircat/cat_on_sqlite_cli/cmd_create.rb +56 -0
  25. data/lib/dircat/cat_on_sqlite_cli/cmd_list.rb +72 -0
  26. data/lib/dircat/cat_on_sqlite_cli/cmd_server.rb +62 -0
  27. data/lib/dircat/cat_on_sqlite_cli/cmd_update.rb +49 -0
  28. data/lib/dircat/{cat.rb → cat_on_yaml/cat_on_yaml.rb} +22 -10
  29. data/lib/dircat/cat_on_yaml/entry.rb +64 -0
  30. data/lib/dircat/{cli → cat_on_yaml_cli}/cli_dircat.rb +0 -0
  31. data/lib/dircat/{cli → cat_on_yaml_cli}/command_build.rb +53 -12
  32. data/lib/dircat/{cli → cat_on_yaml_cli}/command_diff.rb +4 -4
  33. data/lib/dircat/{cli → cat_on_yaml_cli}/command_query.rb +16 -2
  34. data/lib/dircat/config.rb +25 -0
  35. data/lib/dircat/extensions.rb +26 -0
  36. data/lib/dircat/server/helpers.rb +60 -0
  37. data/lib/dircat/server/my_static.rb +40 -0
  38. data/lib/dircat/server/web_server.rb +176 -0
  39. data/lib/dircat/version.rb +2 -1
  40. data/lib/dircat_on_sqlite.rb +31 -0
  41. data/lib/dircat_on_sqlite_cli.rb +37 -0
  42. data/lib/simple_cataloger_dm/cli.rb +32 -0
  43. data/lib/simple_cataloger_dm/core.rb +43 -0
  44. data/lib/simple_cataloger_dm/core/catalog.rb +141 -0
  45. data/lib/simple_cataloger_dm/core/directory_visitor.rb +107 -0
  46. data/lib/simple_cataloger_dm/core/extensions.rb +26 -0
  47. data/lib/simple_cataloger_dm/core/simple_cataloger_error.rb +9 -0
  48. data/lib/simple_cataloger_dm/models/category.rb +21 -0
  49. data/lib/simple_cataloger_dm/models/image.rb +30 -0
  50. data/lib/simple_cataloger_dm/models/item.rb +24 -0
  51. data/lib/simple_cataloger_dm/models/tag.rb +62 -0
  52. data/lib/simple_cataloger_dm/models/tagging.rb +11 -0
  53. data/lib/simple_cataloger_dm/server/helpers.rb +60 -0
  54. data/lib/simple_cataloger_dm/server/my_static.rb +40 -0
  55. data/lib/simple_cataloger_dm/server/web_server.rb +171 -0
  56. data/spec/dircat/cat_on_sqlite/cat_on_sqlite_spec.rb +41 -0
  57. data/spec/dircat/cat_on_sqlite_web/web_server_spec.rb +30 -0
  58. data/spec/dircat/{cat_spec.rb → cat_on_yaml/cat_on_yaml_spec.rb} +20 -14
  59. data/spec/dircat/{cli → cat_on_yaml_cli}/cli_dircat_spec.rb +0 -0
  60. data/spec/dircat/{cli → cat_on_yaml_cli}/command_build_spec.rb +4 -4
  61. data/spec/dircat/{cli → cat_on_yaml_cli}/command_diff_spec.rb +0 -0
  62. data/spec/dircat/{cli → cat_on_yaml_cli}/command_query_spec.rb +1 -1
  63. data/spec/fixtures/certified_output/cat_dir1_20120811.yaml +25 -0
  64. data/spec/fixtures/certified_output/cat_dir2_20120811.yaml +34 -0
  65. data/spec/fixtures/certified_output/{dircat1.yaml → dircat1_version_0.1.yaml} +0 -0
  66. data/spec/fixtures/certified_output/{dircat2.yaml → dircat2_version_0.1.yaml} +0 -0
  67. data/spec/fixtures/dir4/file1.txt +1 -0
  68. data/spec/fixtures/dir4/file2.txt +1 -0
  69. data/spec/fixtures/dir4/subdir/file3.txt +1 -0
  70. data/spec/fixtures/films/A-Z/A/Arancia meccanica [Stanley Kubrick][1971]/folder.jpg +0 -0
  71. data/spec/fixtures/films/A-Z/P/Plan 9 [Edward Wood][1959]/folder.jpg +0 -0
  72. data/spec/fixtures/films/Directors/[Akira Kurosawa]/[1940] Dersu Uzala [5]/folder.jpg +0 -0
  73. data/spec/fixtures/films/Directors/[Akira Kurosawa]/[1965] Barbarossa [Toshiro Mifune][4]/folder.jpg +0 -0
  74. data/spec/fixtures/films/Directors/[Federico Fellini]/[1963] 8 e mezzo [Marcello Mastroianni][Claudia Cardinale][5]/folder.jpg +0 -0
  75. data/spec/fixtures/films/Directors/[Woody Allen]/[1977] Annie Hall [Diane Keaton][5]/folder.jpg +0 -0
  76. data/{.gemtest → spec/fixtures/readme.txt} +0 -0
  77. data/spec/fixtures/tmp/test_ar.sqlite3 +0 -0
  78. data/spec/fixtures/tmp/test_ar.yml +7 -0
  79. data/spec/generate_directories_to_catalog.rb +80 -0
  80. data/spec/generate_mysql_catalog.rb +124 -0
  81. data/spec/spec_helper.rb +29 -0
  82. data/tasks/rspec.rake +0 -2
  83. metadata +390 -112
  84. data/lib/dircat/entry.rb +0 -61
  85. data/lib/dircat/extension_md5.rb +0 -25
  86. data/lib/dircat/extension_numeric.rb +0 -15
  87. data/spec/dircat/md5_spec.rb +0 -8
  88. data/spec/dircat/numeric_spec.rb +0 -13
data/lib/dircat/entry.rb DELETED
@@ -1,61 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- module DirCat
3
-
4
- class EntrySer < OpenStruct
5
- end
6
-
7
- #
8
- # Entry
9
- #
10
- class Entry
11
-
12
- attr_reader :md5
13
- attr_reader :name
14
- attr_reader :path
15
- attr_reader :size
16
- attr_reader :mtime
17
-
18
- def from_filename( filename )
19
- @name = File.basename(filename)
20
- @path = File.dirname(filename)
21
- stat = File.stat(filename)
22
- @size = stat.size
23
- @mtime = stat.mtime
24
- # self.md5 = Digest::MD5.hexdigest(File.read( f ))
25
- @md5 = MD5.file( filename ).hexdigest
26
- self
27
- end
28
-
29
- def from_ser( entry_ser )
30
- @md5 = entry_ser.md5
31
- @name = entry_ser.name
32
- @path = entry_ser.path
33
- @size = entry_ser.size
34
- @mtime = entry_ser.mtime
35
- self
36
- end
37
-
38
- def to_ser
39
- entry_ser = EntrySer.new
40
- entry_ser.md5 = @md5
41
- entry_ser.name = @name
42
- entry_ser.path = @path
43
- entry_ser.size = @size
44
- entry_ser.mtime = @mtime
45
- entry_ser
46
- end
47
-
48
- def to_s
49
- @md5 + " " + @name + "\t " + @path + "\n"
50
- end
51
-
52
- end
53
-
54
- class DirCatSer < OpenStruct
55
- end
56
-
57
-
58
- class DirCatException < RuntimeError
59
- end
60
-
61
- end
@@ -1,25 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # calculate md5 of big files, snipped found on usenet
4
- #
5
-
6
- if RUBY_VERSION =~ /1\.8/
7
- # std lib
8
- require 'md5'
9
- else
10
- # std lib
11
- require 'digest/md5'
12
- include Digest
13
- end
14
-
15
- class MD5
16
- def self.file(file)
17
- File.open(file, "rb") do |f|
18
- res = self.new
19
- while (data = f.read(4096))
20
- res << data
21
- end
22
- res
23
- end
24
- end
25
- end
@@ -1,15 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- class Numeric
3
- #
4
- # returns a string separated by the thousands <separator>
5
- # es.: 100000 -> 1.000.000
6
- #
7
- def with_separator( separator = ',', length = 3 )
8
- splitter = Regexp.compile "(\\d{#{length}})"
9
- before, after = self.to_s.split('.')
10
- before = before.reverse.gsub splitter, '\1' + separator
11
- str = "#{ before.chomp( separator ).reverse }"
12
- str += ".#{ after }" if after
13
- str
14
- end
15
- end
@@ -1,8 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- require File.expand_path( File.join(File.dirname(__FILE__), "..", "spec_helper") )
3
- describe "MD5" do
4
- it "test_simple_md5" do
5
- file_name = File.expand_path( File.join( File.dirname(__FILE__), "..", "..", "lib", "dircat", "extension_md5.rb" ) )
6
- MD5.file( file_name ).to_s.should == "ab4bc9cf679dede00672f2246e204b06"
7
- end
8
- end
@@ -1,13 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- require File.expand_path( File.join(File.dirname(__FILE__), "..", "spec_helper") )
4
-
5
- describe "TCNumeric" do
6
-
7
- it "test_simple" do
8
- 10.with_separator.should == "10"
9
- 10.0.with_separator.should == "10.0"
10
- 1000000.with_separator.should == "1,000,000"
11
- end
12
-
13
- end