rethoth 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +26 -0
  3. data/bin/thoth +233 -0
  4. data/lib/proto/config.ru +45 -0
  5. data/lib/proto/thoth.conf.sample +206 -0
  6. data/lib/thoth/cache.rb +53 -0
  7. data/lib/thoth/config.rb +158 -0
  8. data/lib/thoth/controller/admin.rb +75 -0
  9. data/lib/thoth/controller/api/comment.rb +73 -0
  10. data/lib/thoth/controller/api/page.rb +134 -0
  11. data/lib/thoth/controller/api/post.rb +122 -0
  12. data/lib/thoth/controller/api/tag.rb +59 -0
  13. data/lib/thoth/controller/archive.rb +50 -0
  14. data/lib/thoth/controller/comment.rb +173 -0
  15. data/lib/thoth/controller/main.rb +193 -0
  16. data/lib/thoth/controller/media.rb +172 -0
  17. data/lib/thoth/controller/page.rb +167 -0
  18. data/lib/thoth/controller/post.rb +310 -0
  19. data/lib/thoth/controller/search.rb +86 -0
  20. data/lib/thoth/controller/tag.rb +107 -0
  21. data/lib/thoth/controller.rb +48 -0
  22. data/lib/thoth/errors.rb +35 -0
  23. data/lib/thoth/helper/admin.rb +86 -0
  24. data/lib/thoth/helper/cookie.rb +45 -0
  25. data/lib/thoth/helper/error.rb +122 -0
  26. data/lib/thoth/helper/pagination.rb +131 -0
  27. data/lib/thoth/helper/wiki.rb +77 -0
  28. data/lib/thoth/helper/ysearch.rb +89 -0
  29. data/lib/thoth/importer/pants.rb +81 -0
  30. data/lib/thoth/importer/poseidon.rb +54 -0
  31. data/lib/thoth/importer/thoth.rb +103 -0
  32. data/lib/thoth/importer.rb +131 -0
  33. data/lib/thoth/layout/default.rhtml +47 -0
  34. data/lib/thoth/middleware/minify.rb +82 -0
  35. data/lib/thoth/migrate/001_create_schema.rb +108 -0
  36. data/lib/thoth/migrate/002_add_media_size.rb +37 -0
  37. data/lib/thoth/migrate/003_add_post_draft.rb +38 -0
  38. data/lib/thoth/migrate/004_add_comment_email.rb +37 -0
  39. data/lib/thoth/migrate/005_add_page_position.rb +37 -0
  40. data/lib/thoth/migrate/006_add_comment_close_delete.rb +43 -0
  41. data/lib/thoth/migrate/007_add_comment_summary.rb +37 -0
  42. data/lib/thoth/model/comment.rb +216 -0
  43. data/lib/thoth/model/media.rb +87 -0
  44. data/lib/thoth/model/page.rb +204 -0
  45. data/lib/thoth/model/post.rb +262 -0
  46. data/lib/thoth/model/tag.rb +80 -0
  47. data/lib/thoth/model/tags_posts_map.rb +34 -0
  48. data/lib/thoth/monkeypatch/sequel/model/errors.rb +37 -0
  49. data/lib/thoth/plugin/thoth_delicious.rb +105 -0
  50. data/lib/thoth/plugin/thoth_flickr.rb +86 -0
  51. data/lib/thoth/plugin/thoth_pinboard.rb +98 -0
  52. data/lib/thoth/plugin/thoth_tags.rb +68 -0
  53. data/lib/thoth/plugin/thoth_twitter.rb +175 -0
  54. data/lib/thoth/plugin.rb +59 -0
  55. data/lib/thoth/public/css/admin.css +223 -0
  56. data/lib/thoth/public/css/thoth.css +592 -0
  57. data/lib/thoth/public/images/admin-sprite.png +0 -0
  58. data/lib/thoth/public/images/thoth-sprite.png +0 -0
  59. data/lib/thoth/public/js/admin/comments.js +116 -0
  60. data/lib/thoth/public/js/admin/name.js +244 -0
  61. data/lib/thoth/public/js/admin/tagcomplete.js +332 -0
  62. data/lib/thoth/public/js/lazyload-min.js +4 -0
  63. data/lib/thoth/public/js/thoth.js +203 -0
  64. data/lib/thoth/public/robots.txt +5 -0
  65. data/lib/thoth/version.rb +37 -0
  66. data/lib/thoth/view/admin/index.rhtml +1 -0
  67. data/lib/thoth/view/admin/login.rhtml +23 -0
  68. data/lib/thoth/view/admin/toolbar.rhtml +117 -0
  69. data/lib/thoth/view/admin/welcome.rhtml +58 -0
  70. data/lib/thoth/view/archive/index.rhtml +24 -0
  71. data/lib/thoth/view/comment/comment.rhtml +47 -0
  72. data/lib/thoth/view/comment/delete.rhtml +15 -0
  73. data/lib/thoth/view/comment/form.rhtml +81 -0
  74. data/lib/thoth/view/comment/index.rhtml +68 -0
  75. data/lib/thoth/view/comment/list.rhtml +48 -0
  76. data/lib/thoth/view/media/delete.rhtml +15 -0
  77. data/lib/thoth/view/media/edit.rhtml +12 -0
  78. data/lib/thoth/view/media/form.rhtml +7 -0
  79. data/lib/thoth/view/media/list.rhtml +35 -0
  80. data/lib/thoth/view/media/media.rhtml +44 -0
  81. data/lib/thoth/view/media/new.rhtml +7 -0
  82. data/lib/thoth/view/page/delete.rhtml +15 -0
  83. data/lib/thoth/view/page/edit.rhtml +15 -0
  84. data/lib/thoth/view/page/form.rhtml +57 -0
  85. data/lib/thoth/view/page/index.rhtml +9 -0
  86. data/lib/thoth/view/page/list.rhtml +49 -0
  87. data/lib/thoth/view/page/new.rhtml +15 -0
  88. data/lib/thoth/view/post/comments.rhtml +12 -0
  89. data/lib/thoth/view/post/compact.rhtml +48 -0
  90. data/lib/thoth/view/post/delete.rhtml +15 -0
  91. data/lib/thoth/view/post/edit.rhtml +15 -0
  92. data/lib/thoth/view/post/form.rhtml +83 -0
  93. data/lib/thoth/view/post/index.rhtml +48 -0
  94. data/lib/thoth/view/post/list.rhtml +61 -0
  95. data/lib/thoth/view/post/new.rhtml +15 -0
  96. data/lib/thoth/view/post/tiny.rhtml +4 -0
  97. data/lib/thoth/view/search/index.rhtml +45 -0
  98. data/lib/thoth/view/tag/index.rhtml +34 -0
  99. data/lib/thoth/view/thoth/css.rhtml +9 -0
  100. data/lib/thoth/view/thoth/footer.rhtml +15 -0
  101. data/lib/thoth/view/thoth/header.rhtml +23 -0
  102. data/lib/thoth/view/thoth/index.rhtml +11 -0
  103. data/lib/thoth/view/thoth/js.rhtml +6 -0
  104. data/lib/thoth/view/thoth/sidebar.rhtml +38 -0
  105. data/lib/thoth/view/thoth/util/pager.rhtml +23 -0
  106. data/lib/thoth/view/thoth/util/simple_pager.rhtml +15 -0
  107. data/lib/thoth/view/thoth/util/table_sortheader.rhtml +20 -0
  108. data/lib/thoth.rb +394 -0
  109. metadata +409 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: af4011f591355af9450daa140d5acbd5ddb652e5
