jabe 0.5.9 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
|