diff --git a/Gemfile b/Gemfile index 441eadebb..ce006c104 100644 --- a/Gemfile +++ b/Gemfile @@ -8,7 +8,11 @@ group :test do gem "simplecov", :require => false end -gem "rails", "3.1.0.rc4" +group :assets do + +end + +gem "rails", "3.1.0.rc5" gem "pg" gem "memcache-client", :require => "memcache" gem "imagesize", :require => "image_size" diff --git a/Gemfile.lock b/Gemfile.lock index b094a0a82..352b3e780 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -17,35 +17,34 @@ GEM remote: http://gemcutter.org/ specs: aaronh-chronic (0.3.9) - actionmailer (3.1.0.rc4) - actionpack (= 3.1.0.rc4) + actionmailer (3.1.0.rc5) + actionpack (= 3.1.0.rc5) mail (~> 2.3.0) - actionpack (3.1.0.rc4) - activemodel (= 3.1.0.rc4) - activesupport (= 3.1.0.rc4) + actionpack (3.1.0.rc5) + activemodel (= 3.1.0.rc5) + activesupport (= 3.1.0.rc5) builder (~> 3.0.0) erubis (~> 2.7.0) i18n (~> 0.6) - rack (~> 1.3.0) - rack-cache (~> 1.0.1) + rack (~> 1.3.1) + rack-cache (~> 1.0.2) rack-mount (~> 0.8.1) rack-test (~> 0.6.0) - sprockets (~> 2.0.0.beta.10) - tzinfo (~> 0.3.27) - activemodel (3.1.0.rc4) - activesupport (= 3.1.0.rc4) + sprockets (~> 2.0.0.beta.12) + activemodel (3.1.0.rc5) + activesupport (= 3.1.0.rc5) bcrypt-ruby (~> 2.1.4) builder (~> 3.0.0) i18n (~> 0.6) - activerecord (3.1.0.rc4) - activemodel (= 3.1.0.rc4) - activesupport (= 3.1.0.rc4) - arel (~> 2.1.1) - tzinfo (~> 0.3.27) - activeresource (3.1.0.rc4) - activemodel (= 3.1.0.rc4) - activesupport (= 3.1.0.rc4) - activesupport (3.1.0.rc4) + activerecord (3.1.0.rc5) + activemodel (= 3.1.0.rc5) + activesupport (= 3.1.0.rc5) + arel (~> 2.1.4) + tzinfo (~> 0.3.29) + activeresource (3.1.0.rc5) + activemodel (= 3.1.0.rc5) + activesupport (= 3.1.0.rc5) + activesupport (3.1.0.rc5) multi_json (~> 1.0) arel (2.1.4) bcrypt-ruby (2.1.4) @@ -87,17 +86,17 @@ GEM rack rack-test (0.6.1) rack (>= 1.0) - rails (3.1.0.rc4) - actionmailer (= 3.1.0.rc4) - actionpack (= 3.1.0.rc4) - activerecord (= 3.1.0.rc4) - activeresource (= 3.1.0.rc4) - activesupport (= 3.1.0.rc4) + rails (3.1.0.rc5) + actionmailer (= 3.1.0.rc5) + actionpack (= 3.1.0.rc5) + activerecord (= 3.1.0.rc5) + activeresource (= 3.1.0.rc5) + activesupport (= 3.1.0.rc5) bundler (~> 1.0) - railties (= 3.1.0.rc4) - railties (3.1.0.rc4) - actionpack (= 3.1.0.rc4) - activesupport (= 3.1.0.rc4) + railties (= 3.1.0.rc5) + railties (3.1.0.rc5) + actionpack (= 3.1.0.rc5) + activesupport (= 3.1.0.rc5) rack-ssl (~> 1.3.2) rake (>= 0.8.7) rdoc (~> 3.4) @@ -115,7 +114,7 @@ GEM sprockets (2.0.0.beta.13) hike (~> 1.2) rack (~> 1.0) - tilt (~> 1.1, != 1.3.0) + tilt (!= 1.3.0, ~> 1.1) super_exception_notifier (3.0.13) actionmailer rake @@ -146,7 +145,7 @@ DEPENDENCIES mocha nokogiri pg - rails (= 3.1.0.rc4) + rails (= 3.1.0.rc5) shoulda silent-postgres simple_form diff --git a/config/application.rb b/config/application.rb index adbdc8097..3a8640d4a 100644 --- a/config/application.rb +++ b/config/application.rb @@ -2,9 +2,10 @@ require File.expand_path('../boot', __FILE__) require 'rails/all' -# If you have a Gemfile, require the gems listed there, including any gems -# you've limited to :test, :development, or :production. -Bundler.require(:default, Rails.env) if defined?(Bundler) +# If you have a Gemfile, require the default gems, the ones in the +# current environment and also include :assets gems if in development +# or test environments. +Bundler.require *Rails.groups(:assets) if defined?(Bundler) module Danbooru class Application < Rails::Application diff --git a/config/environments/development.rb b/config/environments/development.rb index 1f07c0aa4..384fe56c6 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -21,4 +21,7 @@ Danbooru::Application.configure do # Only use best-standards-support built into browsers config.action_dispatch.best_standards_support = :builtin + + # Do not compress assets + config.assets.compress = false end diff --git a/config/environments/production.rb b/config/environments/production.rb index 3fd4a3812..597b4909f 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -11,9 +11,8 @@ Danbooru::Application.configure do # Disable Rails's static asset server (Apache or nginx will already do this) config.serve_static_assets = false - # Compress both stylesheets and JavaScripts - config.assets.js_compressor = :uglifier - config.assets.css_compressor = :scss + # Compress JavaScripts and CSS + config.assets.compress = true # Specifies the header that your server uses for sending files # (comment out if your front-end server doesn't support this) diff --git a/config/initializers/inflections.rb b/config/initializers/inflections.rb index e1e6e8322..9e8b0131f 100644 --- a/config/initializers/inflections.rb +++ b/config/initializers/inflections.rb @@ -1,5 +1,10 @@ -ActiveSupport::Inflector.inflections do |inflect| - # inflect.plural /^(ox)$/i, '\1en' - # inflect.singular /^(ox)en/i, '\1' - # inflect.irregular 'person', 'people' -end +# Be sure to restart your server when you modify this file. + +# Add new inflection rules using the following format +# (all these examples are active by default): +# ActiveSupport::Inflector.inflections do |inflect| +# inflect.plural /^(ox)$/i, '\1en' +# inflect.singular /^(ox)en/i, '\1' +# inflect.irregular 'person', 'people' +# inflect.uncountable %w( fish sheep ) +# end diff --git a/config/initializers/wrap_parameters.rb b/config/initializers/wrap_parameters.rb index c66629f84..16c324357 100644 --- a/config/initializers/wrap_parameters.rb +++ b/config/initializers/wrap_parameters.rb @@ -1,7 +1,7 @@ # Be sure to restart your server when you modify this file. # -# This file contains the settings for ActionController::ParametersWrapper -# which will be enabled by default in the upcoming version of Ruby on Rails. +# This file contains settings for ActionController::ParamsWrapper which +# is enabled by default. # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. ActionController::Base.wrap_parameters format: [:json] diff --git a/public/stylesheets/compiled/default.css b/public/stylesheets/compiled/default.css deleted file mode 100644 index f65378366..000000000 --- a/public/stylesheets/compiled/default.css +++ /dev/null @@ -1,550 +0,0 @@ -.blacklisted { - display: none !important; } - -body, div, h1, h2, h3, h4, h5, h6, p, ul, li, dd, dt, header, aside { - font-family: Verdana, Geneva, sans-serif; - line-height: 1.25em; } - -body { - font-size: 87.5%; } - -h1, h2, h3, h4 { - font-family: Tahoma; - line-height: 1em; } - -body { - padding: 1em 2em; - margin: 0; } - -article, section { - display: block; } - -a:link { - color: #006ffa; - text-decoration: none; } - -a:visited { - color: #006ffa; - text-decoration: none; } - -a:hover { - color: #9093ff; - text-decoration: none; } - -a:active { - color: #006ffa; - text-decoration: none; } - -abbr[title=required] { - display: none; } - -blockquote { - margin: 0 0 1em 0; - padding: 1em; - border: 1px solid #666; - background: #EEE; } - -code { - font-family: monospace; - font-size: 1.2em; } - -dd { - margin-bottom: 1em; } - -dt { - font-weight: bold; } - -h1 { - font-size: 2.1818em; } - -h2 { - font-size: 1.9091em; } - -h3 { - font-size: 1.6364em; } - -h4 { - font-size: 1.4545em; } - -h5 { - font-size: 1.2727em; } - -h6 { - font-size: 1.090em; } - -header { - margin: 0 0 1em 0; - padding: 0; - display: block; } - -img { - border: none; - vertical-align: middle; } - -input[type=text], input[type=password], input[type=url], textarea, button { - /* border: 1px solid #AAA;*/ - font-size: 1em; - /* -moz-border-radius: 4px;*/ - /* -webkit-border-radius: 4px;*/ } - -input[type=submit] { - padding: 1px 4px; - /* border: 1px solid #AAA;*/ - /* background-color: #EEE;*/ - /* -moz-border-radius: 4px;*/ - /* -webkit-border-radius: 4px;*/ - font-size: 1em; - cursor: pointer; } - -input:focus, textarea:focus { - /* background-color: #FFD;*/ } - -input[type=submit]:hover { - /* background-color: #F6F6F6;*/ } - -menu { - margin: 0; - padding: 0; } - menu ul { - margin: 0; - padding: 0; } - menu li { - margin: 0 1em 0 0; - padding: 0; - list-style-type: none; - display: inline; } - -p { - margin-bottom: 1em; } - -section { - display: block; } - -span.error { - display: block; - font-weight: bold; - color: red; } - -span.link { - color: #006ffa; - cursor: pointer; } - -span.wait { - color: #CCC; } - -span.ui-icon { - float: left; - margin-right: 0.25em; } - -table tfoot { - margin-top: 2em; } - -table.striped tbody tr:hover { - background-color: #FFE; } -table.striped tr.even { - background-color: #EEE; } - -div.error-messages { - margin: 1em 0; - padding: 1em; } - div.error-messages span.ui-icon { - float: left; - margin-right: 0.5em; } - div.error-messages h1 { - font-size: 1em; - color: #A00; } - -div#search { - margin-bottom: 1em; } - -div#notice { - margin: 1em 0; - padding: 1em; } - div#notice span.ui-icon { - float: left; - margin-right: 0.5em; } - -div#page aside#sidebar { - width: 20%; - float: left; } - div#page aside#sidebar h1 { - font-size: 1.2em; } - div#page aside#sidebar ul { - list-style-type: none; } -div#page aside#sidebar > section { - margin-bottom: 1em; } -div#page section#content { - width: 75%; - float: left; - margin-left: 2em; } - -div.clearfix { - clear: both; } - -/*** Paginator ***/ -div.paginator { - display: block; - padding: 2em 0 1em 0; - font-size: 1em; - text-align: center; - font-weight: bold; - clear: both; } - div.paginator a { - margin: 0 3px; - padding: 2px 6px; - font-weight: normal; - border: 1px solid #EAEAEA; } - div.paginator a.arrow { - border: none; } - div.paginator a.arrow:hover { - background: white; - color: #9093FF; } - div.paginator a.current { - border: 1px solid #AAA; } - div.paginator a:hover { - background: #3c3cdc; - color: white; } - div.paginator span { - margin: 0 3px; - padding: 2px 6px; } - -/*** Header ***/ -body > header > h1 { - font-size: 3em; - font-family: Tahoma, Helvetica, sans-serif; } - -/*** Dialog Boxes ***/ -div.ui-dialog ul { - margin-left: 1em; - margin-bottom: 1em; } - -/*** Simple Form ***/ -form.simple_form { - margin: 0 0 1em 0; } - form.simple_form div.input.boolean label { - display: inline; } - form.simple_form div.input { - margin-bottom: 1em; } - form.simple_form div.input input[type=text], form.simple_form div.input input[type=file] { - width: 20em; } - form.simple_form div.input textarea { - width: 30em; } - form.simple_form div.input label { - display: block; - cursor: pointer; - font-weight: bold; } - form.simple_form div.input span.hint { - color: #666; - font-style: italic; - display: block; } - form.simple_form div.input fieldset { - border: none; - display: inline; - margin: 0; - padding: 0; } - form.simple_form div.input fieldset label { - font-weight: normal; - width: auto; - margin-right: 2em; } - -/*** DText Preview ***/ -div.dtext { - width: 30em; } - div.dtext ul { - margin-left: 1em; } - -/*** Pools Posts ***/ -div#c-pools-posts div#a-new form { - margin-bottom: 1em; } -div#c-pools-posts div#a-new li { - margin-left: 1em; - cursor: pointer; } - -/*** Pools ***/ -div#c-pools div#a-edit p { - width: 30em; } -div#c-pools div#a-edit ul.ui-sortable { - list-style-type: none; } - div#c-pools div#a-edit ul.ui-sortable span { - margin: 0; - float: right; - cursor: pointer; } - div#c-pools div#a-edit ul.ui-sortable li { - padding: 0.5em; } - div#c-pools div#a-edit ul.ui-sortable li.ui-state-default { - margin-bottom: 20px; - width: 180px; - background: none; } - div#c-pools div#a-edit ul.ui-sortable li.ui-state-placeholder { - margin-bottom: 20px; - width: 180px; - height: 150px; - background: none; } - -/*** Comments ***/ -div.comments-for-post div.list-of-comments article { - margin-bottom: 2em; } - div.comments-for-post div.list-of-comments article div.author { - width: 20%; - float: left; } - div.comments-for-post div.list-of-comments article div.content { - margin-left: 2em; - width: 30em; - float: left; } -div.comments-for-post div.comment-preview { - margin-bottom: 2em; } - -div.dtext-preview { - border: 2px dashed #AAA; - padding: 1em; - margin: 1em; - width: 30em; } - -div#c-comments div#a-index div.header span.info { - margin-right: 1.5em; } -div#c-comments div#a-index div.header strong, div#c-comments div#a-index div.header time { - margin-right: 0.3em; } -div#c-comments div#a-index div.header time { - font-weight: bold; } -div#c-comments div#a-index div.header div.list-of-tags a { - margin-right: 0.5em; } -div#c-comments div#a-index div.header div.notices { - margin: 1em 0; } -div#c-comments div#a-index div.preview { - float: left; - width: 180px; } -div#c-comments div#a-index div.post { - margin-bottom: 4em; } - div#c-comments div#a-index div.post div.comments-for-post { - float: left; - width: 55em; } - -/*** Favorites ***/ -div#c-favorites section#content > h1 { - display: none; } - -/*** Posts ***/ -article.post-preview { - margin-right: 4em; - margin-bottom: 4em; - float: left; } - -div#c-posts div.notice { - font-size: 80%; - padding: 1em; - margin-bottom: 1em; } - div#c-posts div.notice ul { - margin-left: 1em; } -div#c-posts aside#sidebar > section#pool-sidebar span.ui-icon { - color: #666; } -div#c-posts aside#sidebar > section > ul li { - list-style-type: none; } -div#c-posts aside#sidebar > section > ul ul li { - margin-left: 1em; } -div#c-posts section#tag-and-wiki-box { - padding: 0; } - div#c-posts section#tag-and-wiki-box menu li { - display: inline-block; } - div#c-posts section#tag-and-wiki-box menu li.active a { - color: #000; } - div#c-posts section#tag-and-wiki-box div#tag-box h2 { - display: none; } - div#c-posts section#tag-and-wiki-box div#tag-box li { - list-style-type: none; } - div#c-posts section#tag-and-wiki-box div#wiki-box h2 { - display: none; } -div#c-posts section#content > h1 { - display: none; } -div#c-posts section#content section > h2 { - display: none; } -div#c-posts section#content menu#post-sections { - margin-bottom: 1em; } - div#c-posts section#content menu#post-sections li { - font-size: 1.1em; - font-weight: bold; } - div#c-posts section#content menu#post-sections li.active a { - color: black; } -div#c-posts section#content section#edit fieldset label { - display: inline; } - -/*** Post Histories ***/ -div.post_histories div.index div.post { - margin-bottom: 2em; } - div.post_histories div.index div.post div.preview { - width: 20%; - float: left; } - div.post_histories div.index div.post div.history { - width: 70%; - float: left; } - div.post_histories div.index div.post div.history table { - width: 100%; } - div.post_histories div.index div.post div.history ins { - color: green; - text-decoration: none; } - div.post_histories div.index div.post div.history del { - color: red; - text-decoration: line-through; } - -/*** Post Unapprovals ***/ -div#unapprove-dialog p { - margin-bottom: 1em; } - -/*** Sessions ***/ -div#sessions div#new section { - width: 30em; - float: left; } -div#sessions div#new aside { - width: 20em; - float: left; } - div#sessions div#new aside li { - display: list-item; - margin-bottom: 0.5em; - list-style-type: square; - margin-left: 1em; } -div#sessions div#new h2 { - margin-bottom: 5px; } - -/*** Artists ***/ -div#c-artists span.new-artist { - font-weight: bold; - color: #A00; } -div#c-artists div#a-show { - max-width: 60em; } - div#c-artists div#a-show p.legend { - margin-bottom: 2em; - font-size: 0.8em; - font-style: italic; } -div#c-artists div#a-edit textarea, div#c-artists div#a-new textarea { - height: 5em; } - -/*** Users ***/ -div.users div.new { - max-width: 60em; } - div.users div.new p { - margin-bottom: 1em; } - div.users div.new li { - margin-left: 1em; } - div.users div.new div#account-comparison li { - font-size: 0.9em; - line-height: 1.5em; } - div.users div.new div#account-comparison section { - width: 18em; - float: left; - padding: 1em; } - div.users div.new footer.nav-links { - font-size: 1.4545em; - font-weight: bold; - text-align: center; - display: block; } - div.users div.new div#p2 ul { - margin-bottom: 2em; } - -/*** Uploads ***/ -div#c-uploads div#a-new div#upload-guide-notice { - margin-bottom: 2em; } -div#c-uploads div#a-new fieldset.ratings label { - display: inline; } - -/*** Forum ***/ -div.list-of-forum-posts article { - margin-bottom: 3em; } - div.list-of-forum-posts article div.author { - width: 20%; - float: left; } - div.list-of-forum-posts article div.content { - margin-left: 2em; - width: 30em; - float: left; } - div.list-of-forum-posts article div.content menu { - margin-top: 0.5em; } - -div#c-forum-topics div.single-forum-post { - width: 60em; } -div#c-forum-topics div#a-show h1#forum-topic-title { - font-size: 2.1818em; } -div#c-forum-topics span.info { - color: #AAA; } -div#c-forum-topics div#form-content { - float: left; - width: 450px; - padding-right: 1em; } -div#c-forum-topics div#form-aside { - float: left; - width: 400px; } - div#c-forum-topics div#form-aside div#preview > p { - margin-top: 0.5em; - padding-top: 0.5em; - border-top: 1px solid #AAA; } - -/*** Wiki Pages ***/ -div#c-wiki-pages span.version { - color: #AAA; } -div#c-wiki-pages div#form-content { - float: left; - width: 30em; - padding-right: 1em; } -div#c-wiki-pages div#form-aside { - float: left; - width: 20em; } - div#c-wiki-pages div#form-aside div#preview > p { - margin-top: 0.5em; - padding-top: 0.5em; - border-top: 1px solid #AAA; } - -/*** Post Moderation ***/ -div#c-post-moderation article { - margin-bottom: 4em; } -div#c-post-moderation aside { - float: left; - width: 520px; } -div#c-post-moderation section { - float: left; - width: 300px; } - -/*** Note Container ***/ -div#note-container { - position: absolute; } - div#note-container div.note-body { - background: #FFE; - border: 1px solid black; - max-width: 300px; - min-width: 140px; - min-height: 10px; - position: absolute; - padding: 5px; - cursor: pointer; - overflow: auto; } - div#note-container div.note-body p.tn { - font-size: 0.8em; - color: gray; } - div#note-container div.note-box { - position: absolute; - border: 1px solid black; - width: 150px; - height: 150px; - cursor: move; - background: #FFE; } - div#note-container div.note-box div.note-corner { - background: black; - width: 7px; - height: 7px; - position: absolute; - bottom: 0; - right: 0; - cursor: se-resize; } - div#note-container div.unsaved { - background: #FFF; - border: 1px solid red; } - div#note-container div.unsaved div.note-corner { - background: red; } - -div#jquery-test div.note { - background: #FFE; - border: 1px solid black; - max-width: 300px; - min-width: 140px; - min-height: 10px; - position: absolute; - padding: 5px; - cursor: pointer; - overflow: auto; }