4
+ data.tar.gz: bd93c7e0e0088b3ede574b49496ae1a62ed75a93
5
+ SHA512:
6
+ metadata.gz: aa181bcfb70927ce5f5022106e39c4e272c195affc53d6c2a6a97241bde483df705a5f023d795b046a9834a99d6311bcb7555fbcaa7d7d70677ea90d7a8be05b
7
+ data.tar.gz: 9f9f3e8f1b7d488150bd20f1d525b32d6113b424a15e0e5193b6e0faba6fa13c8b14e696e00f96ee069ab97fda1e82454c0360a22c9f6cb22480a7df26d11c83
data/LICENSE ADDED
@@ -0,0 +1,26 @@
1
+ Copyright (c) 2017 John Pagonis <john@pagonis.org>
2
+ Copyright (c) 2009 - 2011 Ryan Grove <ryan@wonko.com>
3
+ All rights reserved.
4
+
5
+ Redistribution and use in source and binary forms, with or without
6
+ modification, are permitted provided that the following conditions are met:
7
+
8
+ * Redistributions of source code must retain the above copyright notice,
9
+ this list of conditions and the following disclaimer.
10
+ * Redistributions in binary form must reproduce the above copyright notice,
11
+ this list of conditions and the following disclaimer in the documentation
12
+ and/or other materials provided with the distribution.
13
+ * Neither the name of this project nor the names of its contributors may be
14
+ used to endorse or promote products derived from this software without
15
+ specific prior written permission.
16
+
17
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
21
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/bin/thoth ADDED
@@ -0,0 +1,233 @@
1
+ #!/usr/bin/env ruby
2
+ #--
3
+ # Copyright (c) 2017 John Pagonis <john@pagonis.org>
4
+ # Copyright (c) 2009 Ryan Grove <ryan@wonko.com>
5
+ # All rights reserved.
6
+ #
7
+ # Redistribution and use in source and binary forms, with or without
8
+ # modification, are permitted provided that the following conditions are met:
9
+ #
10
+ # * Redistributions of source code must retain the above copyright notice,
11
+ # this list of conditions and the following disclaimer.
12
+ # * Redistributions in binary form must reproduce the above copyright notice,
13
+ # this list of conditions and the following disclaimer in the documentation
14
+ # and/or other materials provided with the distribution.
15
+ # * Neither the name of this project nor the names of its contributors may be
16
+ # used to endorse or promote products derived from this software without
17
+ # specific prior written permission.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22
+ # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
23
+ # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25
+ # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26
+ # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27
+ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
+ #++
30
+
31
+ require 'optparse'
32
+ require 'ramaze'
33
+
34
+ module Thoth
35
+ include Innate::Traited
36
+
37
+ cli_action = :server # :import, :migrate, or :server
38
+ cli_values = {}
39
+
40
+ # Parse command-line options.
41
+ begin
42
+ OptionParser.new {|o|
43
+ o.summary_indent = ' '
44
+ o.summary_width = 24
45
+ o.banner = "Usage: thoth [options]\n" +
46
+ " thoth [info]"
47
+
48
+ o.separator ''
49
+ o.separator 'Options:'
50
+
51
+ o.on('-a', '--adapter <adapter>',
52
+ 'Use the specified Ramaze server adapter.') do |adapter|
53
+ trait(:adapter => adapter)
54
+ end
55
+
56
+ o.on('-c', '--config <filename>',
57
+ 'Use the specified configuration file.') do |filename|
58
+ trait(:config_file => File.expand_path(filename))
59
+ end
60
+
61
+ o.on('-d', '--daemon <command>', [:start, :stop, :restart],
62
+ 'Issue the specified daemon command (start, stop, or',
63
+ 'restart).') do |cmd|
64
+ trait(:daemon => cmd)
65
+ end
66
+
67
+ o.on('-H', '--home <path>',
68
+ 'Use the specified home directory.') do |home|
69
+ unless File.directory?(home)
70
+ abort("Error: home directory not found or not a directory: #{home}")
71
+ end
72
+
73
+ HOME_DIR = File.expand_path(home)
74
+ end
75
+
76
+ o.on('-i', '--ip <address>',
77
+ 'Listen for connections on the specified IP address.') do |address|
78
+ trait(:ip => address)
79
+ end
80
+
81
+ o.on('-p', '--port <number>',
82
+ 'Listen for connections on the specified port number.') do |port|
83
+ trait(:port => port.to_i)
84
+ end
85
+
86
+ o.separator ''
87
+
88
+ o.on('--create <path>',
89
+ 'Create a new Thoth home directory with a sample',
90
+ 'config file.') do |path|
91
+ require 'thoth'
92
+
93
+ begin
94
+ create(path)
95
+ rescue => e
96
+ abort("Error: #{e}")
97
+ end
98
+
99
+ puts 'Your new Thoth home directory has been created at ' <<
100
+ File.expand_path(path)
101
+
102
+ exit
103
+ end
104
+
105
+ o.on('--devel',
106
+ 'Run Thoth in development mode.') do
107
+ trait(:mode => :devel)
108
+ end
109
+
110
+ o.on('--import <module>',
111
+ 'Import content from another blog engine using the',
112
+ 'specified import module.') do |import_module|
113
+ cli_action = :import
114
+ cli_values[:importer] = import_module
115
+ end
116
+
117
+ o.on('--irb',
118
+ 'Start Thoth within an IRB session.') do
119
+ trait(:irb => true)
120
+ end
121
+
122
+ o.on('--log-sql <filename>',
123
+ 'Log all SQL queries to the specified file.') do |filename|
124
+ trait(:sql_log => File.expand_path(filename))
125
+ end
126
+
127
+ o.on '--migrate [version]',
128
+ 'Migrate the database to the specified schema version,',
129
+ 'or to the latest version if not specified.' do |version|
130
+ cli_action = :migrate
131
+ cli_values[:schema_version] = version
132
+ end
133
+
134
+ o.separator ''
135
+ o.separator 'Info:'
136
+
137
+ o.on_tail('-h', '--help',
138
+ 'Display usage information (this message).') do
139
+ require 'thoth'
140
+
141
+ puts "#{APP_NAME} v#{APP_VERSION} <#{APP_URL}>"
142
+ puts "#{APP_COPYRIGHT}"
143
+ puts
144
+ puts o
145
+ puts
146
+ puts 'Default Directories:'
147
+ puts " public: #{PUBLIC_DIR}"
148
+ puts " view: #{VIEW_DIR}"
149
+ exit
150
+ end
151
+
152
+ o.on_tail('-v', '--version',
153
+ 'Display version information.') do
154
+ require 'thoth'
155
+
156
+ puts "#{APP_NAME} v#{APP_VERSION} <#{APP_URL}>"
157
+ puts "#{APP_COPYRIGHT}"
158
+ puts
159
+ puts "#{APP_NAME} comes with ABSOLUTELY NO WARRANTY."
160
+ puts
161
+ puts "This program is open source software distributed under the BSD license. For"
162
+ puts "details, see the LICENSE file contained in the source distribution."
163
+ exit
164
+ end
165
+ }.parse!(ARGV)
166
+ rescue => e
167
+ abort("Error: #{e}")
168
+ end
169
+
170
+ require 'thoth'
171
+
172
+ Config.load(trait[:config_file])
173
+
174
+ if trait[:irb]
175
+ # Avoid passing args to IRB.
176
+ ARGV.clear
177
+
178
+ require 'irb'
179
+ require 'irb/completion'
180
+
181
+ ENV['IRBRC'] = '.irbrc' if File.exist?('.irbrc')
182
+ IRB.start
183
+ end
184
+
185
+ case cli_action
186
+ when :import
187
+ require 'thoth/importer'
188
+
189
+ begin
190
+ Importer.load_importer(cli_values[:importer]).run
191
+ rescue LoadError => e
192
+ abort("Error: #{e}")
193
+ end
194
+
195
+ when :migrate
196
+ schema_version = cli_values[:schema_version]
197
+
198
+ if !schema_version.nil? && schema_version.to_i == 0
199
+ puts 'WARNING: Migrating to schema version 0 will delete your Thoth database. This'
200
+ puts 'action cannot be undone. Are you sure you want to continue? (y/n)'
201
+ print '> '
202
+
203
+ exit unless STDIN.gets.strip =~ /^y(?:es)?/i
204
+ puts
205
+ end
206
+
207
+ begin
208
+ open_db
209
+ Sequel::Migrator.apply(@db, File.join(LIB_DIR, 'migrate'), schema_version.nil? ? nil :
210
+ schema_version.to_i)
211
+ rescue => e
212
+ abort("Error: #{e}")
213
+ else
214
+ puts "Migration complete."
215
+ end
216
+
217
+ when :server
218
+ trait(:pidfile => File.join(HOME_DIR, "thoth_#{trait[:ip]}_#{trait[:port]}.pid"))
219
+
220
+ trait[:adapter] ||= Config.server['adapter']
221
+ trait[:ip] ||= Config.server['address']
222
+ trait[:port] ||= Config.server['port']
223
+
224
+ begin
225
+ send(trait[:daemon] || :run)
226
+ rescue SchemaError => e
227
+ abort("Error: #{e}")
228
+ end
229
+
230
+ else
231
+ abort("Error: unknown action: #{cli_action}")
232
+ end
233
+ end
@@ -0,0 +1,45 @@
1
+ #--
2
+ # Copyright (c) 2017 John Pagonis <john@pagonis.org>
3
+ # Copyright (c) 2009 Ryan Grove <ryan@wonko.com>
4
+ # All rights reserved.
5
+ #
6
+ # Redistribution and use in source and binary forms, with or without
7
+ # modification, are permitted provided that the following conditions are met:
8
+ #
9
+ # * Redistributions of source code must retain the above copyright notice,
10
+ # this list of conditions and the following disclaimer.
11
+ # * Redistributions in binary form must reproduce the above copyright notice,
12
+ # this list of conditions and the following disclaimer in the documentation
13
+ # and/or other materials provided with the distribution.
14
+ # * Neither the name of this project nor the names of its contributors may be
15
+ # used to endorse or promote products derived from this software without
16
+ # specific prior written permission.
17
+ #
18
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
+ # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
22
+ # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24
+ # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25
+ # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26
+ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
+ #++
29
+
30
+ # Rackup file for Thoth.
31
+
32
+ require 'thoth'
33
+
34
+ module Thoth
35
+ if ENV['RACK_ENV'] == 'development' || ENV['RAILS_ENV'] == 'development'
36
+ trait(:mode => :devel)
37
+ end
38
+
39
+ Config.load(trait[:config_file])
40
+
41
+ init_thoth
42
+ end
43
+
44
+ Ramaze.start(:file => __FILE__, :started => true)
45
+ run Ramaze
@@ -0,0 +1,206 @@
1
+ #
2
+ # thoth.conf - Thoth configuration file.
3
+ #
4
+ # Customize this file as desired. You must restart Thoth before configuration
5
+ # changes will take effect.
6
+ #
7
+ # This file is YAML, but you may also use Erubis expressions to insert variables
8
+ # or run Ruby code.
9
+ #
10
+
11
+ # Settings for live mode.
12
+ live:
13
+
14
+ # Connection URI for the database. Currently SQLite3 and MySQL are supported.
15
+ # PostgreSQL may work, but hasn't been tested.
16
+ #
17
+ # Sample SQLite3 config:
18
+ # db: sqlite:////absolute/path/to/database.db
19
+ #
20
+ # Sample MySQL config:
21
+ # db: mysql://user:pass@hostname/database
22
+ db: sqlite:///<%= Thoth::HOME_DIR %>/db/live.db
23
+
24
+ # General site settings.
25
+ site:
26
+ # Name of your blog. This will be displayed as the title of your blog's
27
+ # index page and in your blog's feeds.
28
+ name: New Thoth Blog
29
+
30
+ # A brief description or subtitle for your blog.
31
+ desc: Thoth is awesome.
32
+
33
+ # Base URL of your site. This is necessary in order for Thoth to know how
34
+ # to construct links. Be sure to set this correctly or links may not work.
35
+ url: http://localhost:7000/
36
+
37
+ # URLs of CSS files to load in addition to the default Thoth CSS. You can
38
+ # override Thoth's default styles by specifying your own CSS files here.
39
+ # These can be relative or absolute URLs.
40
+ #
41
+ # Example:
42
+ # css:
43
+ # - /css/foo.css
44
+ # - 'http://example.com/bar.css'
45
+ #
46
+ css: []
47
+
48
+ # URLs of JS files to load in addition to the default Thoth JS. You can
49
+ # extend or override Thoth's JS or add functionality by specifying your own
50
+ # JS files here. These can be relative or absolute URLs.
51
+ #
52
+ # Example:
53
+ # js:
54
+ # - /js/foo.js
55
+ # - 'http://example.com/bar.js'
56
+ #
57
+ js: []
58
+
59
+ # Whether or not to allow visitors to post comments in response to blog
60
+ # posts.
61
+ enable_comments: true
62
+
63
+ # Whether or not you want to expose a sitemap for your blog. A sitemap is
64
+ # an XML file that gives search engines information about all the URLs on
65
+ # your site so they can index them more easily.
66
+ #
67
+ # If enabled, you'll be able to see your sitemap at
68
+ # http://yourdomain.com/sitemap and you can submit this URL to search
69
+ # engines to improve the indexing of your site (and possibly your pagerank).
70
+ enable_sitemap: true
71
+
72
+ # Gravatar settings.
73
+ gravatar:
74
+ # Whether or not to enable Gravatar images on comments. Gravatar is a free
75
+ # service that allows people to associate profile images with an email
76
+ # address so that their postings on blogs and other websites are easily
77
+ # identifiable. Learn more at http://www.gravatar.com/.
78
+ enabled: true
79
+
80
+ # Default icon set to use for users who don't have custom Gravatars. See
81
+ # gravatar.com for the latest options. As of this writing, the available
82
+ # choices are "identicon" (geometric shapes), "monsterids" (cutesy little
83
+ # monsters), and "wavatars" (cutesy geometric shapes).
84
+ #
85
+ # Alternatively, you can specify the URL of your own custom image here and
86
+ # that image will be used instead.
87
+ default: identicon
88
+
89
+ # Maximum Gravatar rating to allow. Available ratings are "g", "pg", "r",
90
+ # and "x". Just like with movies, "r" and "x"-rated Gravatars may contain
91
+ # adult content.
92
+ rating: g
93
+
94
+ # Gravatar size in pixels. This sets both the width and the height.
95
+ size: 32
96
+
97
+ # Administrator settings.
98
+ admin:
99
+ # Your name. This will be displayed in the copyright notice at the bottom of
100
+ # the page, and will be used as the author name for your site's feeds.
101
+ name: John Doe
102
+
103
+ # Your email address. If you leave this blank or comment it out, it won't be
104
+ # displayed.
105
+ email: ''
106
+
107
+ # Administrator username. This is the name you'll use to log into Thoth.
108
+ user: thoth
109
+
110
+ # Administrator password. By default this is a random number, so you won't
111
+ # be able to log in until you change this!
112
+ pass: thoth
113
+
114
+ # String of random characters to add uniqueness to the admin auth cookie
115
+ # hash. Just fill this with some made-up nonsense.
116
+ seed: 6d552ac197a862b82b85868d6c245feb
117
+
118
+ # Plugins that should be loaded when Thoth starts. Usually it's not
119
+ # necessary to load a plugin until the first time it's used, but some plugins
120
+ # alter core functionality and thus must be loaded at start time.
121
+ #
122
+ # Example:
123
+ # plugins:
124
+ # - foo
125
+ # - bar
126
+ # - baz
127
+ #
128
+ plugins: []
129
+
130
+ # Absolute path to a directory where uploaded media files (images, videos,
131
+ # etc.) for your blog posts and pages should be stored. This directory needs
132
+ # to be readable and writeable by the user running the Thoth server.
133
+ media: <%= Thoth::HOME_DIR %>/media
134
+
135
+ # Server settings.
136
+ server:
137
+ # Server adapter to use. This can be any adapter Ramaze supports.
138
+ adapter: webrick
139
+
140
+ # IP address on which Thoth should listen for connections. Specify 0.0.0.0
141
+ # if you want Thoth to listen on all addresses.
142
+ address: 0.0.0.0
143
+
144
+ # Port on which the Thoth server should listen for connections.
145
+ port: 7000
146
+
147
+ # Whether or not to enable caching. Enabling caching will significantly
148
+ # improve Thoth's performance under heavy traffic.
149
+ enable_cache: true
150
+
151
+ # Whether or not to enable automatic, on the fly minification of your blog's
152
+ # external CSS and JavaScript files. Enabling minification will reduce
153
+ # page weight and is a great way to improve performance, but you'll need to
154
+ # restart Thoth in order for CSS and JS changes to take effect.
155
+ #
156
+ # Note: this setting will have no effect if you're running Thoth under
157
+ # Phusion Passenger or any other environment in which static file requests
158
+ # are handled by a frontend server without passing through Ramaze.
159
+ enable_minify: true
160
+
161
+ # Filename to which errors should be logged when running in production mode,
162
+ # or blank if you don't care about errors.
163
+ error_log: <%= Thoth::HOME_DIR %>/log/error.log
164
+
165
+ # Memcache settings.
166
+ memcache:
167
+ # Whether or not to enable memcache. When enabled along with the
168
+ # server.enable_cache setting above, Thoth will use memcache for all cache
169
+ # operations instead of the default per-process Hash-based cache.
170
+ #
171
+ # This may be beneficial if you have a very high-traffic blog and
172
+ # distribute load across multiple Ramaze processes or physical servers,
173
+ # but in most cases it's overkill.
174
+ #
175
+ # Note: This option requires that the memcache-client gem be installed.
176
+ enabled: false
177
+
178
+ # Memcache servers to use. Each entry in this list must contain at least
179
+ # a hostname, and optionally a port number and priority.
180
+ #
181
+ # Example:
182
+ # servers:
183
+ # - 'localhost:11211:1'
184
+ # - 'foo.example.com:11211:2'
185
+ #
186
+ servers:
187
+ - 'localhost:11211:1'
188
+
189
+ # Timestamp formats.
190
+ timestamp:
191
+ # Format for long timestamps. For details, see:
192
+ # http://www.ruby-doc.org/core/classes/Time.html#M000297
193
+ long: '%A %B %d, %Y @ %I:%M %p (%Z)'
194
+
195
+ # Format for short timestamps. For details, see:
196
+ # http://www.ruby-doc.org/core/classes/Time.html#M000297
197
+ short: '%Y-%m-%d %I:%M'
198
+
199
+ # Settings for dev mode. Any setting that you don't explicitly specify here will
200
+ # just inherit from live mode.
201
+ dev:
202
+ db: sqlite:///<%= Thoth::HOME_DIR %>/db/dev.db
203
+
204
+ server:
205
+ enable_cache: false
206
+ enable_minify: false
@@ -0,0 +1,53 @@
1
+ #--
2
+ # Copyright (c) 2009 Ryan Grove <ryan@wonko.com>
3
+ # All rights reserved.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are met:
7
+ #
8
+ # * Redistributions of source code must retain the above copyright notice,
9
+ # this list of conditions and the following disclaimer.
10
+ # * Redistributions in binary form must reproduce the above copyright notice,
11
+ # this list of conditions and the following disclaimer in the documentation
12
+ # and/or other materials provided with the distribution.
13
+ # * Neither the name of this project nor the names of its contributors may be
14
+ # used to endorse or promote products derived from this software without
15
+ # specific prior written permission.
16
+ #
17
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
+ # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
21
+ # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
+ # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
+ # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
+ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+ #++
28
+
29
+ module Thoth; class Cache
30
+
31
+ # This is a no-op cache API used when the cache is disabled in order to avoid
32
+ # having to make constant configuration checks.
33
+ class Noop
34
+ include Innate::Cache::API
35
+
36
+ def cache_clear; end
37
+
38
+ def cache_delete(key, *keys)
39
+ nil
40
+ end
41
+
42
+ def cache_fetch(key, default = nil)
43
+ default
44
+ end
45
+
46
+ def cache_setup(hostname, username, appname, cachename); end
47
+
48
+ def cache_store(key, value, options = {})
49
+ value
50
+ end
51
+ end
52
+
53
+ end; end