bluemark-smallcage 0.1.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.
Files changed (79) hide show
  1. data/History.txt +48 -0
  2. data/License.txt +20 -0
  3. data/README.txt +1 -0
  4. data/Rakefile +140 -0
  5. data/bin/smc +16 -0
  6. data/lib/smallcage.rb +18 -0
  7. data/lib/smallcage/application.rb +164 -0
  8. data/lib/smallcage/commands/auto.rb +158 -0
  9. data/lib/smallcage/commands/base.rb +19 -0
  10. data/lib/smallcage/commands/clean.rb +32 -0
  11. data/lib/smallcage/commands/export.rb +41 -0
  12. data/lib/smallcage/commands/import.rb +217 -0
  13. data/lib/smallcage/commands/manifest.rb +39 -0
  14. data/lib/smallcage/commands/server.rb +15 -0
  15. data/lib/smallcage/commands/update.rb +121 -0
  16. data/lib/smallcage/document_path.rb +46 -0
  17. data/lib/smallcage/erb_base.rb +16 -0
  18. data/lib/smallcage/http_server.rb +66 -0
  19. data/lib/smallcage/loader.rb +278 -0
  20. data/lib/smallcage/misc.rb +13 -0
  21. data/lib/smallcage/renderer.rb +19 -0
  22. data/lib/smallcage/resources/Manifest.erb +19 -0
  23. data/lib/smallcage/resources/auto.html +119 -0
  24. data/lib/smallcage/runner.rb +51 -0
  25. data/lib/smallcage/version.rb +9 -0
  26. data/project/base/_smc/helpers/base_helper.rb +41 -0
  27. data/project/base/_smc/helpers/site_helper.rb +5 -0
  28. data/project/base/_smc/templates/default.rhtml +5 -0
  29. data/project/base/_smc/templates/footer.rhtml +0 -0
  30. data/project/base/_smc/templates/header.rhtml +0 -0
  31. data/project/bluecloth/_smc/helpers/blue_cloth_helper.rb +10 -0
  32. data/project/bluecloth/_smc/templates/markdown.rhtml +5 -0
  33. data/project/lang/_smc/helpers/lang_helper.rb +19 -0
  34. data/project/lang/_smc/templates/other_lang.rhtml +6 -0
  35. data/project/news/_smc/helpers/news_helper.rb +36 -0
  36. data/project/nkf/_smc/filters/filters.yml +3 -0
  37. data/project/nkf/_smc/filters/nkf_filter.rb +15 -0
  38. data/project/rake/_smc/Rakefile +68 -0
  39. data/project/redcloth/_smc/helpers/red_cloth_helper.rb +10 -0
  40. data/project/redcloth/_smc/templates/textile.rhtml +5 -0
  41. data/project/relpath/_smc/filters/filters.yml +2 -0
  42. data/project/relpath/_smc/filters/relpath_filter.rb +13 -0
  43. data/project/standard/_dir.smc +2 -0
  44. data/project/standard/_smc/helpers/base_helper.rb +34 -0
  45. data/project/standard/_smc/helpers/menu_helper.rb +23 -0
  46. data/project/standard/_smc/templates/default.rhtml +5 -0
  47. data/project/standard/_smc/templates/footer.rhtml +13 -0
  48. data/project/standard/_smc/templates/header.rhtml +37 -0
  49. data/project/standard/_smc/templates/menu.rhtml +6 -0
  50. data/project/standard/_smc/templates/redirect.rhtml +13 -0
  51. data/project/standard/_smc/templates/sidebar.rhtml +7 -0
  52. data/project/standard/_smc/templates/topic_path.rhtml +6 -0
  53. data/project/standard/common/css/default.css +145 -0
  54. data/project/standard/common/css/print.css +0 -0
  55. data/project/standard/index.html.smc +3 -0
  56. data/project/standard/sample/_dir.smc +1 -0
  57. data/project/standard/sample/index.html.smc +7 -0
  58. data/project/standard/sample/redirect.html.smc +2 -0
  59. data/project/standard/sample/sub/_dir.smc +1 -0
  60. data/project/standard/sample/sub/contents.html.smc +3 -0
  61. data/project/standard/sample/sub/index.html.smc +7 -0
  62. data/spec/data/htdocs1/_dir.smc +0 -0
  63. data/spec/data/htdocs1/a/b/c/index.html.smc +6 -0
  64. data/spec/data/htdocs2/_smc/templates/dummy.rhtml +0 -0
  65. data/spec/data/htdocs2/a/b/c/test.html +1 -0
  66. data/spec/data/htdocs2/a/b/test.html +1 -0
  67. data/spec/data/htdocs2/a/test.html.smc +2 -0
  68. data/spec/document_path_spec.rb +42 -0
  69. data/spec/export_spec.rb +45 -0
  70. data/spec/import_spec.rb +20 -0
  71. data/spec/loader_spec.rb +55 -0
  72. data/spec/manifest_spec.rb +39 -0
  73. data/spec/misc_spec.rb +25 -0
  74. data/spec/smallcage_spec.rb +40 -0
  75. data/spec/spec.opts +1 -0
  76. data/spec/spec_helper.rb +9 -0
  77. data/test/test_helper.rb +2 -0
  78. data/test/test_smallcage.rb +11 -0
  79. metadata +193 -0
