jabe 0.5.9 → 0.6.0
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/{LICENSE.txt → MIT-LICENSE} +1 -1
- data/README.textile +46 -31
- data/Rakefile +30 -47
- data/app/assets/images/jabe/delete.png +0 -0
- data/{public/images → app/assets/images/jabe}/delete_page.png +0 -0
- data/{public/images → app/assets/images/jabe}/full_page.png +0 -0
- data/{public/images → app/assets/images/jabe}/gravatar.gif +0 -0
- data/{public/javascripts → app/assets/javascripts/jabe}/application.js +15 -0
- data/{public/javascripts → app/assets/javascripts/jabe}/libs/dd_belatedpng.js +0 -0
- data/{public/javascripts → app/assets/javascripts/jabe}/libs/modernizr-1.6.min.js +0 -0
- data/{public/javascripts → app/assets/javascripts/jabe}/plugins.js +0 -0
- data/app/assets/stylesheets/jabe/application.css +3 -0
- data/app/{stylesheets → assets/stylesheets/jabe}/boilerplate.scss +0 -0
- data/app/{stylesheets → assets/stylesheets/jabe}/jabe.scss +47 -8
- data/app/controllers/jabe/admin/base_controller.rb +7 -0
- data/app/controllers/jabe/admin/entries_controller.rb +49 -0
- data/app/controllers/jabe/admin/settings_controller.rb +13 -0
- data/app/controllers/jabe/application_controller.rb +5 -0
- data/app/controllers/jabe/comments_controller.rb +34 -0
- data/app/controllers/jabe/entries_controller.rb +30 -0
- data/app/controllers/jabe/feed_controller.rb +8 -0
- data/app/controllers/jabe/sessions_controller.rb +4 -0
- data/app/helpers/jabe/application_helper.rb +25 -0
- data/app/mailers/jabe/comment_mailer.rb +12 -0
- data/app/models/jabe/admin.rb +11 -0
- data/app/models/jabe/comment.rb +35 -0
- data/app/models/jabe/entry.rb +22 -0
- data/app/models/jabe/settings.rb +14 -0
- data/app/views/{admin → jabe/admin}/entries/_form.html.haml +1 -1
- data/app/views/{admin → jabe/admin}/entries/edit.html.haml +0 -0
- data/app/views/{admin → jabe/admin}/entries/index.html.haml +9 -7
- data/app/views/{admin → jabe/admin}/entries/new.html.haml +0 -0
- data/app/views/{admin → jabe/admin}/settings/edit.html.haml +2 -1
- data/app/views/jabe/comment_mailer/notification.html.erb +19 -0
- data/app/views/jabe/confirmations/new.html.erb +15 -0
- data/app/views/{entries → jabe/entries}/index.html.haml +4 -3
- data/app/views/jabe/entries/show.html.haml +49 -0
- data/app/views/{feed → jabe/feed}/index.xml.builder +3 -3
- data/app/views/jabe/mailer/confirmation_instructions.html.erb +5 -0
- data/app/views/jabe/mailer/reset_password_instructions.html.erb +8 -0
- data/app/views/jabe/mailer/unlock_instructions.html.erb +7 -0
- data/app/views/jabe/passwords/edit.html.erb +19 -0
- data/app/views/jabe/passwords/new.html.erb +15 -0
- data/app/views/jabe/registrations/edit.html.erb +22 -0
- data/app/views/jabe/registrations/new.html.erb +17 -0
- data/app/views/jabe/sessions/new.html.erb +15 -0
- data/app/views/jabe/shared/_links.erb +25 -0
- data/app/views/jabe/unlocks/new.html.erb +15 -0
- data/app/views/layouts/jabe/_flashes.html.haml +3 -0
- data/app/views/layouts/{_footer.html.haml → jabe/_footer.html.haml} +0 -0
- data/app/views/layouts/jabe/_header.html.haml +4 -0
- data/app/views/layouts/jabe/_sidebar.html.haml +21 -0
- data/app/views/layouts/jabe/application.html.haml +63 -0
- data/{test/dummy/vendor/plugins/acts_as_textiled/init.rb → config/initializers/acts_as_textiled.rb} +2 -1
- data/config/initializers/devise.rb +3 -0
- data/config/initializers/settings.rb +5 -5
- data/config/initializers/simple_form.rb +93 -0
- data/config/initializers/time_formats.rb +1 -2
- data/config/locales/simple_form.en.yml +24 -0
- data/config/routes.rb +10 -5
- data/{test/dummy/db/migrate/20101229224027_create_settings.rb → db/migrate/20101230010434_create_settings.rb} +7 -2
- data/{lib/generators/jabe/templates/migrations/devise_create_admins.rb → db/migrate/20101230010436_devise_create_admins.rb} +6 -6
- data/{test/dummy/db/migrate/20101229224030_create_entries.rb → db/migrate/20101230010437_create_entries.rb} +2 -2
- data/{test/dummy/db/migrate/20101229224031_create_comments.rb → db/migrate/20101230010438_create_comments.rb} +3 -4
- data/{test/dummy/vendor/plugins/acts_as_textiled/lib/acts_as_textiled.rb → lib/acts_as_textiled/base.rb} +0 -0
- data/lib/jabe.rb +7 -15
- data/lib/jabe/engine.rb +5 -0
- data/lib/jabe/version.rb +3 -0
- data/lib/tasks/jabe_tasks.rake +4 -0
- metadata +187 -601
- data/Gemfile +0 -35
- data/Gemfile.lock +0 -214
- data/VERSION +0 -1
- data/app/controllers/admin/base_controller.rb +0 -3
- data/app/controllers/admin/entries_controller.rb +0 -42
- data/app/controllers/admin/settings_controller.rb +0 -11
- data/app/controllers/comments_controller.rb +0 -25
- data/app/controllers/entries_controller.rb +0 -26
- data/app/controllers/feed_controller.rb +0 -8
- data/app/helpers/jabe_helper.rb +0 -13
- data/app/models/admin.rb +0 -9
- data/app/models/comment.rb +0 -22
- data/app/models/entry.rb +0 -17
- data/app/models/settings.rb +0 -7
- data/app/stylesheets/_will_paginate.scss +0 -102
- data/app/stylesheets/handheld.scss +0 -7
- data/app/views/entries/_comment_form.html.haml +0 -3
- data/app/views/entries/show.html.haml +0 -38
- data/app/views/layouts/_header.html.haml +0 -4
- data/app/views/layouts/_sidebar.html.haml +0 -21
- data/app/views/layouts/application.html.haml +0 -59
- data/config/initializers/sass.rb +0 -5
- data/lib/generators/jabe/migrations/migrations_generator.rb +0 -38
- data/lib/generators/jabe/stylesheets/stylesheets_generator.rb +0 -9
- data/lib/generators/jabe/templates/migrations/add_new_settings.rb +0 -17
- data/lib/generators/jabe/templates/migrations/create_comments.rb +0 -20
- data/lib/generators/jabe/templates/migrations/create_entries.rb +0 -16
- data/lib/generators/jabe/templates/migrations/create_settings.rb +0 -21
- data/lib/generators/jabe/templates/migrations/create_slugs.rb +0 -18
- data/public/.htaccess +0 -220
- data/public/apple-touch-icon.png +0 -0
- data/public/blackbird/blackbird.css +0 -80
- data/public/blackbird/blackbird.js +0 -365
- data/public/blackbird/blackbird.png +0 -0
- data/public/crossdomain.xml +0 -25
- data/public/javascripts/jquery-ui.js +0 -11511
- data/public/javascripts/jquery-ui.min.js +0 -404
- data/public/javascripts/jquery.js +0 -7179
- data/public/javascripts/jquery.min.js +0 -167
- data/public/javascripts/libs/profiling/charts.swf +0 -0
- data/public/javascripts/libs/profiling/config.js +0 -59
- data/public/javascripts/libs/profiling/yahoo-profiling.css +0 -7
- data/public/javascripts/libs/profiling/yahoo-profiling.min.js +0 -39
- data/public/javascripts/rails.js +0 -154
- data/public/nginx.conf +0 -108
- data/public/robots.txt +0 -5
- data/test/dummy/app/controllers/application_controller.rb +0 -3
- data/test/dummy/app/helpers/application_helper.rb +0 -2
- data/test/dummy/config/application.rb +0 -52
- data/test/dummy/config/boot.rb +0 -10
- data/test/dummy/config/environment.rb +0 -5
- data/test/dummy/config/environments/development.rb +0 -26
- data/test/dummy/config/environments/production.rb +0 -49
- data/test/dummy/config/environments/test.rb +0 -35
- data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
- data/test/dummy/config/initializers/devise.rb +0 -142
- data/test/dummy/config/initializers/inflections.rb +0 -10
- data/test/dummy/config/initializers/mime_types.rb +0 -5
- data/test/dummy/config/initializers/secret_token.rb +0 -7
- data/test/dummy/config/initializers/session_store.rb +0 -8
- data/test/dummy/config/routes.rb +0 -58
- data/test/dummy/db/migrate/20101229224028_create_slugs.rb +0 -18
- data/test/dummy/db/migrate/20101229224029_devise_create_admins.rb +0 -26
- data/test/dummy/db/migrate/20110104004400_add_new_settings.rb +0 -17
- data/test/dummy/db/schema.rb +0 -110
- data/test/dummy/features/step_definitions/admin_steps.rb +0 -14
- data/test/dummy/features/step_definitions/email_steps.rb +0 -194
- data/test/dummy/features/step_definitions/entry_steps.rb +0 -54
- data/test/dummy/features/step_definitions/support_steps.rb +0 -3
- data/test/dummy/features/step_definitions/web_steps.rb +0 -219
- data/test/dummy/features/support/blueprints.rb +0 -37
- data/test/dummy/features/support/env.rb +0 -59
- data/test/dummy/features/support/paths.rb +0 -39
- data/test/dummy/spec/spec_helper.rb +0 -0
- data/test/dummy/spec/support/blueprints.rb +0 -9
- data/test/dummy/vendor/plugins/acts_as_textiled/test/fixtures/author.rb +0 -4
- data/test/dummy/vendor/plugins/acts_as_textiled/test/fixtures/story.rb +0 -4
- data/test/dummy/vendor/plugins/acts_as_textiled/test/helper.rb +0 -87
- data/test/dummy/vendor/plugins/acts_as_textiled/test/textiled_test.rb +0 -145
data/app/models/settings.rb
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
.digg_pagination {
|
|
2
|
-
background: white;
|
|
3
|
-
/* self-clearing method: */
|
|
4
|
-
a, span, em {
|
|
5
|
-
padding: .2em .5em;
|
|
6
|
-
display: block;
|
|
7
|
-
float: left;
|
|
8
|
-
margin-right: 1px; }
|
|
9
|
-
span.disabled {
|
|
10
|
-
color: #999;
|
|
11
|
-
border: 1px solid #DDD; }
|
|
12
|
-
em {
|
|
13
|
-
font-weight: bold;
|
|
14
|
-
background: #2E6AB1;
|
|
15
|
-
color: white;
|
|
16
|
-
border: 1px solid #2E6AB1; }
|
|
17
|
-
a {
|
|
18
|
-
text-decoration: none;
|
|
19
|
-
color: #105CB6;
|
|
20
|
-
border: 1px solid #9AAFE5;
|
|
21
|
-
&:hover, &:focus {
|
|
22
|
-
color: #003;
|
|
23
|
-
border-color: #003; } }
|
|
24
|
-
.page_info {
|
|
25
|
-
background: #2E6AB1;
|
|
26
|
-
color: white;
|
|
27
|
-
padding: .4em .6em;
|
|
28
|
-
width: 22em;
|
|
29
|
-
margin-bottom: .3em;
|
|
30
|
-
text-align: center;
|
|
31
|
-
b {
|
|
32
|
-
color: #003;
|
|
33
|
-
background: #6aa6ed;
|
|
34
|
-
padding: .1em .25em; } }
|
|
35
|
-
&:after {
|
|
36
|
-
content: ".";
|
|
37
|
-
display: block;
|
|
38
|
-
height: 0;
|
|
39
|
-
clear: both;
|
|
40
|
-
visibility: hidden; } }
|
|
41
|
-
|
|
42
|
-
* {
|
|
43
|
-
html .digg_pagination {
|
|
44
|
-
height: 1%; }
|
|
45
|
-
&:first-child+html .digg_pagination {
|
|
46
|
-
overflow: hidden; } }
|
|
47
|
-
|
|
48
|
-
.apple_pagination {
|
|
49
|
-
// background: #F1F1F1;
|
|
50
|
-
// border: 1px solid #E5E5E5;
|
|
51
|
-
text-align: center;
|
|
52
|
-
padding: 1em;
|
|
53
|
-
a, span {
|
|
54
|
-
padding: .2em .3em; } }
|
|
55
|
-
|
|
56
|
-
.digg_pagination em {
|
|
57
|
-
padding: .2em .3em; }
|
|
58
|
-
|
|
59
|
-
.apple_pagination {
|
|
60
|
-
span.disabled {
|
|
61
|
-
color: #AAA; }
|
|
62
|
-
em {
|
|
63
|
-
font-weight: bold;
|
|
64
|
-
background: transparent url(apple-circle.gif) no-repeat 50% 50%; }
|
|
65
|
-
a {
|
|
66
|
-
text-decoration: none;
|
|
67
|
-
// color: black;
|
|
68
|
-
&:hover, &:focus {
|
|
69
|
-
text-decoration: underline; } } }
|
|
70
|
-
|
|
71
|
-
.flickr_pagination {
|
|
72
|
-
text-align: center;
|
|
73
|
-
padding: .3em;
|
|
74
|
-
a, span {
|
|
75
|
-
padding: .2em .5em; } }
|
|
76
|
-
|
|
77
|
-
.digg_pagination em {
|
|
78
|
-
padding: .2em .5em; }
|
|
79
|
-
|
|
80
|
-
.flickr_pagination {
|
|
81
|
-
span.disabled {
|
|
82
|
-
color: #AAA; }
|
|
83
|
-
em {
|
|
84
|
-
font-weight: bold;
|
|
85
|
-
color: #FF0084; }
|
|
86
|
-
a {
|
|
87
|
-
border: 1px solid #DDDDDD;
|
|
88
|
-
color: #0063DC;
|
|
89
|
-
text-decoration: none;
|
|
90
|
-
&:hover, &:focus {
|
|
91
|
-
border-color: #003366;
|
|
92
|
-
background: #0063DC;
|
|
93
|
-
color: white; } }
|
|
94
|
-
.page_info {
|
|
95
|
-
color: #aaa;
|
|
96
|
-
padding-top: .8em; }
|
|
97
|
-
.prev_page, .next_page {
|
|
98
|
-
border-width: 2px; }
|
|
99
|
-
.prev_page {
|
|
100
|
-
margin-right: 1em; }
|
|
101
|
-
.next_page {
|
|
102
|
-
margin-left: 1em; } }
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
#entries.grid_8
|
|
2
|
-
.entry.last
|
|
3
|
-
.title
|
|
4
|
-
= entry.title
|
|
5
|
-
.date
|
|
6
|
-
= entry.published_at.to_s(:long)
|
|
7
|
-
.content
|
|
8
|
-
~ entry.body.html_safe
|
|
9
|
-
|
|
10
|
-
%a{ :name => 'comments' }
|
|
11
|
-
#comments
|
|
12
|
-
%h2 Comments
|
|
13
|
-
- if entry.comments.any?
|
|
14
|
-
- entry.comments.each do |comment|
|
|
15
|
-
.comment
|
|
16
|
-
.gravatar
|
|
17
|
-
= image_tag comment.gravatar_url(:default => default_gravatar_url)
|
|
18
|
-
.author
|
|
19
|
-
= comment.name
|
|
20
|
-
%span.when
|
|
21
|
-
= comment.created_at.to_s(:long)
|
|
22
|
-
.body
|
|
23
|
-
= comment.body
|
|
24
|
-
- else
|
|
25
|
-
.comment
|
|
26
|
-
.author
|
|
27
|
-
None yet...
|
|
28
|
-
|
|
29
|
-
%a{ :name => 'add-comment' }
|
|
30
|
-
#new_comment
|
|
31
|
-
%h2 Add a comment
|
|
32
|
-
= semantic_form_for [entry, comment] do |form|
|
|
33
|
-
= form.input :name
|
|
34
|
-
= form.input :nickname
|
|
35
|
-
= form.input :email, :label => 'Email (not shown to the public)'
|
|
36
|
-
= form.input :url, :label => 'Website'
|
|
37
|
-
= form.input :body, :label => 'Comment'
|
|
38
|
-
= form.submit 'Add comment'
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
%h2
|
|
2
|
-
= SETTINGS.sidebar_heading
|
|
3
|
-
|
|
4
|
-
- if SETTINGS.github_username
|
|
5
|
-
.link
|
|
6
|
-
= link_to 'Github', SETTINGS.github_username
|
|
7
|
-
|
|
8
|
-
- if SETTINGS.twitter_username
|
|
9
|
-
.link
|
|
10
|
-
= link_to 'Twitter', SETTINGS.twitter_username
|
|
11
|
-
|
|
12
|
-
- if SETTINGS.facebook_url
|
|
13
|
-
.link
|
|
14
|
-
= link_to 'Facebook', SETTINGS.facebook_url
|
|
15
|
-
|
|
16
|
-
- if SETTINGS.show_github_badge
|
|
17
|
-
#github-badge
|
|
18
|
-
|
|
19
|
-
:javascript
|
|
20
|
-
GITHUB_USERNAME="#{SETTINGS.github_username}";
|
|
21
|
-
= javascript_include_tag 'http://drnicjavascript.rubyforge.org/github_badge/dist/github-badge-launcher.js'
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
/[if lt IE 7 ] <html lang="en" class="no-js ie6">
|
|
3
|
-
/[if IE 7 ] <html lang="en" class="no-js ie7">
|
|
4
|
-
/[if IE 8 ] <html lang="en" class="no-js ie8">
|
|
5
|
-
/[if IE 9 ] <html lang="en" class="no-js ie9">
|
|
6
|
-
/ [if (gt IE 9)|!(IE)]><!
|
|
7
|
-
%html.no-js{:lang => "en"}
|
|
8
|
-
/ <![endif]
|
|
9
|
-
%head
|
|
10
|
-
%meta{:charset => "utf-8"}/
|
|
11
|
-
%meta{:content => "IE=edge,chrome=1", "http-equiv" => "X-UA-Compatible"}/
|
|
12
|
-
%title= SETTINGS.site_name
|
|
13
|
-
%meta{:content => "", :name => "description"}/
|
|
14
|
-
%meta{:content => "", :name => "author"}/
|
|
15
|
-
%meta{:content => "width=device-width, initial-scale=1.0", :name => "viewport"}/
|
|
16
|
-
%link{:href => "/favicon.ico", :rel => "shortcut icon"}/
|
|
17
|
-
%link{:href => "/apple-touch-icon.png", :rel => "apple-touch-icon"}/
|
|
18
|
-
= auto_discovery_link_tag :atom, feed_path
|
|
19
|
-
= stylesheet_link_tag 'boilerplate', 'jabe', 'application'
|
|
20
|
-
= javascript_include_tag 'libs/modernizr-1.6.min.js'
|
|
21
|
-
%body
|
|
22
|
-
#container
|
|
23
|
-
%header
|
|
24
|
-
= render 'layouts/header'
|
|
25
|
-
- if admin_signed_in?
|
|
26
|
-
%nav.nav.admin
|
|
27
|
-
%ul
|
|
28
|
-
%li= link_to 'Entries', admin_entries_path
|
|
29
|
-
%li= link_to 'Settings', edit_admin_settings_path
|
|
30
|
-
%li= link_to 'Logout', destroy_admin_session_path
|
|
31
|
-
#main
|
|
32
|
-
#content
|
|
33
|
-
= yield
|
|
34
|
-
#sidebar
|
|
35
|
-
= render 'layouts/sidebar'
|
|
36
|
-
%footer
|
|
37
|
-
= render 'layouts/footer'
|
|
38
|
-
%script{:src => "//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"}
|
|
39
|
-
:javascript
|
|
40
|
-
!window.jQuery && document.write(unescape('%3Cscript src="/javascripts/libs/jquery-min.js"%3E%3C/script%3E'))
|
|
41
|
-
= javascript_include_tag 'plugins'
|
|
42
|
-
= javascript_include_tag 'application'
|
|
43
|
-
/[if lt IE 7 ]
|
|
44
|
-
<script src="/javascripts/libs/dd_belatedpng.js"></script>
|
|
45
|
-
<script> DD_belatedPNG.fix('img, .png_bg'); </script>
|
|
46
|
-
- unless Rails.env.production?
|
|
47
|
-
/ yui profiler and profileviewer - remove for production
|
|
48
|
-
= javascript_include_tag 'libs/profiling/yahoo-profiling.min.js'
|
|
49
|
-
= javascript_include_tag 'libs/profiling/config.js'
|
|
50
|
-
/ change the UA-XXXXX-X to be your site's ID
|
|
51
|
-
:javascript
|
|
52
|
-
var _gaq = [['_setAccount', 'UA-XXXXX-X'], ['_trackPageview']];
|
|
53
|
-
(function(d, t) {
|
|
54
|
-
var g = d.createElement(t),
|
|
55
|
-
s = d.getElementsByTagName(t)[0];
|
|
56
|
-
g.async = true;
|
|
57
|
-
g.src = ('https:' == location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
|
58
|
-
s.parentNode.insertBefore(g, s);
|
|
59
|
-
})(document, 'script');
|
data/config/initializers/sass.rb
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
module Jabe
|
|
2
|
-
module Generators
|
|
3
|
-
class MigrationsGenerator < Rails::Generators::Base
|
|
4
|
-
include Rails::Generators::Migration
|
|
5
|
-
|
|
6
|
-
self.source_root(File.expand_path(File.join(Jabe::Engine.root, 'lib', 'generators', 'jabe', 'templates', 'migrations')))
|
|
7
|
-
|
|
8
|
-
desc "run this generator to create the necessary migrations"
|
|
9
|
-
|
|
10
|
-
def create_migrations
|
|
11
|
-
existing_migrations = Dir["db/migrate/*.rb"]
|
|
12
|
-
migrations = %w(
|
|
13
|
-
create_settings.rb
|
|
14
|
-
create_slugs.rb
|
|
15
|
-
devise_create_admins.rb
|
|
16
|
-
create_entries.rb
|
|
17
|
-
create_comments.rb
|
|
18
|
-
add_new_settings.rb
|
|
19
|
-
).reject { |file|
|
|
20
|
-
existing_migrations.any? { |migration|
|
|
21
|
-
match = migration.match(/#{file}$/)
|
|
22
|
-
puts "skipping #{file}, exists." if match
|
|
23
|
-
match
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
migrations.each do |migration|
|
|
28
|
-
migration_template migration, "db/migrate/#{migration}"
|
|
29
|
-
sleep 1 # timestamps...
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def self.next_migration_number(dirname)
|
|
34
|
-
Time.now.utc.strftime("%Y%m%d%H%M%S")
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
module Jabe
|
|
2
|
-
module Generators
|
|
3
|
-
class StylesheetsGenerator < Rails::Generators::Base
|
|
4
|
-
%w( boilerplate handheld jabe ).each do |sheet|
|
|
5
|
-
system("bundle exec sass #{Jabe::Engine.root}/app/stylesheets/#{sheet}.scss public/stylesheets/#{sheet}.css")
|
|
6
|
-
end
|
|
7
|
-
end
|
|
8
|
-
end
|
|
9
|
-
end
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
class AddNewSettings < ActiveRecord::Migration
|
|
2
|
-
def self.up
|
|
3
|
-
add_column :settings, :sidebar_heading, :string
|
|
4
|
-
add_column :settings, :github_username, :string
|
|
5
|
-
add_column :settings, :twitter_username, :string
|
|
6
|
-
add_column :settings, :show_github_badge, :boolean
|
|
7
|
-
add_column :settings, :facebook_url, :string
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def self.down
|
|
11
|
-
remove_column :settings, :sidebar_heading
|
|
12
|
-
remove_column :settings, :facebook_url
|
|
13
|
-
remove_column :settings, :show_github_badge
|
|
14
|
-
remove_column :settings, :twitter_username
|
|
15
|
-
remove_column :settings, :github_username
|
|
16
|
-
end
|
|
17
|
-
end
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
class CreateComments < ActiveRecord::Migration
|
|
2
|
-
def self.up
|
|
3
|
-
create_table :comments do |t|
|
|
4
|
-
t.integer :entry_id
|
|
5
|
-
t.string :name
|
|
6
|
-
t.string :email
|
|
7
|
-
t.string :url
|
|
8
|
-
t.text :body
|
|
9
|
-
|
|
10
|
-
t.timestamps
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
add_index :comments, :entry_id
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def self.down
|
|
17
|
-
remove_index :comments, :entry_id
|
|
18
|
-
drop_table :comments
|
|
19
|
-
end
|
|
20
|
-
end
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
class CreateEntries < ActiveRecord::Migration
|
|
2
|
-
def self.up
|
|
3
|
-
create_table :entries do |t|
|
|
4
|
-
t.string :cached_slug
|
|
5
|
-
t.string :title
|
|
6
|
-
t.text :body
|
|
7
|
-
t.boolean :draft
|
|
8
|
-
t.datetime :published_at
|
|
9
|
-
t.timestamps
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def self.down
|
|
14
|
-
drop_table :entries
|
|
15
|
-
end
|
|
16
|
-
end
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
class CreateSettings < ActiveRecord::Migration
|
|
2
|
-
def self.up
|
|
3
|
-
create_table :settings do |t|
|
|
4
|
-
t.string :site_url
|
|
5
|
-
t.string :host_name
|
|
6
|
-
t.string :mail_from
|
|
7
|
-
t.string :site_name
|
|
8
|
-
t.string :tagline
|
|
9
|
-
t.string :time_zone
|
|
10
|
-
t.string :google_tracker_id
|
|
11
|
-
t.boolean :blackbird_enabled
|
|
12
|
-
t.integer :entries_per_page
|
|
13
|
-
|
|
14
|
-
t.timestamps
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def self.down
|
|
19
|
-
drop_table :settings
|
|
20
|
-
end
|
|
21
|
-
end
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
class CreateSlugs < ActiveRecord::Migration
|
|
2
|
-
def self.up
|
|
3
|
-
create_table :slugs do |t|
|
|
4
|
-
t.string :name
|
|
5
|
-
t.integer :sluggable_id
|
|
6
|
-
t.integer :sequence, :null => false, :default => 1
|
|
7
|
-
t.string :sluggable_type, :limit => 40
|
|
8
|
-
t.string :scope
|
|
9
|
-
t.datetime :created_at
|
|
10
|
-
end
|
|
11
|
-
add_index :slugs, :sluggable_id
|
|
12
|
-
add_index :slugs, [:name, :sluggable_type, :sequence, :scope], :name => "index_slugs_on_n_s_s_and_s", :unique => true
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def self.down
|
|
16
|
-
drop_table :slugs
|
|
17
|
-
end
|
|
18
|
-
end
|
data/public/.htaccess
DELETED
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
# Apache configuration file
|
|
2
|
-
# httpd.apache.org/docs/2.2/mod/quickreference.html
|
|
3
|
-
|
|
4
|
-
# Techniques in here adapted from all over, including:
|
|
5
|
-
# Kroc Camen: camendesign.com/.htaccess
|
|
6
|
-
# perishablepress.com/press/2006/01/10/stupid-htaccess-tricks/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
# Force the latest IE version, in various cases when it may fall back to IE7 mode
|
|
10
|
-
# github.com/rails/rails/commit/123eb25#commitcomment-118920
|
|
11
|
-
# Use ChromeFrame if it's installed for a better experience for the poor IE folk
|
|
12
|
-
<IfModule mod_setenvif.c>
|
|
13
|
-
<IfModule mod_headers.c>
|
|
14
|
-
BrowserMatch MSIE ie
|
|
15
|
-
Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie
|
|
16
|
-
</IfModule>
|
|
17
|
-
</IfModule>
|
|
18
|
-
|
|
19
|
-
<IfModule mod_headers.c>
|
|
20
|
-
# Because X-UA-Compatible isn't sent to non-IE (to save header bytes),
|
|
21
|
-
# We need to inform proxies that content changes based on UA
|
|
22
|
-
Header append Vary User-Agent
|
|
23
|
-
# Cache control is set only if mod_headers is enabled, so that's unncessary to declare
|
|
24
|
-
</IfModule>
|
|
25
|
-
|
|
26
|
-
# hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/
|
|
27
|
-
# Disabled. Uncomment to serve cross-domain ajax requests
|
|
28
|
-
#<IfModule mod_headers.c>
|
|
29
|
-
# Header set Access-Control-Allow-Origin "*"
|
|
30
|
-
#</IfModule>
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
# allow access from all domains for webfonts
|
|
36
|
-
# alternatively you could only whitelist
|
|
37
|
-
# your subdomains like "sub.domain.com"
|
|
38
|
-
|
|
39
|
-
<FilesMatch "\.(ttf|otf|eot|woff|font.css)$">
|
|
40
|
-
<IfModule mod_headers.c>
|
|
41
|
-
Header set Access-Control-Allow-Origin "*"
|
|
42
|
-
</IfModule>
|
|
43
|
-
</FilesMatch>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
# video
|
|
47
|
-
AddType video/ogg ogg ogv
|
|
48
|
-
AddType video/mp4 mp4
|
|
49
|
-
AddType video/webm webm
|
|
50
|
-
|
|
51
|
-
# Proper svg serving. Required for svg webfonts on iPad
|
|
52
|
-
# twitter.com/FontSquirrel/status/14855840545
|
|
53
|
-
AddType image/svg+xml svg svgz
|
|
54
|
-
AddEncoding gzip svgz
|
|
55
|
-
|
|
56
|
-
# webfonts
|
|
57
|
-
AddType application/vnd.ms-fontobject eot
|
|
58
|
-
AddType font/truetype ttf
|
|
59
|
-
AddType font/opentype otf
|
|
60
|
-
AddType font/woff woff
|
|
61
|
-
|
|
62
|
-
# assorted types
|
|
63
|
-
AddType image/vnd.microsoft.icon ico
|
|
64
|
-
AddType image/webp webp
|
|
65
|
-
AddType text/cache-manifest manifest
|
|
66
|
-
AddType text/x-component htc
|
|
67
|
-
AddType application/x-chrome-extension crx
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
# allow concatenation from within specific js and css files
|
|
73
|
-
|
|
74
|
-
# e.g. Inside of script.combined.js you could have
|
|
75
|
-
# <!--#include file="jquery-1.4.2.js" -->
|
|
76
|
-
# <!--#include file="jquery.idletimer.js" -->
|
|
77
|
-
# and they would be included into this single file
|
|
78
|
-
|
|
79
|
-
# this is not in use in the boilerplate as it stands. you may
|
|
80
|
-
# choose to name your files in this way for this advantage
|
|
81
|
-
# or concatenate and minify them manually.
|
|
82
|
-
# Disabled by default.
|
|
83
|
-
|
|
84
|
-
# <FilesMatch "\.combined\.(js|css)$">
|
|
85
|
-
# Options +Includes
|
|
86
|
-
# SetOutputFilter INCLUDES
|
|
87
|
-
# </FilesMatch>
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
# gzip compression.
|
|
94
|
-
<IfModule mod_deflate.c>
|
|
95
|
-
|
|
96
|
-
# html, txt, css, js, json, xml, htc:
|
|
97
|
-
AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
|
|
98
|
-
AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript
|
|
99
|
-
AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
|
|
100
|
-
|
|
101
|
-
# webfonts and svg:
|
|
102
|
-
<FilesMatch "\.(ttf|otf|eot|svg)$" >
|
|
103
|
-
SetOutputFilter DEFLATE
|
|
104
|
-
</FilesMatch>
|
|
105
|
-
</IfModule>
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
# these are pretty far-future expires headers
|
|
110
|
-
# they assume you control versioning with cachebusting query params like
|
|
111
|
-
# <script src="application.js?20100608">
|
|
112
|
-
# additionally, consider that outdated proxies may miscache
|
|
113
|
-
# www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/
|
|
114
|
-
|
|
115
|
-
# if you don't use filenames to version, lower the css and js to something like
|
|
116
|
-
# "access plus 1 week" or so
|
|
117
|
-
|
|
118
|
-
<IfModule mod_expires.c>
|
|
119
|
-
Header set Cache-Control "public"
|
|
120
|
-
ExpiresActive on
|
|
121
|
-
|
|
122
|
-
# Perhaps better to whitelist expires rules? Perhaps.
|
|
123
|
-
ExpiresDefault "access plus 1 month"
|
|
124
|
-
|
|
125
|
-
# cache.manifest needs re-requests in FF 3.6 (thx Remy ~Introducing HTML5)
|
|
126
|
-
ExpiresByType text/cache-manifest "access plus 0 seconds"
|
|
127
|
-
|
|
128
|
-
# your document html
|
|
129
|
-
ExpiresByType text/html "access plus 0 seconds"
|
|
130
|
-
|
|
131
|
-
# data
|
|
132
|
-
ExpiresByType text/xml "access plus 0 seconds"
|
|
133
|
-
ExpiresByType application/xml "access plus 0 seconds"
|
|
134
|
-
ExpiresByType application/json "access plus 0 seconds"
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
# rss feed
|
|
138
|
-
ExpiresByType application/rss+xml "access plus 1 hour"
|
|
139
|
-
|
|
140
|
-
# favicon (cannot be renamed)
|
|
141
|
-
ExpiresByType image/vnd.microsoft.icon "access plus 1 week"
|
|
142
|
-
|
|
143
|
-
# media: images, video, audio
|
|
144
|
-
ExpiresByType image/gif "access plus 1 month"
|
|
145
|
-
ExpiresByType image/png "access plus 1 month"
|
|
146
|
-
ExpiresByType image/jpg "access plus 1 month"
|
|
147
|
-
ExpiresByType image/jpeg "access plus 1 month"
|
|
148
|
-
ExpiresByType video/ogg "access plus 1 month"
|
|
149
|
-
ExpiresByType audio/ogg "access plus 1 month"
|
|
150
|
-
ExpiresByType video/mp4 "access plus 1 month"
|
|
151
|
-
ExpiresByType video/webm "access plus 1 month"
|
|
152
|
-
|
|
153
|
-
# webfonts
|
|
154
|
-
ExpiresByType font/truetype "access plus 1 month"
|
|
155
|
-
ExpiresByType font/opentype "access plus 1 month"
|
|
156
|
-
ExpiresByType font/woff "access plus 1 month"
|
|
157
|
-
ExpiresByType image/svg+xml "access plus 1 month"
|
|
158
|
-
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
|
|
159
|
-
|
|
160
|
-
# css and javascript
|
|
161
|
-
ExpiresByType text/css "access plus 1 month"
|
|
162
|
-
ExpiresByType application/javascript "access plus 1 month"
|
|
163
|
-
ExpiresByType text/javascript "access plus 1 month"
|
|
164
|
-
</IfModule>
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
# Since we're sending far-future expires, we don't need ETags for
|
|
170
|
-
# static content.
|
|
171
|
-
# developer.yahoo.com/performance/rules.html#etags
|
|
172
|
-
FileETag None
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
# Allow cookies to be set from iframes (for IE only)
|
|
178
|
-
# If needed, uncomment and specify a path or regex in the Location directive
|
|
179
|
-
|
|
180
|
-
# <IfModule mod_headers.c>
|
|
181
|
-
# <Location />
|
|
182
|
-
# Header set P3P "policyref=\"/w3c/p3p.xml\", CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\""
|
|
183
|
-
# </Location>
|
|
184
|
-
# </IfModule>
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
# you probably want www.example.com to forward to example.com -- shorter URLs are sexier.
|
|
188
|
-
# no-www.org/faq.php?q=class_b
|
|
189
|
-
<IfModule mod_rewrite.c>
|
|
190
|
-
RewriteEngine On
|
|
191
|
-
RewriteCond %{HTTPS} !=on
|
|
192
|
-
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
|
|
193
|
-
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
|
|
194
|
-
</IfModule>
|
|
195
|
-
|
|
196
|
-
# without -MultiViews, Apache will give a 404 for a rewrite if a folder of the same name does not exist
|
|
197
|
-
# e.g. /blog/hello : webmasterworld.com/apache/3808792.htm
|
|
198
|
-
Options -MultiViews
|
|
199
|
-
# -Indexes will have Apache block users from browsing folders without a default document
|
|
200
|
-
# Options -Indexes
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
# custom 404 page
|
|
205
|
-
ErrorDocument 404 /404.html
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
# use utf-8 encoding for anything served text/plain or text/html
|
|
210
|
-
AddDefaultCharset utf-8
|
|
211
|
-
# force utf-8 for a number of file formats
|
|
212
|
-
AddCharset utf-8 .html .css .js .xml .json .rss
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
# We don't need to tell everyone we're apache.
|
|
217
|
-
ServerSignature Off
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|