@@ -0,0 +1,20 @@
1
+ require File.dirname(__FILE__) + '/spec_helper.rb'
2
+ require 'smallcage'
3
+
4
+ describe "SmallCage::Commands::Import" do
5
+ root = Pathname.new(File.dirname(__FILE__) + "/data")
6
+
7
+ it "should import default project" do
8
+ tmpdir = root + "tmp"
9
+ Dir.mkdir(tmpdir) unless tmpdir.directory?
10
+
11
+ opts = { :command => "import", :from => "default", :to => tmpdir.to_s, :quiet => true }
12
+ SmallCage::Runner.run(opts)
13
+
14
+ (tmpdir + "_smc").directory?.should be_true
15
+ (tmpdir + "_smc/helpers/base_helper.rb").file?.should be_true
16
+
17
+ FileUtils.rm_r(tmpdir)
18
+ end
19
+
20
+ end
@@ -0,0 +1,55 @@
1
+ require File.dirname(__FILE__) + '/spec_helper.rb'
2
+ require 'smallcage'
3
+
4
+ describe SmallCage::Loader do
5
+
6
+ before do
7
+ @docroot = Pathname.new(File.dirname(__FILE__) + "/data/htdocs1")
8
+ end
9
+
10
+ it "should load path value which returns Pathname object" do
11
+ ldr = SmallCage::Loader.new(@docroot)
12
+ obj = ldr.load(@docroot + "a/b/c/index.html.smc")
13
+
14
+ obj["path"].should be_an_instance_of(Pathname)
15
+ obj["path"].smc.should be_an_instance_of(Pathname)
16
+
17
+ obj["path"].to_s.should =~ %r{^.+/a/b/c/index\.html$}
18
+ obj["path"].smc.to_s.should =~ %r{^.+/a/b/c/index\.html\.smc$}
19
+ end
20
+
21
+ it "should be able to omit smc extention" do
22
+ ldr = SmallCage::Loader.new(@docroot + "a/b/c/index.html")
23
+ objects = []
24
+ ldr.each_smc_obj do |o|
25
+ objects << o
26
+ end
27
+ objects.size.should == 1
28
+ obj = objects[0]
29
+ obj["uri"].should == "/a/b/c/index.html"
30
+ obj["uri"].smc.should == "/a/b/c/index.html.smc"
31
+ end
32
+
33
+ it "should find smc root dir" do
34
+ path = @docroot + "a/b/c/index.html.smc"
35
+
36
+ depth = 5
37
+ root = SmallCage::Loader.find_root(path, depth)
38
+ root.to_s.should =~ %r{^.+/data/htdocs1$}
39
+
40
+ depth = 3
41
+ lambda { SmallCage::Loader.find_root(path, depth) }.should raise_error
42
+ end
43
+
44
+ it "should load strings" do
45
+ path = @docroot + "a/b/c/index.html.smc"
46
+ ldr = SmallCage::Loader.new(path)
47
+
48
+ root = SmallCage::Loader.find_root(path)
49
+ objects = []
50
+ ldr.each_smc_obj do |o|
51
+ objects << o
52
+ end
53
+ objects[0]["strings"][0].should == "abc\ndef\n\nghi"
54
+ end
55
+ end
@@ -0,0 +1,39 @@
1
+ require File.dirname(__FILE__) + '/spec_helper.rb'
2
+ require 'smallcage'
3
+
4
+
5
+
6
+ describe "SmallCage::Commands::Manifest" do
7
+
8
+ before do
9
+ @docroot = Pathname.new(File.dirname(__FILE__) + "/data/htdocs1")
10
+ @opts = { :path => @docroot.to_s }
11
+ @manifest_file = @docroot + "Manifest.html"
12
+ end
13
+
14
+ it "should create Manifest.html" do
15
+
16
+ SmallCage::Runner.run(@opts.merge(:command => "manifest"))
17
+ @manifest_file.file?.should be_true
18
+
19
+ source = @manifest_file.read
20
+ source.include?(<<'EOT').should be_true
21
+ <ul class="files">
22
+ <li><a href="./a/">./a/</a></li>
23
+ <li><a href="./a/b/">./a/b/</a></li>
24
+ <li><a href="./a/b/c/">./a/b/c/</a></li>
25
+ <li><a href="./a/b/c/index.html.smc">./a/b/c/index.html.smc</a></li>
26
+ <li><a href="./_dir.smc">./_dir.smc</a></li>
27
+ <li><a href="./_smc/">./_smc/</a></li>
28
+ <li><a href="./_smc/helpers/">./_smc/helpers/</a></li>
29
+ <li><a href="./_smc/templates/">./_smc/templates/</a></li>
30
+ </ul>
31
+ EOT
32
+ end
33
+
34
+ after do
35
+ SmallCage::Runner.run(@opts.merge(:command => "clean"))
36
+ @manifest_file.delete
37
+ end
38
+
39
+ end
data/spec/misc_spec.rb ADDED
@@ -0,0 +1,25 @@
1
+ require File.dirname(__FILE__) + '/spec_helper.rb'
2
+ require 'smallcage'
3
+
4
+ describe "misc" do
5
+
6
+ it "should camelize String" do
7
+ s = "smallcage"
8
+ s.camelize.should == "Smallcage"
9
+
10
+ s = "abc_def_ghi"
11
+ s.camelize.should == "AbcDefGhi"
12
+
13
+ s = ""
14
+ s.camelize.should == ""
15
+ end
16
+
17
+ it "should camelize with first character in lower case" do
18
+ s = "smallcage"
19
+ s.camelize(false).should == "smallcage"
20
+
21
+ s = "abc_def_ghi"
22
+ s.camelize(false).should == "abcDefGhi"
23
+ end
24
+
25
+ end
@@ -0,0 +1,40 @@
1
+ require File.dirname(__FILE__) + '/spec_helper.rb'
2
+ require 'smallcage'
3
+
4
+ describe "smallcage" do
5
+
6
+ docroot = Pathname.new(File.dirname(__FILE__) + "/data/htdocs1")
7
+
8
+ it "show version" do
9
+ # puts "------- version:" + SmallCage::VERSION::STRING
10
+ end
11
+
12
+ it "should update not docroot directory" do
13
+ path = docroot + "a/b/"
14
+
15
+ opts = { :command => "update", :path => path.to_s, :quiet => true }
16
+
17
+ begin
18
+ SmallCage::Runner.run(opts)
19
+
20
+ out = docroot + "a/b/c/index.html"
21
+ out.file?.should be_true
22
+ out.delete
23
+
24
+ pwd = Dir.pwd
25
+ Dir.chdir(path)
26
+
27
+ opts[:path] = "."
28
+ SmallCage::Runner.run(opts)
29
+
30
+ Dir.chdir(pwd)
31
+
32
+ out.file?.should be_true
33
+ out.delete
34
+ ensure
35
+ SmallCage::Runner.run({:command => "clean", :path => path.to_s, :quiet => true })
36
+ end
37
+
38
+ end
39
+
40
+ end
data/spec/spec.opts ADDED
@@ -0,0 +1 @@
1
+ --colour
@@ -0,0 +1,9 @@
1
+ $LOAD_PATH.unshift File.dirname(__FILE__) + '/../lib'
2
+
3
+ begin
4
+ require 'spec'
5
+ rescue LoadError
6
+ require 'rubygems'
7
+ gem 'rspec'
8
+ require 'spec'
9
+ end
@@ -0,0 +1,2 @@
1
+ require 'test/unit'
2
+ require File.dirname(__FILE__) + '/../lib/smallcage'
@@ -0,0 +1,11 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ class TestSmallCage < Test::Unit::TestCase
4
+
5
+ def setup
6
+ end
7
+
8
+ def test_truth
9
+ assert true
10
+ end
11
+ end
metadata ADDED
@@ -0,0 +1,193 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bluemark-smallcage
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.3
5
+ platform: ruby
6
+ authors:
7
+ - SAITO Toshihiro
8
+ - gom
9
+ - KOSEKI Kengo
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+
14
+ date: 2009-05-01 00:00:00 -07:00
15
+ default_executable: smc
16
+ dependencies: []
17
+
18
+ description: Lightweight CMS package.
19
+ email: smallcage@googlegroups.com
20
+ executables:
21
+ - smc
22
+ extensions: []
23
+
24
+ extra_rdoc_files:
25
+ - README.txt
26
+ - History.txt
27
+ files:
28
+ - Rakefile
29
+ - README.txt
30
+ - History.txt
31
+ - License.txt
32
+ - bin/smc
33
+ - lib/smallcage
34
+ - lib/smallcage/application.rb
35
+ - lib/smallcage/commands
36
+ - lib/smallcage/commands/auto.rb
37
+ - lib/smallcage/commands/base.rb
38
+ - lib/smallcage/commands/clean.rb
39
+ - lib/smallcage/commands/export.rb
40
+ - lib/smallcage/commands/import.rb
41
+ - lib/smallcage/commands/manifest.rb
42
+ - lib/smallcage/commands/server.rb
43
+ - lib/smallcage/commands/update.rb
44
+ - lib/smallcage/document_path.rb
45
+ - lib/smallcage/erb_base.rb
46
+ - lib/smallcage/http_server.rb
47
+ - lib/smallcage/loader.rb
48
+ - lib/smallcage/misc.rb
49
+ - lib/smallcage/renderer.rb
50
+ - lib/smallcage/resources
51
+ - lib/smallcage/resources/auto.html
52
+ - lib/smallcage/resources/Manifest.erb
53
+ - lib/smallcage/runner.rb
54
+ - lib/smallcage/version.rb
55
+ - lib/smallcage.rb
56
+ - test/test_helper.rb
57
+ - test/test_smallcage.rb
58
+ - project/base
59
+ - project/base/_smc
60
+ - project/base/_smc/helpers
61
+ - project/base/_smc/helpers/base_helper.rb
62
+ - project/base/_smc/helpers/site_helper.rb
63
+ - project/base/_smc/templates
64
+ - project/base/_smc/templates/default.rhtml
65
+ - project/base/_smc/templates/footer.rhtml
66
+ - project/base/_smc/templates/header.rhtml
67
+ - project/bluecloth
68
+ - project/bluecloth/_smc
69
+ - project/bluecloth/_smc/helpers
70
+ - project/bluecloth/_smc/helpers/blue_cloth_helper.rb
71
+ - project/bluecloth/_smc/templates
72
+ - project/bluecloth/_smc/templates/markdown.rhtml
73
+ - project/lang
74
+ - project/lang/_smc
75
+ - project/lang/_smc/helpers
76
+ - project/lang/_smc/helpers/lang_helper.rb
77
+ - project/lang/_smc/templates
78
+ - project/lang/_smc/templates/other_lang.rhtml
79
+ - project/news
80
+ - project/news/_smc
81
+ - project/news/_smc/helpers
82
+ - project/news/_smc/helpers/news_helper.rb
83
+ - project/nkf
84
+ - project/nkf/_smc
85
+ - project/nkf/_smc/filters
86
+ - project/nkf/_smc/filters/filters.yml
87
+ - project/nkf/_smc/filters/nkf_filter.rb
88
+ - project/rake
89
+ - project/rake/_smc
90
+ - project/rake/_smc/Rakefile
91
+ - project/redcloth
92
+ - project/redcloth/_smc
93
+ - project/redcloth/_smc/helpers
94
+ - project/redcloth/_smc/helpers/red_cloth_helper.rb
95
+ - project/redcloth/_smc/templates
96
+ - project/redcloth/_smc/templates/textile.rhtml
97
+ - project/relpath
98
+ - project/relpath/_smc
99
+ - project/relpath/_smc/filters
100
+ - project/relpath/_smc/filters/filters.yml
101
+ - project/relpath/_smc/filters/relpath_filter.rb
102
+ - project/standard
103
+ - project/standard/_dir.smc
104
+ - project/standard/_smc
105
+ - project/standard/_smc/helpers
106
+ - project/standard/_smc/helpers/base_helper.rb
107
+ - project/standard/_smc/helpers/menu_helper.rb
108
+ - project/standard/_smc/templates
109
+ - project/standard/_smc/templates/default.rhtml
110
+ - project/standard/_smc/templates/footer.rhtml
111
+ - project/standard/_smc/templates/header.rhtml
112
+ - project/standard/_smc/templates/menu.rhtml
113
+ - project/standard/_smc/templates/redirect.rhtml
114
+ - project/standard/_smc/templates/sidebar.rhtml
115
+ - project/standard/_smc/templates/topic_path.rhtml
116
+ - project/standard/common
117
+ - project/standard/common/css
118
+ - project/standard/common/css/default.css
119
+ - project/standard/common/css/print.css
120
+ - project/standard/index.html.smc
121
+ - project/standard/sample
122
+ - project/standard/sample/_dir.smc
123
+ - project/standard/sample/index.html.smc
124
+ - project/standard/sample/redirect.html.smc
125
+ - project/standard/sample/sub
126
+ - project/standard/sample/sub/_dir.smc
127
+ - project/standard/sample/sub/contents.html.smc
128
+ - project/standard/sample/sub/index.html.smc
129
+ - spec/data
130
+ - spec/data/htdocs1
131
+ - spec/data/htdocs1/_dir.smc
132
+ - spec/data/htdocs1/a
133
+ - spec/data/htdocs1/a/b
134
+ - spec/data/htdocs1/a/b/c
135
+ - spec/data/htdocs1/a/b/c/index.html.smc
136
+ - spec/data/htdocs2
137
+ - spec/data/htdocs2/_smc
138
+ - spec/data/htdocs2/_smc/templates
139
+ - spec/data/htdocs2/_smc/templates/dummy.rhtml
140
+ - spec/data/htdocs2/a
141
+ - spec/data/htdocs2/a/b
142
+ - spec/data/htdocs2/a/b/c
143
+ - spec/data/htdocs2/a/b/c/test.html
144
+ - spec/data/htdocs2/a/b/test.html
145
+ - spec/data/htdocs2/a/test.html.smc
146
+ - spec/document_path_spec.rb
147
+ - spec/export_spec.rb
148
+ - spec/import_spec.rb
149
+ - spec/loader_spec.rb
150
+ - spec/manifest_spec.rb
151
+ - spec/misc_spec.rb
152
+ - spec/smallcage_spec.rb
153
+ - spec/spec.opts
154
+ - spec/spec_helper.rb
155
+ has_rdoc: true
156
+ homepage: http://www.smallcage.org
157
+ post_install_message:
158
+ rdoc_options:
159
+ - --title
160
+ - smallcage documentation
161
+ - --charset
162
+ - utf-8
163
+ - --opname
164
+ - index.html
165
+ - --line-numbers
166
+ - --main
167
+ - README.txt
168
+ - --inline-source
169
+ - --exclude
170
+ - ^(examples|extras)/
171
+ require_paths:
172
+ - lib
173
+ required_ruby_version: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ version: "0"
178
+ version:
179
+ required_rubygems_version: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - ">="
182
+ - !ruby/object:Gem::Version
183
+ version: "0"
184
+ version:
185
+ requirements: []
186
+
187
+ rubyforge_project: smallcage
188
+ rubygems_version: 1.2.0
189
+ signing_key:
190
+ specification_version: 2
191
+ summary: Lightweight CMS package.
192
+ test_files: []
193
+