Description:
boots into rails 3
Commit status:
[Not Reviewed]
References:
Diff options:
Comments:
0 Commit comments
0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
r318:d76662f82c72 - - 99 files changed: 949 inserted, 3847 deleted
@@ -0,0 +1,43 | |||
|
1 | + source 'https://rubygems.org' | |
|
2 | + | |
|
3 | + gem 'rails', '3.2.8' | |
|
4 | + | |
|
5 | + # Bundle edge Rails instead: | |
|
6 | + # gem 'rails', :git => 'git://github.com/rails/rails.git' | |
|
7 | + | |
|
8 | + gem 'mysql2' | |
|
9 | + | |
|
10 | + # Gems used only for assets and not required | |
|
11 | + # in production environments by default. | |
|
12 | + group :assets do | |
|
13 | + gem 'sass-rails', '~> 3.2.3' | |
|
14 | + gem 'coffee-rails', '~> 3.2.1' | |
|
15 | + | |
|
16 | + # See https://github.com/sstephenson/execjs#readme for more supported runtimes | |
|
17 | + # gem 'therubyracer', :platforms => :ruby | |
|
18 | + | |
|
19 | + gem 'uglifier', '>= 1.0.3' | |
|
20 | + end | |
|
21 | + | |
|
22 | + gem 'prototype-rails' | |
|
23 | + | |
|
24 | + # To use ActiveModel has_secure_password | |
|
25 | + # gem 'bcrypt-ruby', '~> 3.0.0' | |
|
26 | + | |
|
27 | + # To use Jbuilder templates for JSON | |
|
28 | + # gem 'jbuilder' | |
|
29 | + | |
|
30 | + # Use unicorn as the app server | |
|
31 | + # gem 'unicorn' | |
|
32 | + | |
|
33 | + # Deploy with Capistrano | |
|
34 | + # gem 'capistrano' | |
|
35 | + | |
|
36 | + # To use debugger | |
|
37 | + # gem 'debugger' | |
|
38 | + | |
|
39 | + gem "haml" | |
|
40 | + gem "tmail" | |
|
41 | + gem "rdiscount", :require => "rdiscount" | |
|
42 | + gem "test-unit" | |
|
43 | + gem 'will_paginate', '~> 3.0.0' |
@@ -0,0 +1,120 | |||
|
1 | + GEM | |
|
2 | + remote: https://rubygems.org/ | |
|
3 | + specs: | |
|
4 | + actionmailer (3.2.8) | |
|
5 | + actionpack (= 3.2.8) | |
|
6 | + mail (~> 2.4.4) | |
|
7 | + actionpack (3.2.8) | |
|
8 | + activemodel (= 3.2.8) | |
|
9 | + activesupport (= 3.2.8) | |
|
10 | + builder (~> 3.0.0) | |
|
11 | + erubis (~> 2.7.0) | |
|
12 | + journey (~> 1.0.4) | |
|
13 | + rack (~> 1.4.0) | |
|
14 | + rack-cache (~> 1.2) | |
|
15 | + rack-test (~> 0.6.1) | |
|
16 | + sprockets (~> 2.1.3) | |
|
17 | + activemodel (3.2.8) | |
|
18 | + activesupport (= 3.2.8) | |
|
19 | + builder (~> 3.0.0) | |
|
20 | + activerecord (3.2.8) | |
|
21 | + activemodel (= 3.2.8) | |
|
22 | + activesupport (= 3.2.8) | |
|
23 | + arel (~> 3.0.2) | |
|
24 | + tzinfo (~> 0.3.29) | |
|
25 | + activeresource (3.2.8) | |
|
26 | + activemodel (= 3.2.8) | |
|
27 | + activesupport (= 3.2.8) | |
|
28 | + activesupport (3.2.8) | |
|
29 | + i18n (~> 0.6) | |
|
30 | + multi_json (~> 1.0) | |
|
31 | + arel (3.0.2) | |
|
32 | + builder (3.0.3) | |
|
33 | + coffee-rails (3.2.2) | |
|
34 | + coffee-script (>= 2.2.0) | |
|
35 | + railties (~> 3.2.0) | |
|
36 | + coffee-script (2.2.0) | |
|
37 | + coffee-script-source | |
|
38 | + execjs | |
|
39 | + coffee-script-source (1.3.3) | |
|
40 | + erubis (2.7.0) | |
|
41 | + execjs (1.4.0) | |
|
42 | + multi_json (~> 1.0) | |
|
43 | + haml (3.1.7) | |
|
44 | + hike (1.2.1) | |
|
45 | + i18n (0.6.1) | |
|
46 | + journey (1.0.4) | |
|
47 | + json (1.7.5) | |
|
48 | + mail (2.4.4) | |
|
49 | + i18n (>= 0.4.0) | |
|
50 | + mime-types (~> 1.16) | |
|
51 | + treetop (~> 1.4.8) | |
|
52 | + mime-types (1.19) | |
|
53 | + multi_json (1.3.6) | |
|
54 | + mysql2 (0.3.11) | |
|
55 | + polyglot (0.3.3) | |
|
56 | + prototype-rails (3.2.1) | |
|
57 | + rails (~> 3.2) | |
|
58 | + rack (1.4.1) | |
|
59 | + rack-cache (1.2) | |
|
60 | + rack (>= 0.4) | |
|
61 | + rack-ssl (1.3.2) | |
|
62 | + rack | |
|
63 | + rack-test (0.6.2) | |
|
64 | + rack (>= 1.0) | |
|
65 | + rails (3.2.8) | |
|
66 | + actionmailer (= 3.2.8) | |
|
67 | + actionpack (= 3.2.8) | |
|
68 | + activerecord (= 3.2.8) | |
|
69 | + activeresource (= 3.2.8) | |
|
70 | + activesupport (= 3.2.8) | |
|
71 | + bundler (~> 1.0) | |
|
72 | + railties (= 3.2.8) | |
|
73 | + railties (3.2.8) | |
|
74 | + actionpack (= 3.2.8) | |
|
75 | + activesupport (= 3.2.8) | |
|
76 | + rack-ssl (~> 1.3.2) | |
|
77 | + rake (>= 0.8.7) | |
|
78 | + rdoc (~> 3.4) | |
|
79 | + thor (>= 0.14.6, < 2.0) | |
|
80 | + rake (0.9.2.2) | |
|
81 | + rdiscount (1.6.8) | |
|
82 | + rdoc (3.12) | |
|
83 | + json (~> 1.4) | |
|
84 | + sass (3.2.1) | |
|
85 | + sass-rails (3.2.5) | |
|
86 | + railties (~> 3.2.0) | |
|
87 | + sass (>= 3.1.10) | |
|
88 | + tilt (~> 1.3) | |
|
89 | + sprockets (2.1.3) | |
|
90 | + hike (~> 1.2) | |
|
91 | + rack (~> 1.0) | |
|
92 | + tilt (~> 1.1, != 1.3.0) | |
|
93 | + test-unit (2.5.2) | |
|
94 | + thor (0.16.0) | |
|
95 | + tilt (1.3.3) | |
|
96 | + tmail (1.2.7.1) | |
|
97 | + treetop (1.4.10) | |
|
98 | + polyglot | |
|
99 | + polyglot (>= 0.3.1) | |
|
100 | + tzinfo (0.3.33) | |
|
101 | + uglifier (1.3.0) | |
|
102 | + execjs (>= 0.3.0) | |
|
103 | + multi_json (~> 1.0, >= 1.0.2) | |
|
104 | + will_paginate (3.0.3) | |
|
105 | + | |
|
106 | + PLATFORMS | |
|
107 | + ruby | |
|
108 | + | |
|
109 | + DEPENDENCIES | |
|
110 | + coffee-rails (~> 3.2.1) | |
|
111 | + haml | |
|
112 | + mysql2 | |
|
113 | + prototype-rails | |
|
114 | + rails (= 3.2.8) | |
|
115 | + rdiscount | |
|
116 | + sass-rails (~> 3.2.3) | |
|
117 | + test-unit | |
|
118 | + tmail | |
|
119 | + uglifier (>= 1.0.3) | |
|
120 | + will_paginate (~> 3.0.0) |
@@ -0,0 +1,261 | |||
|
1 | + == Welcome to Rails | |
|
2 | + | |
|
3 | + Rails is a web-application framework that includes everything needed to create | |
|
4 | + database-backed web applications according to the Model-View-Control pattern. | |
|
5 | + | |
|
6 | + This pattern splits the view (also called the presentation) into "dumb" | |
|
7 | + templates that are primarily responsible for inserting pre-built data in between | |
|
8 | + HTML tags. The model contains the "smart" domain objects (such as Account, | |
|
9 | + Product, Person, Post) that holds all the business logic and knows how to | |
|
10 | + persist themselves to a database. The controller handles the incoming requests | |
|
11 | + (such as Save New Account, Update Product, Show Post) by manipulating the model | |
|
12 | + and directing data to the view. | |
|
13 | + | |
|
14 | + In Rails, the model is handled by what's called an object-relational mapping | |
|
15 | + layer entitled Active Record. This layer allows you to present the data from | |
|
16 | + database rows as objects and embellish these data objects with business logic | |
|
17 | + methods. You can read more about Active Record in | |
|
18 | + link:files/vendor/rails/activerecord/README.html. | |
|
19 | + | |
|
20 | + The controller and view are handled by the Action Pack, which handles both | |
|
21 | + layers by its two parts: Action View and Action Controller. These two layers | |
|
22 | + are bundled in a single package due to their heavy interdependence. This is | |
|
23 | + unlike the relationship between the Active Record and Action Pack that is much | |
|
24 | + more separate. Each of these packages can be used independently outside of | |
|
25 | + Rails. You can read more about Action Pack in | |
|
26 | + link:files/vendor/rails/actionpack/README.html. | |
|
27 | + | |
|
28 | + | |
|
29 | + == Getting Started | |
|
30 | + | |
|
31 | + 1. At the command prompt, create a new Rails application: | |
|
32 | + <tt>rails new myapp</tt> (where <tt>myapp</tt> is the application name) | |
|
33 | + | |
|
34 | + 2. Change directory to <tt>myapp</tt> and start the web server: | |
|
35 | + <tt>cd myapp; rails server</tt> (run with --help for options) | |
|
36 | + | |
|
37 | + 3. Go to http://localhost:3000/ and you'll see: | |
|
38 | + "Welcome aboard: You're riding Ruby on Rails!" | |
|
39 | + | |
|
40 | + 4. Follow the guidelines to start developing your application. You can find | |
|
41 | + the following resources handy: | |
|
42 | + | |
|
43 | + * The Getting Started Guide: http://guides.rubyonrails.org/getting_started.html | |
|
44 | + * Ruby on Rails Tutorial Book: http://www.railstutorial.org/ | |
|
45 | + | |
|
46 | + | |
|
47 | + == Debugging Rails | |
|
48 | + | |
|
49 | + Sometimes your application goes wrong. Fortunately there are a lot of tools that | |
|
50 | + will help you debug it and get it back on the rails. | |
|
51 | + | |
|
52 | + First area to check is the application log files. Have "tail -f" commands | |
|
53 | + running on the server.log and development.log. Rails will automatically display | |
|
54 | + debugging and runtime information to these files. Debugging info will also be | |
|
55 | + shown in the browser on requests from 127.0.0.1. | |
|
56 | + | |
|
57 | + You can also log your own messages directly into the log file from your code | |
|
58 | + using the Ruby logger class from inside your controllers. Example: | |
|
59 | + | |
|
60 | + class WeblogController < ActionController::Base | |
|
61 | + def destroy | |
|
62 | + @weblog = Weblog.find(params[:id]) | |
|
63 | + @weblog.destroy | |
|
64 | + logger.info("#{Time.now} Destroyed Weblog ID ##{@weblog.id}!") | |
|
65 | + end | |
|
66 | + end | |
|
67 | + | |
|
68 | + The result will be a message in your log file along the lines of: | |
|
69 | + | |
|
70 | + Mon Oct 08 14:22:29 +1000 2007 Destroyed Weblog ID #1! | |
|
71 | + | |
|
72 | + More information on how to use the logger is at http://www.ruby-doc.org/core/ | |
|
73 | + | |
|
74 | + Also, Ruby documentation can be found at http://www.ruby-lang.org/. There are | |
|
75 | + several books available online as well: | |
|
76 | + | |
|
77 | + * Programming Ruby: http://www.ruby-doc.org/docs/ProgrammingRuby/ (Pickaxe) | |
|
78 | + * Learn to Program: http://pine.fm/LearnToProgram/ (a beginners guide) | |
|
79 | + | |
|
80 | + These two books will bring you up to speed on the Ruby language and also on | |
|
81 | + programming in general. | |
|
82 | + | |
|
83 | + | |
|
84 | + == Debugger | |
|
85 | + | |
|
86 | + Debugger support is available through the debugger command when you start your | |
|
87 | + Mongrel or WEBrick server with --debugger. This means that you can break out of | |
|
88 | + execution at any point in the code, investigate and change the model, and then, | |
|
89 | + resume execution! You need to install ruby-debug to run the server in debugging | |
|
90 | + mode. With gems, use <tt>sudo gem install ruby-debug</tt>. Example: | |
|
91 | + | |
|
92 | + class WeblogController < ActionController::Base | |
|
93 | + def index | |
|
94 | + @posts = Post.all | |
|
95 | + debugger | |
|
96 | + end | |
|
97 | + end | |
|
98 | + | |
|
99 | + So the controller will accept the action, run the first line, then present you | |
|
100 | + with a IRB prompt in the server window. Here you can do things like: | |
|
101 | + | |
|
102 | + >> @posts.inspect | |
|
103 | + => "[#<Post:0x14a6be8 | |
|
104 | + @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}>, | |
|
105 | + #<Post:0x14a6620 | |
|
106 | + @attributes={"title"=>"Rails", "body"=>"Only ten..", "id"=>"2"}>]" | |
|
107 | + >> @posts.first.title = "hello from a debugger" | |
|
108 | + => "hello from a debugger" | |
|
109 | + | |
|
110 | + ...and even better, you can examine how your runtime objects actually work: | |
|
111 | + | |
|
112 | + >> f = @posts.first | |
|
113 | + => #<Post:0x13630c4 @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}> | |
|
114 | + >> f. | |
|
115 | + Display all 152 possibilities? (y or n) | |
|
116 | + | |
|
117 | + Finally, when you're ready to resume execution, you can enter "cont". | |
|
118 | + | |
|
119 | + | |
|
120 | + == Console | |
|
121 | + | |
|
122 | + The console is a Ruby shell, which allows you to interact with your | |
|
123 | + application's domain model. Here you'll have all parts of the application | |
|
124 | + configured, just like it is when the application is running. You can inspect | |
|
125 | + domain models, change values, and save to the database. Starting the script | |
|
126 | + without arguments will launch it in the development environment. | |
|
127 | + | |
|
128 | + To start the console, run <tt>rails console</tt> from the application | |
|
129 | + directory. | |
|
130 | + | |
|
131 | + Options: | |
|
132 | + | |
|
133 | + * Passing the <tt>-s, --sandbox</tt> argument will rollback any modifications | |
|
134 | + made to the database. | |
|
135 | + * Passing an environment name as an argument will load the corresponding | |
|
136 | + environment. Example: <tt>rails console production</tt>. | |
|
137 | + | |
|
138 | + To reload your controllers and models after launching the console run | |
|
139 | + <tt>reload!</tt> | |
|
140 | + | |
|
141 | + More information about irb can be found at: | |
|
142 | + link:http://www.rubycentral.org/pickaxe/irb.html | |
|
143 | + | |
|
144 | + | |
|
145 | + == dbconsole | |
|
146 | + | |
|
147 | + You can go to the command line of your database directly through <tt>rails | |
|
148 | + dbconsole</tt>. You would be connected to the database with the credentials | |
|
149 | + defined in database.yml. Starting the script without arguments will connect you | |
|
150 | + to the development database. Passing an argument will connect you to a different | |
|
151 | + database, like <tt>rails dbconsole production</tt>. Currently works for MySQL, | |
|
152 | + PostgreSQL and SQLite 3. | |
|
153 | + | |
|
154 | + == Description of Contents | |
|
155 | + | |
|
156 | + The default directory structure of a generated Ruby on Rails application: | |
|
157 | + | |
|
158 | + |-- app | |
|
159 | + | |-- assets | |
|
160 | + | |-- images | |
|
161 | + | |-- javascripts | |
|
162 | + | `-- stylesheets | |
|
163 | + | |-- controllers | |
|
164 | + | |-- helpers | |
|
165 | + | |-- mailers | |
|
166 | + | |-- models | |
|
167 | + | `-- views | |
|
168 | + | `-- layouts | |
|
169 | + |-- config | |
|
170 | + | |-- environments | |
|
171 | + | |-- initializers | |
|
172 | + | `-- locales | |
|
173 | + |-- db | |
|
174 | + |-- doc | |
|
175 | + |-- lib | |
|
176 | + | `-- tasks | |
|
177 | + |-- log | |
|
178 | + |-- public | |
|
179 | + |-- script | |
|
180 | + |-- test | |
|
181 | + | |-- fixtures | |
|
182 | + | |-- functional | |
|
183 | + | |-- integration | |
|
184 | + | |-- performance | |
|
185 | + | `-- unit | |
|
186 | + |-- tmp | |
|
187 | + | |-- cache | |
|
188 | + | |-- pids | |
|
189 | + | |-- sessions | |
|
190 | + | `-- sockets | |
|
191 | + `-- vendor | |
|
192 | + |-- assets | |
|
193 | + `-- stylesheets | |
|
194 | + `-- plugins | |
|
195 | + | |
|
196 | + app | |
|
197 | + Holds all the code that's specific to this particular application. | |
|
198 | + | |
|
199 | + app/assets | |
|
200 | + Contains subdirectories for images, stylesheets, and JavaScript files. | |
|
201 | + | |
|
202 | + app/controllers | |
|
203 | + Holds controllers that should be named like weblogs_controller.rb for | |
|
204 | + automated URL mapping. All controllers should descend from | |
|
205 | + ApplicationController which itself descends from ActionController::Base. | |
|
206 | + | |
|
207 | + app/models | |
|
208 | + Holds models that should be named like post.rb. Models descend from | |
|
209 | + ActiveRecord::Base by default. | |
|
210 | + | |
|
211 | + app/views | |
|
212 | + Holds the template files for the view that should be named like | |
|
213 | + weblogs/index.html.erb for the WeblogsController#index action. All views use | |
|
214 | + eRuby syntax by default. | |
|
215 | + | |
|
216 | + app/views/layouts | |
|
217 | + Holds the template files for layouts to be used with views. This models the | |
|
218 | + common header/footer method of wrapping views. In your views, define a layout | |
|
219 | + using the <tt>layout :default</tt> and create a file named default.html.erb. | |
|
220 | + Inside default.html.erb, call <% yield %> to render the view using this | |
|
221 | + layout. | |
|
222 | + | |
|
223 | + app/helpers | |
|
224 | + Holds view helpers that should be named like weblogs_helper.rb. These are | |
|
225 | + generated for you automatically when using generators for controllers. | |
|
226 | + Helpers can be used to wrap functionality for your views into methods. | |
|
227 | + | |
|
228 | + config | |
|
229 | + Configuration files for the Rails environment, the routing map, the database, | |
|
230 | + and other dependencies. | |
|
231 | + | |
|
232 | + db | |
|
233 | + Contains the database schema in schema.rb. db/migrate contains all the | |
|
234 | + sequence of Migrations for your schema. | |
|
235 | + | |
|
236 | + doc | |
|
237 | + This directory is where your application documentation will be stored when | |
|
238 | + generated using <tt>rake doc:app</tt> | |
|
239 | + | |
|
240 | + lib | |
|
241 | + Application specific libraries. Basically, any kind of custom code that | |
|
242 | + doesn't belong under controllers, models, or helpers. This directory is in | |
|
243 | + the load path. | |
|
244 | + | |
|
245 | + public | |
|
246 | + The directory available for the web server. Also contains the dispatchers and the | |
|
247 | + default HTML files. This should be set as the DOCUMENT_ROOT of your web | |
|
248 | + server. | |
|
249 | + | |
|
250 | + script | |
|
251 | + Helper scripts for automation and generation. | |
|
252 | + | |
|
253 | + test | |
|
254 | + Unit and functional tests along with fixtures. When using the rails generate | |
|
255 | + command, template test files will be generated for you and placed in this | |
|
256 | + directory. | |
|
257 | + | |
|
258 | + vendor | |
|
259 | + External libraries that the application depends on. Also includes the plugins | |
|
260 | + subdirectory. If the app has frozen rails, those gems also go here, under | |
|
261 | + vendor/rails/. This directory is in the load path. |
new file 100644 | |||
binary diff hidden |
@@ -0,0 +1,15 | |||
|
1 | + // This is a manifest file that'll be compiled into application.js, which will include all the files | |
|
2 | + // listed below. | |
|
3 | + // | |
|
4 | + // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, | |
|
5 | + // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path. | |
|
6 | + // | |
|
7 | + // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the | |
|
8 | + // the compiled file. | |
|
9 | + // | |
|
10 | + // WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD | |
|
11 | + // GO AFTER THE REQUIRES BELOW. | |
|
12 | + // | |
|
13 | + //= require prototype | |
|
14 | + //= require prototype_ujs | |
|
15 | + //= require_tree . |
@@ -0,0 +1,13 | |||
|
1 | + /* | |
|
2 | + * This is a manifest file that'll be compiled into application.css, which will include all the files | |
|
3 | + * listed below. | |
|
4 | + * | |
|
5 | + * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, | |
|
6 | + * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path. | |
|
7 | + * | |
|
8 | + * You're free to add application-wide styles to this file and they'll appear at the top of the | |
|
9 | + * compiled file, but it's generally better to create a new file per style scope. | |
|
10 | + * | |
|
11 | + *= require_self | |
|
12 | + *= require_tree . | |
|
13 | + */ |
new file 100644 |
new file 100644 |
@@ -0,0 +1,4 | |||
|
1 | + # This file is used by Rack-based servers to start the application. | |
|
2 | + | |
|
3 | + require ::File.expand_path('../config/environment', __FILE__) | |
|
4 | + run CafeGrader::Application |
@@ -0,0 +1,62 | |||
|
1 | + require File.expand_path('../boot', __FILE__) | |
|
2 | + | |
|
3 | + require 'rails/all' | |
|
4 | + | |
|
5 | + if defined?(Bundler) | |
|
6 | + # If you precompile assets before deploying to production, use this line | |
|
7 | + Bundler.require(*Rails.groups(:assets => %w(development test))) | |
|
8 | + # If you want your assets lazily compiled in production, use this line | |
|
9 | + # Bundler.require(:default, :assets, Rails.env) | |
|
10 | + end | |
|
11 | + | |
|
12 | + module CafeGrader | |
|
13 | + class Application < Rails::Application | |
|
14 | + # Settings in config/environments/* take precedence over those specified here. | |
|
15 | + # Application configuration should go into files in config/initializers | |
|
16 | + # -- all .rb files in that directory are automatically loaded. | |
|
17 | + | |
|
18 | + # Custom directories with classes and modules you want to be autoloadable. | |
|
19 | + # config.autoload_paths += %W(#{config.root}/extras) | |
|
20 | + | |
|
21 | + # Only load the plugins named here, in the order given (default is alphabetical). | |
|
22 | + # :all can be used as a placeholder for all plugins not explicitly named. | |
|
23 | + # config.plugins = [ :exception_notification, :ssl_requirement, :all ] | |
|
24 | + | |
|
25 | + # Activate observers that should always be running. | |
|
26 | + # config.active_record.observers = :cacher, :garbage_collector, :forum_observer | |
|
27 | + | |
|
28 | + # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. | |
|
29 | + # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. | |
|
30 | + config.time_zone = 'UTC' | |
|
31 | + | |
|
32 | + # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. | |
|
33 | + # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] | |
|
34 | + config.i18n.default_locale = :en | |
|
35 | + | |
|
36 | + # Configure the default encoding used in templates for Ruby 1.9. | |
|
37 | + config.encoding = "utf-8" | |
|
38 | + | |
|
39 | + # Configure sensitive parameters which will be filtered from the log file. | |
|
40 | + config.filter_parameters += [:password] | |
|
41 | + | |
|
42 | + # Enable escaping HTML in JSON. | |
|
43 | + config.active_support.escape_html_entities_in_json = true | |
|
44 | + | |
|
45 | + # Use SQL instead of Active Record's schema dumper when creating the database. | |
|
46 | + # This is necessary if your schema can't be completely dumped by the schema dumper, | |
|
47 | + # like if you have constraints or database-specific column types | |
|
48 | + # config.active_record.schema_format = :sql | |
|
49 | + | |
|
50 | + # Enforce whitelist mode for mass assignment. | |
|
51 | + # This will create an empty whitelist of attributes available for mass-assignment for all models | |
|
52 | + # in your app. As such, your models will need to explicitly whitelist or blacklist accessible | |
|
53 | + # parameters by using an attr_accessible or attr_protected declaration. | |
|
54 | + config.active_record.whitelist_attributes = true | |
|
55 | + | |
|
56 | + # Enable the asset pipeline | |
|
57 | + config.assets.enabled = true | |
|
58 | + | |
|
59 | + # Version of your assets, change this if you want to expire all your assets | |
|
60 | + config.assets.version = '1.0' | |
|
61 | + end | |
|
62 | + end |
@@ -0,0 +1,7 | |||
|
1 | + # Be sure to restart your server when you modify this file. | |
|
2 | + | |
|
3 | + # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. | |
|
4 | + # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } | |
|
5 | + | |
|
6 | + # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. | |
|
7 | + # Rails.backtrace_cleaner.remove_silencers! |
@@ -0,0 +1,30 | |||
|
1 | + # If you want to manage graders through web interface, set the path to | |
|
2 | + # the grader directory below. This dir is where raw, ev, ev-exam, | |
|
3 | + # scripts reside. All grader scripts will be in | |
|
4 | + # #{GRADER_ROOT_DIR}/scripts. | |
|
5 | + GRADER_ROOT_DIR = '' | |
|
6 | + | |
|
7 | + # These are where inputs and outputs of test requests are stored | |
|
8 | + TEST_REQUEST_INPUT_FILE_DIR = Rails.root + '/data/test_request/input' | |
|
9 | + TEST_REQUEST_OUTPUT_FILE_DIR = Rails.root + '/data/test_request/output' | |
|
10 | + | |
|
11 | + # To use ANALYSIS MODE, provide the testcases/testruns breakdown, | |
|
12 | + # and the directory of the grading result (usually in judge's dir). | |
|
13 | + TASK_GRADING_INFO_FILENAME = Rails.root + '/config/tasks.yml' | |
|
14 | + | |
|
15 | + # TODO: change this to where results are kept. | |
|
16 | + GRADING_RESULT_DIR = 'RESULT-DIR' | |
|
17 | + | |
|
18 | + # Change this to allow importing testdata into database as test-pairs. | |
|
19 | + # This is mainly for Code Jom contest. | |
|
20 | + ALLOW_TEST_PAIR_IMPORT = false | |
|
21 | + | |
|
22 | + # Uncomment so that the system validates user e-mails | |
|
23 | + # VALIDATE_USER_EMAILS = true | |
|
24 | + | |
|
25 | + # Uncomment so that Apache X-Sendfile is used when delivering files | |
|
26 | + # (e.g., in /tasks/view). | |
|
27 | + # USE_APACHE_XSENDFILE = true | |
|
28 | + | |
|
29 | + # Uncomment so that configuration is read only once when the server is loaded | |
|
30 | + # CONFIGURATION_CACHE_ENABLED = true |
@@ -0,0 +1,15 | |||
|
1 | + # Be sure to restart your server when you modify this file. | |
|
2 | + | |
|
3 | + # Add new inflection rules using the following format | |
|
4 | + # (all these examples are active by default): | |
|
5 | + # ActiveSupport::Inflector.inflections do |inflect| | |
|
6 | + # inflect.plural /^(ox)$/i, '\1en' | |
|
7 | + # inflect.singular /^(ox)en/i, '\1' | |
|
8 | + # inflect.irregular 'person', 'people' | |
|
9 | + # inflect.uncountable %w( fish sheep ) | |
|
10 | + # end | |
|
11 | + # | |
|
12 | + # These inflection rules are supported but not enabled by default: | |
|
13 | + # ActiveSupport::Inflector.inflections do |inflect| | |
|
14 | + # inflect.acronym 'RESTful' | |
|
15 | + # end |
@@ -0,0 +1,5 | |||
|
1 | + # Be sure to restart your server when you modify this file. | |
|
2 | + | |
|
3 | + # Add new mime types for use in respond_to blocks: | |
|
4 | + # Mime::Type.register "text/richtext", :rtf | |
|
5 | + # Mime::Type.register_alias "text/html", :iphone |
@@ -0,0 +1,7 | |||
|
1 | + # Be sure to restart your server when you modify this file. | |
|
2 | + | |
|
3 | + # Your secret key for verifying the integrity of signed cookies. | |
|
4 | + # If you change this key, all old signed cookies will become invalid! | |
|
5 | + # Make sure the secret is at least 30 characters and all random, | |
|
6 | + # no regular words or you'll be exposed to dictionary attacks. | |
|
7 | + CafeGrader::Application.config.secret_token = '7f85485d3d652fc6336dfe3cd98917d9bd7a323b32096bf7635d26b98ccd0480816cc2d12b5c10805cecf7d8fb322104e2bda71eb60dd871c5c537e56a063038' |
@@ -0,0 +1,8 | |||
|
1 | + # Be sure to restart your server when you modify this file. | |
|
2 | + #CafeGrader::Application.config.session_store :cookie_store, key: '_cafe_grader_web_session' | |
|
3 | + | |
|
4 | + # Use the database for sessions instead of the cookie-based default, | |
|
5 | + # which shouldn't be used to store highly confidential information | |
|
6 | + # (create the session table with "rails generate session_migration") | |
|
7 | + | |
|
8 | + CafeGrader::Application.config.session_store :active_record_store |
@@ -0,0 +1,14 | |||
|
1 | + # Be sure to restart your server when you modify this file. | |
|
2 | + # | |
|
3 | + # This file contains settings for ActionController::ParamsWrapper which | |
|
4 | + # is enabled by default. | |
|
5 | + | |
|
6 | + # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. | |
|
7 | + ActiveSupport.on_load(:action_controller) do | |
|
8 | + wrap_parameters format: [:json] | |
|
9 | + end | |
|
10 | + | |
|
11 | + # Disable root element in JSON by default. | |
|
12 | + ActiveSupport.on_load(:active_record) do | |
|
13 | + self.include_root_in_json = false | |
|
14 | + end |
new file 100644 |
new file 100644 |
@@ -0,0 +1,26 | |||
|
1 | + <!DOCTYPE html> | |
|
2 | + <html> | |
|
3 | + <head> | |
|
4 | + <title>The change you wanted was rejected (422)</title> | |
|
5 | + <style type="text/css"> | |
|
6 | + body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; } | |
|
7 | + div.dialog { | |
|
8 | + width: 25em; | |
|
9 | + padding: 0 4em; | |
|
10 | + margin: 4em auto 0 auto; | |
|
11 | + border: 1px solid #ccc; | |
|
12 | + border-right-color: #999; | |
|
13 | + border-bottom-color: #999; | |
|
14 | + } | |
|
15 | + h1 { font-size: 100%; color: #f00; line-height: 1.5em; } | |
|
16 | + </style> | |
|
17 | + </head> | |
|
18 | + | |
|
19 | + <body> | |
|
20 | + <!-- This file lives in public/422.html --> | |
|
21 | + <div class="dialog"> | |
|
22 | + <h1>The change you wanted was rejected.</h1> | |
|
23 | + <p>Maybe you tried to change something you didn't have access to.</p> | |
|
24 | + </div> | |
|
25 | + </body> | |
|
26 | + </html> |
@@ -0,0 +1,6 | |||
|
1 | + #!/usr/bin/env ruby | |
|
2 | + # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application. | |
|
3 | + | |
|
4 | + APP_PATH = File.expand_path('../../config/application', __FILE__) | |
|
5 | + require File.expand_path('../../config/boot', __FILE__) | |
|
6 | + require 'rails/commands' |
new file 100644 |
new file 100644 |
new file 100644 |
@@ -0,0 +1,12 | |||
|
1 | + require 'test_helper' | |
|
2 | + require 'rails/performance_test_help' | |
|
3 | + | |
|
4 | + class BrowsingTest < ActionDispatch::PerformanceTest | |
|
5 | + # Refer to the documentation for all available options | |
|
6 | + # self.profile_options = { :runs => 5, :metrics => [:wall_time, :memory] | |
|
7 | + # :output => 'tmp/performance', :formats => [:flat] } | |
|
8 | + | |
|
9 | + def test_homepage | |
|
10 | + get '/' | |
|
11 | + end | |
|
12 | + end |
new file 100644 |
new file 100644 |
new file 100644 |
new file 100644 |
@@ -1,4 +1,19 | |||
|
1 | + # See http://help.github.com/ignore-files/ for more about ignoring files. | |
|
2 | + # | |
|
3 | + # If you find yourself ignoring temporary files generated by your text editor | |
|
4 | + # or operating system, you probably want to add a global ignore instead: | |
|
5 | + # git config --global core.excludesfile ~/.gitignore_global | |
|
6 | + | |
|
7 | + # Ignore bundler config | |
|
8 | + /.bundle | |
|
9 | + | |
|
10 | + # Ignore the default SQLite database. | |
|
11 | + /db/*.sqlite3 | |
|
12 | + | |
|
13 | + # Ignore all logfiles and tempfiles. | |
|
14 | + /log/*.log | |
|
15 | + /tmp | |
|
16 | + | |
|
1 | 17 | *~ |
|
2 | - log | |
|
3 | - tmp | |
|
4 | 18 | |
|
19 | + /vendor/plugins/rails_upgrade |
@@ -1,11 +1,7 | |||
|
1 | + #!/usr/bin/env rake | |
|
1 | 2 | # Add your own tasks in files placed in lib/tasks ending in .rake, |
|
2 | 3 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. |
|
3 | 4 | |
|
4 | - require(File.join(File.dirname(__FILE__), 'config', 'boot')) | |
|
5 | + require File.expand_path('../config/application', __FILE__) | |
|
5 | 6 | |
|
6 | - require 'rake' | |
|
7 | - require 'rake/testtask' | |
|
8 | - require 'rake/rdoctask' | |
|
9 | - | |
|
10 | - require 'tasks/rails' | |
|
11 | - | |
|
7 | + CafeGrader::Application.load_tasks |
@@ -1,7 +1,5 | |||
|
1 | - # Filters added to this controller apply to all controllers in the application. | |
|
2 | - # Likewise, all the methods added will be available for all controllers. | |
|
3 | - | |
|
4 | 1 |
|
|
2 | + protect_from_forgery | |
|
5 | 3 | |
|
6 | 4 | SINGLE_USER_MODE_CONF_KEY = 'system.single_user_mode' |
|
7 | 5 | |
@@ -83,4 +81,3 | |||
|
83 | 81 | end |
|
84 | 82 | |
|
85 | 83 | end |
|
86 | - |
@@ -51,7 +51,7 | |||
|
51 | 51 | end |
|
52 | 52 | |
|
53 | 53 | def self.download_file_basedir |
|
54 |
- return "#{R |
|
|
54 | + return "#{Rails.root}/data/tasks" | |
|
55 | 55 | end |
|
56 | 56 | |
|
57 | 57 | protected |
@@ -1,22 +1,14 | |||
|
1 | - <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
|
2 | - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
|
3 | - | |
|
4 | - <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
|
1 | + <!DOCTYPE html> | |
|
2 | + <html> | |
|
5 | 3 | <head> |
|
6 | - <meta http-equiv="content-type" content="text/html;charset=UTF-8" /> | |
|
7 | - <title><%= Configuration['contest.name'] %></title> | |
|
8 |
- <%= |
|
|
9 | - <%= yield :head %> | |
|
4 | + <title>CafeGraderWeb</title> | |
|
5 | + <%= stylesheet_link_tag "application", :media => "all" %> | |
|
6 | + <%= javascript_include_tag "application" %> | |
|
7 | + <%= csrf_meta_tags %> | |
|
10 | 8 | </head> |
|
11 | 9 | <body> |
|
12 | 10 | |
|
13 | - <div class="userbar"> | |
|
14 | - <%= user_header %> | |
|
15 | - </div> | |
|
16 | - | |
|
17 | - <%= content_tag(:p,flash[:notice],:style => "color:green") if flash[:notice]!=nil %> | |
|
18 | - | |
|
19 | - <%= yield %> | |
|
11 | + <%= yield %> | |
|
20 | 12 | |
|
21 | 13 | </body> |
|
22 | 14 | </html> |
@@ -1,110 +1,6 | |||
|
1 | - # Don't change this file! | |
|
2 | - # Configure your app in config/environment.rb and config/environments/*.rb | |
|
3 | - | |
|
4 | - RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT) | |
|
5 | - | |
|
6 | - module Rails | |
|
7 | - class << self | |
|
8 | - def boot! | |
|
9 | - unless booted? | |
|
10 | - preinitialize | |
|
11 | - pick_boot.run | |
|
12 | - end | |
|
13 | - end | |
|
14 | - | |
|
15 | - def booted? | |
|
16 | - defined? Rails::Initializer | |
|
17 | - end | |
|
18 | - | |
|
19 | - def pick_boot | |
|
20 | - (vendor_rails? ? VendorBoot : GemBoot).new | |
|
21 | - end | |
|
22 | - | |
|
23 | - def vendor_rails? | |
|
24 | - File.exist?("#{RAILS_ROOT}/vendor/rails") | |
|
25 | - end | |
|
26 | - | |
|
27 | - def preinitialize | |
|
28 | - load(preinitializer_path) if File.exist?(preinitializer_path) | |
|
29 | - end | |
|
30 | - | |
|
31 | - def preinitializer_path | |
|
32 | - "#{RAILS_ROOT}/config/preinitializer.rb" | |
|
33 | - end | |
|
34 | - end | |
|
35 | - | |
|
36 | - class Boot | |
|
37 | - def run | |
|
38 | - load_initializer | |
|
39 | - Rails::Initializer.run(:set_load_path) | |
|
40 | - end | |
|
41 | - end | |
|
42 | - | |
|
43 | - class VendorBoot < Boot | |
|
44 | - def load_initializer | |
|
45 | - require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer" | |
|
46 | - Rails::Initializer.run(:install_gem_spec_stubs) | |
|
47 | - Rails::GemDependency.add_frozen_gem_path | |
|
48 | - end | |
|
49 | - end | |
|
1 | + require 'rubygems' | |
|
50 | 2 | |
|
51 | - class GemBoot < Boot | |
|
52 | - def load_initializer | |
|
53 | - self.class.load_rubygems | |
|
54 | - load_rails_gem | |
|
55 | - require 'initializer' | |
|
56 | - end | |
|
57 | - | |
|
58 | - def load_rails_gem | |
|
59 | - if version = self.class.gem_version | |
|
60 | - gem 'rails', version | |
|
61 | - else | |
|
62 | - gem 'rails' | |
|
63 | - end | |
|
64 | - rescue Gem::LoadError => load_error | |
|
65 | - $stderr.puts %(Missing the Rails #{version} gem. Please `gem install -v=#{version} rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.) | |
|
66 | - exit 1 | |
|
67 | - end | |
|
68 | - | |
|
69 | - class << self | |
|
70 | - def rubygems_version | |
|
71 | - Gem::RubyGemsVersion rescue nil | |
|
72 | - end | |
|
3 | + # Set up gems listed in the Gemfile. | |
|
4 | + ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) | |
|
73 | 5 | |
|
74 | - def gem_version | |
|
75 | - if defined? RAILS_GEM_VERSION | |
|
76 | - RAILS_GEM_VERSION | |
|
77 | - elsif ENV.include?('RAILS_GEM_VERSION') | |
|
78 | - ENV['RAILS_GEM_VERSION'] | |
|
79 | - else | |
|
80 | - parse_gem_version(read_environment_rb) | |
|
81 | - end | |
|
82 | - end | |
|
83 | - | |
|
84 | - def load_rubygems | |
|
85 | - min_version = '1.3.2' | |
|
86 | - require 'rubygems' | |
|
87 | - unless rubygems_version >= min_version | |
|
88 | - $stderr.puts %Q(Rails requires RubyGems >= #{min_version} (you have #{rubygems_version}). Please `gem update --system` and try again.) | |
|
89 | - exit 1 | |
|
90 | - end | |
|
91 | - | |
|
92 | - rescue LoadError | |
|
93 | - $stderr.puts %Q(Rails requires RubyGems >= #{min_version}. Please install RubyGems and try again: http://rubygems.rubyforge.org) | |
|
94 | - exit 1 | |
|
95 | - end | |
|
96 | - | |
|
97 | - def parse_gem_version(text) | |
|
98 | - $1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/ | |
|
99 | - end | |
|
100 | - | |
|
101 | - private | |
|
102 | - def read_environment_rb | |
|
103 | - File.read("#{RAILS_ROOT}/config/environment.rb") | |
|
104 | - end | |
|
105 | - end | |
|
106 | - end | |
|
107 | - end | |
|
108 | - | |
|
109 | - # All that for this: | |
|
110 | - Rails.boot! | |
|
6 | + require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE']) |
@@ -1,36 +1,42 | |||
|
1 |
- # MySQL |
|
|
1 | + # MySQL. Versions 4.1 and 5.0 are recommended. | |
|
2 | + # | |
|
3 | + # Install the MYSQL driver | |
|
4 | + # gem install mysql2 | |
|
2 | 5 | # |
|
3 | - # Install the MySQL driver: | |
|
4 |
- # gem |
|
|
5 | - # On MacOS X: | |
|
6 | - # gem install mysql -- --include=/usr/local/lib | |
|
7 | - # On Windows: | |
|
8 | - # gem install mysql | |
|
9 | - # Choose the win32 build. | |
|
10 | - # Install MySQL and put its /bin directory on your path. | |
|
6 | + # Ensure the MySQL gem is defined in your Gemfile | |
|
7 | + # gem 'mysql2' | |
|
11 | 8 | # |
|
12 | 9 | # And be sure to use new-style password hashing: |
|
13 | 10 | # http://dev.mysql.com/doc/refman/5.0/en/old-client.html |
|
14 | 11 | development: |
|
15 | - adapter: mysql | |
|
12 | + adapter: mysql2 | |
|
13 | + encoding: utf8 | |
|
14 | + reconnect: false | |
|
16 | 15 | database: ioi |
|
16 | + pool: 5 | |
|
17 | 17 | username: ioi |
|
18 | 18 | password: ioi |
|
19 | - host: localhost | |
|
19 | + socket: /var/run/mysqld/mysqld.sock | |
|
20 | 20 | |
|
21 |
- # Warning: The database defined as |
|
|
22 |
- # re-generated from your development database when you run |
|
|
21 | + # Warning: The database defined as "test" will be erased and | |
|
22 | + # re-generated from your development database when you run "rake". | |
|
23 | 23 | # Do not set this db to the same as development or production. |
|
24 | 24 | test: |
|
25 | - adapter: mysql | |
|
26 | - database: grader_test | |
|
27 | - username: root | |
|
28 | - password: | |
|
29 | - host: localhost | |
|
25 | + adapter: mysql2 | |
|
26 | + encoding: utf8 | |
|
27 | + reconnect: false | |
|
28 | + database: ioi_test | |
|
29 | + pool: 5 | |
|
30 | + username: ioi | |
|
31 | + password: ioi | |
|
32 | + socket: /var/run/mysqld/mysqld.sock | |
|
30 | 33 | |
|
31 | 34 | production: |
|
32 | - adapter: mysql | |
|
35 | + adapter: mysql2 | |
|
36 | + encoding: utf8 | |
|
37 | + reconnect: false | |
|
33 | 38 | database: ioi |
|
39 | + pool: 5 | |
|
34 | 40 | username: ioi |
|
35 | 41 | password: ioi |
|
36 | - host: localhost | |
|
42 | + socket: /var/run/mysqld/mysqld.sock |
@@ -1,20 +1,37 | |||
|
1 | - # Settings specified here will take precedence over those in config/environment.rb | |
|
1 | + CafeGrader::Application.configure do | |
|
2 | + # Settings specified here will take precedence over those in config/application.rb | |
|
3 | + | |
|
4 | + # In the development environment your application's code is reloaded on | |
|
5 | + # every request. This slows down response time but is perfect for development | |
|
6 | + # since you don't have to restart the web server when you make code changes. | |
|
7 | + config.cache_classes = false | |
|
2 | 8 | |
|
3 | - # In the development environment your application's code is reloaded on | |
|
4 | - # every request. This slows down response time but is perfect for development | |
|
5 | - # since you don't have to restart the webserver when you make code changes. | |
|
6 | - config.cache_classes = false | |
|
9 | + # Log error messages when you accidentally call methods on nil. | |
|
10 | + config.whiny_nils = true | |
|
7 | 11 | |
|
8 | - # Log error messages when you accidentally call methods on nil. | |
|
9 | - config.whiny_nils = true | |
|
12 | + # Show full error reports and disable caching | |
|
13 | + config.consider_all_requests_local = true | |
|
14 | + config.action_controller.perform_caching = false | |
|
15 | + | |
|
16 | + # Don't care if the mailer can't send | |
|
17 | + config.action_mailer.raise_delivery_errors = false | |
|
10 | 18 | |
|
11 | - # Enable the breakpoint server that script/breakpointer connects to | |
|
12 | - #config.breakpoint_server = true | |
|
19 | + # Print deprecation notices to the Rails logger | |
|
20 | + config.active_support.deprecation = :log | |
|
21 | + | |
|
22 | + # Only use best-standards-support built into browsers | |
|
23 | + config.action_dispatch.best_standards_support = :builtin | |
|
24 | + | |
|
25 | + # Raise exception on mass assignment protection for Active Record models | |
|
26 | + config.active_record.mass_assignment_sanitizer = :strict | |
|
13 | 27 | |
|
14 | - # Show full error reports and disable caching | |
|
15 | - config.action_controller.consider_all_requests_local = true | |
|
16 | - config.action_controller.perform_caching = false | |
|
17 | - config.action_view.debug_rjs = true | |
|
28 | + # Log the query plan for queries taking more than this (works | |
|
29 | + # with SQLite, MySQL, and PostgreSQL) | |
|
30 | + config.active_record.auto_explain_threshold_in_seconds = 0.5 | |
|
18 | 31 | |
|
19 | - # Don't care if the mailer can't send | |
|
20 | - config.action_mailer.raise_delivery_errors = false | |
|
32 | + # Do not compress assets | |
|
33 | + config.assets.compress = false | |
|
34 | + | |
|
35 | + # Expands the lines which load the assets | |
|
36 | + config.assets.debug = true | |
|
37 | + end |
@@ -1,18 +1,67 | |||
|
1 | - # Settings specified here will take precedence over those in config/environment.rb | |
|
1 | + CafeGrader::Application.configure do | |
|
2 | + # Settings specified here will take precedence over those in config/application.rb | |
|
3 | + | |
|
4 | + # Code is not reloaded between requests | |
|
5 | + config.cache_classes = true | |
|
6 | + | |
|
7 | + # Full error reports are disabled and caching is turned on | |
|
8 | + config.consider_all_requests_local = false | |
|
9 | + config.action_controller.perform_caching = true | |
|
10 | + | |
|
11 | + # Disable Rails's static asset server (Apache or nginx will already do this) | |
|
12 | + config.serve_static_assets = false | |
|
13 | + | |
|
14 | + # Compress JavaScripts and CSS | |
|
15 | + config.assets.compress = true | |
|
2 | 16 | |
|
3 | - # The production environment is meant for finished, "live" apps. | |
|
4 | - # Code is not reloaded between requests | |
|
5 | - config.cache_classes = true | |
|
17 | + # Don't fallback to assets pipeline if a precompiled asset is missed | |
|
18 | + config.assets.compile = false | |
|
19 | + | |
|
20 | + # Generate digests for assets URLs | |
|
21 | + config.assets.digest = true | |
|
6 | 22 | |
|
7 | - # Use a different logger for distributed setups | |
|
8 | - # config.logger = SyslogLogger.new | |
|
23 | + # Defaults to nil and saved in location specified by config.assets.prefix | |
|
24 | + # config.assets.manifest = YOUR_PATH | |
|
25 | + | |
|
26 | + # Specifies the header that your server uses for sending files | |
|
27 | + # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache | |
|
28 | + # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx | |
|
29 | + | |
|
30 | + # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. | |
|
31 | + # config.force_ssl = true | |
|
9 | 32 | |
|
10 | - # Full error reports are disabled and caching is turned on | |
|
11 | - config.action_controller.consider_all_requests_local = false | |
|
12 | - config.action_controller.perform_caching = true | |
|
33 | + # See everything in the log (default is :info) | |
|
34 | + # config.log_level = :debug | |
|
35 | + | |
|
36 | + # Prepend all log lines with the following tags | |
|
37 | + # config.log_tags = [ :subdomain, :uuid ] | |
|
38 | + | |
|
39 | + # Use a different logger for distributed setups | |
|
40 | + # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new) | |
|
41 | + | |
|
42 | + # Use a different cache store in production | |
|
43 | + # config.cache_store = :mem_cache_store | |
|
44 | + | |
|
45 | + # Enable serving of images, stylesheets, and JavaScripts from an asset server | |
|
46 | + # config.action_controller.asset_host = "http://assets.example.com" | |
|
47 | + | |
|
48 | + # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added) | |
|
49 | + # config.assets.precompile += %w( search.js ) | |
|
13 | 50 | |
|
14 | - # Enable serving of images, stylesheets, and javascripts from an asset server | |
|
15 | - # config.action_controller.asset_host = "http://assets.example.com" | |
|
51 | + # Disable delivery errors, bad email addresses will be ignored | |
|
52 | + # config.action_mailer.raise_delivery_errors = false | |
|
53 | + | |
|
54 | + # Enable threaded mode | |
|
55 | + # config.threadsafe! | |
|
16 | 56 | |
|
17 | - # Disable delivery errors, bad email addresses will be ignored | |
|
18 | - # config.action_mailer.raise_delivery_errors = false | |
|
57 | + # Enable locale fallbacks for I18n (makes lookups for any locale fall back to | |
|
58 | + # the I18n.default_locale when a translation can not be found) | |
|
59 | + config.i18n.fallbacks = true | |
|
60 | + | |
|
61 | + # Send deprecation notices to registered listeners | |
|
62 | + config.active_support.deprecation = :notify | |
|
63 | + | |
|
64 | + # Log the query plan for queries taking more than this (works | |
|
65 | + # with SQLite, MySQL, and PostgreSQL) | |
|
66 | + # config.active_record.auto_explain_threshold_in_seconds = 0.5 | |
|
67 | + end |
@@ -1,19 +1,37 | |||
|
1 | - # Settings specified here will take precedence over those in config/environment.rb | |
|
1 | + CafeGrader::Application.configure do | |
|
2 | + # Settings specified here will take precedence over those in config/application.rb | |
|
2 | 3 | |
|
3 | - # The test environment is used exclusively to run your application's | |
|
4 |
- |
|
|
5 | - # your test database is "scratch space" for the test suite and is wiped | |
|
6 |
- |
|
|
7 | - config.cache_classes = true | |
|
4 | + # The test environment is used exclusively to run your application's | |
|
5 | + # test suite. You never need to work with it otherwise. Remember that | |
|
6 | + # your test database is "scratch space" for the test suite and is wiped | |
|
7 | + # and recreated between test runs. Don't rely on the data there! | |
|
8 | + config.cache_classes = true | |
|
9 | + | |
|
10 | + # Configure static asset server for tests with Cache-Control for performance | |
|
11 | + config.serve_static_assets = true | |
|
12 | + config.static_cache_control = "public, max-age=3600" | |
|
13 | + | |
|
14 | + # Log error messages when you accidentally call methods on nil | |
|
15 | + config.whiny_nils = true | |
|
8 | 16 | |
|
9 | - # Log error messages when you accidentally call methods on nil. | |
|
10 | - config.whiny_nils = true | |
|
17 | + # Show full error reports and disable caching | |
|
18 | + config.consider_all_requests_local = true | |
|
19 | + config.action_controller.perform_caching = false | |
|
20 | + | |
|
21 | + # Raise exceptions instead of rendering exception templates | |
|
22 | + config.action_dispatch.show_exceptions = false | |
|
23 | + | |
|
24 | + # Disable request forgery protection in test environment | |
|
25 | + config.action_controller.allow_forgery_protection = false | |
|
11 | 26 | |
|
12 | - # Show full error reports and disable caching | |
|
13 | - config.action_controller.consider_all_requests_local = true | |
|
14 | - config.action_controller.perform_caching = false | |
|
27 | + # Tell Action Mailer not to deliver emails to the real world. | |
|
28 | + # The :test delivery method accumulates sent emails in the | |
|
29 | + # ActionMailer::Base.deliveries array. | |
|
30 | + config.action_mailer.delivery_method = :test | |
|
15 | 31 | |
|
16 | - # Tell ActionMailer not to deliver emails to the real world. | |
|
17 | - # The :test delivery method accumulates sent emails in the | |
|
18 | - # ActionMailer::Base.deliveries array. | |
|
19 | - config.action_mailer.delivery_method = :test | |
|
32 | + # Raise exception on mass assignment protection for Active Record models | |
|
33 | + config.active_record.mass_assignment_sanitizer = :strict | |
|
34 | + | |
|
35 | + # Print deprecation notices to the stderr | |
|
36 | + config.active_support.deprecation = :stderr | |
|
37 | + end |
@@ -1,31 +1,68 | |||
|
1 | - ActionController::Routing::Routes.draw do |map| | |
|
2 |
- |
|
|
1 | + CafeGrader::Application.routes.draw do | |
|
2 | + resources :contests | |
|
3 | + | |
|
4 | + resources :announcements | |
|
5 | + resources :sites | |
|
3 | 6 | |
|
4 | - map.resources :announcements | |
|
5 | - map.resources :sites | |
|
7 | + # The priority is based upon order of creation: | |
|
8 | + # first created -> highest priority. | |
|
6 | 9 | |
|
7 | - # The priority is based upon order of creation: first created -> highest priority. | |
|
8 | - | |
|
9 | 10 | # Sample of regular route: |
|
10 |
- # |
|
|
11 | + # match 'products/:id' => 'catalog#view' | |
|
11 | 12 | # Keep in mind you can assign values other than :controller and :action |
|
12 | 13 | |
|
13 | 14 | # Sample of named route: |
|
14 |
- # |
|
|
15 | + # match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase | |
|
15 | 16 | # This route can be invoked with purchase_url(:id => product.id) |
|
16 | 17 | |
|
17 | - # You can have the root of your site routed by hooking up '' | |
|
18 | - # -- just remember to delete public/index.html. | |
|
19 | - map.connect '', :controller => 'main', :action => 'login' | |
|
18 | + # Sample resource route (maps HTTP verbs to controller actions automatically): | |
|
19 | + # resources :products | |
|
20 | 20 | |
|
21 | - # Allow downloading Web Service WSDL as a file with an extension | |
|
22 | - # instead of a file named 'wsdl' | |
|
23 | - map.connect ':controller/service.wsdl', :action => 'wsdl' | |
|
21 | + # Sample resource route with options: | |
|
22 | + # resources :products do | |
|
23 | + # member do | |
|
24 | + # get 'short' | |
|
25 | + # post 'toggle' | |
|
26 | + # end | |
|
27 | + # | |
|
28 | + # collection do | |
|
29 | + # get 'sold' | |
|
30 | + # end | |
|
31 | + # end | |
|
32 | + | |
|
33 | + # Sample resource route with sub-resources: | |
|
34 | + # resources :products do | |
|
35 | + # resources :comments, :sales | |
|
36 | + # resource :seller | |
|
37 | + # end | |
|
24 | 38 | |
|
25 | - map.connect 'tasks/view/:file.:ext', :controller => 'tasks', :action => 'view' | |
|
26 | - map.connect 'tasks/download/:id/:file.:ext', :controller => 'tasks', :action => 'download' | |
|
39 | + # Sample resource route with more complex sub-resources | |
|
40 | + # resources :products do | |
|
41 | + # resources :comments | |
|
42 | + # resources :sales do | |
|
43 | + # get 'recent', :on => :collection | |
|
44 | + # end | |
|
45 | + # end | |
|
46 | + | |
|
47 | + # Sample resource route within a namespace: | |
|
48 | + # namespace :admin do | |
|
49 | + # # Directs /admin/products/* to Admin::ProductsController | |
|
50 | + # # (app/controllers/admin/products_controller.rb) | |
|
51 | + # resources :products | |
|
52 | + # end | |
|
27 | 53 | |
|
28 | - # Install the default route as the lowest priority. | |
|
29 | - map.connect ':controller/:action/:id.:format' | |
|
30 | - map.connect ':controller/:action/:id' | |
|
54 | + # You can have the root of your site routed with "root" | |
|
55 | + # just remember to delete public/index.html. | |
|
56 | + # root :to => 'welcome#index' | |
|
57 | + | |
|
58 | + root :to => 'main#login' | |
|
59 | + | |
|
60 | + match 'tasks/view/:file.:ext' => 'tasks#view' | |
|
61 | + match 'tasks/download/:id/:file.:ext' => 'tasks#download' | |
|
62 | + | |
|
63 | + # See how all your routes lay out with "rake routes" | |
|
64 | + | |
|
65 | + # This is a legacy wild controller route that's not recommended for RESTful applications. | |
|
66 | + # Note: This route will make all actions in every controller accessible via GET requests. | |
|
67 | + match ':controller(/:action(/:id))(.:format)' | |
|
31 | 68 | end |
@@ -1,2 +1,2 | |||
|
1 | 1 | Use this README file to introduce your application and point to useful places in the API for learning more. |
|
2 |
- Run "rake app |
|
|
2 | + Run "rake doc:app" to generate API documentation for your models, controllers, helpers, and libraries. |
@@ -1,7 +1,7 | |||
|
1 |
- gem 'test-unit' |
|
|
1 | + gem 'test-unit' if RUBY_VERSION.to_f >= 1.9 | |
|
2 | 2 | rspec_gem_dir = nil |
|
3 |
- Dir["#{R |
|
|
4 |
- rspec_gem_dir = subdir if subdir.gsub("#{R |
|
|
3 | + Dir["#{Rails.root}/vendor/gems/*"].each do |subdir| | |
|
4 | + rspec_gem_dir = subdir if subdir.gsub("#{Rails.root}/vendor/gems/","") =~ /^(\w+-)?rspec-(\d+)/ && File.exist?("#{subdir}/lib/spec/rake/spectask.rb") | |
|
5 | 5 | end |
|
6 | 6 | rspec_plugin_dir = File.expand_path(File.dirname(__FILE__) + '/../../vendor/plugins/rspec') |
|
7 | 7 | |
@@ -47,7 +47,7 | |||
|
47 | 47 | |
|
48 | 48 | Rake.application.instance_variable_get('@tasks').delete('default') |
|
49 | 49 | |
|
50 |
- spec_prereq = File.exist?(File.join(R |
|
|
50 | + spec_prereq = File.exist?(File.join(Rails.root, 'config', 'database.yml')) ? "db:test:prepare" : :noop | |
|
51 | 51 | task :noop do |
|
52 | 52 | end |
|
53 | 53 | |
@@ -56,18 +56,18 | |||
|
56 | 56 | |
|
57 | 57 | desc "Run all specs in spec directory (excluding plugin specs)" |
|
58 | 58 | Spec::Rake::SpecTask.new(:spec => spec_prereq) do |t| |
|
59 |
- t.spec_opts = ['--options', "\"#{R |
|
|
59 | + t.spec_opts = ['--options', "\"#{Rails.root}/spec/spec.opts\""] | |
|
60 | 60 | t.spec_files = FileList['spec/**/*_spec.rb'] |
|
61 | 61 | end |
|
62 | 62 | |
|
63 | 63 | namespace :spec do |
|
64 | 64 | desc "Run all specs in spec directory with RCov (excluding plugin specs)" |
|
65 | 65 | Spec::Rake::SpecTask.new(:rcov) do |t| |
|
66 |
- t.spec_opts = ['--options', "\"#{R |
|
|
66 | + t.spec_opts = ['--options', "\"#{Rails.root}/spec/spec.opts\""] | |
|
67 | 67 | t.spec_files = FileList['spec/**/*_spec.rb'] |
|
68 | 68 | t.rcov = true |
|
69 | 69 | t.rcov_opts = lambda do |
|
70 |
- IO.readlines("#{R |
|
|
70 | + IO.readlines("#{Rails.root}/spec/rcov.opts").map {|l| l.chomp.split " "}.flatten | |
|
71 | 71 | end |
|
72 | 72 | end |
|
73 | 73 | |
@@ -86,21 +86,21 | |||
|
86 | 86 | [:models, :controllers, :views, :helpers, :lib, :integration].each do |sub| |
|
87 | 87 | desc "Run the code examples in spec/#{sub}" |
|
88 | 88 | Spec::Rake::SpecTask.new(sub => spec_prereq) do |t| |
|
89 |
- t.spec_opts = ['--options', "\"#{R |
|
|
89 | + t.spec_opts = ['--options', "\"#{Rails.root}/spec/spec.opts\""] | |
|
90 | 90 | t.spec_files = FileList["spec/#{sub}/**/*_spec.rb"] |
|
91 | 91 | end |
|
92 | 92 | end |
|
93 | 93 | |
|
94 | 94 | desc "Run the code examples in vendor/plugins (except RSpec's own)" |
|
95 | 95 | Spec::Rake::SpecTask.new(:plugins => spec_prereq) do |t| |
|
96 |
- t.spec_opts = ['--options', "\"#{R |
|
|
96 | + t.spec_opts = ['--options', "\"#{Rails.root}/spec/spec.opts\""] | |
|
97 | 97 | t.spec_files = FileList['vendor/plugins/**/spec/**/*_spec.rb'].exclude('vendor/plugins/rspec/*').exclude("vendor/plugins/rspec-rails/*") |
|
98 | 98 | end |
|
99 | 99 | |
|
100 | 100 | namespace :plugins do |
|
101 | 101 | desc "Runs the examples for rspec_on_rails" |
|
102 | 102 | Spec::Rake::SpecTask.new(:rspec_on_rails) do |t| |
|
103 |
- t.spec_opts = ['--options', "\"#{R |
|
|
103 | + t.spec_opts = ['--options', "\"#{Rails.root}/spec/spec.opts\""] | |
|
104 | 104 | t.spec_files = FileList['vendor/plugins/rspec-rails/spec/**/*_spec.rb'] |
|
105 | 105 | end |
|
106 | 106 | end |
@@ -1,23 +1,19 | |||
|
1 | - <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
|
2 | - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
|
3 | - | |
|
4 | - <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
|
5 | - | |
|
1 | + <!DOCTYPE html> | |
|
2 | + <html> | |
|
6 | 3 | <head> |
|
7 | - <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> | |
|
8 | 4 | <title>The page you were looking for doesn't exist (404)</title> |
|
9 |
- |
|
|
10 |
- |
|
|
11 |
- |
|
|
12 |
- |
|
|
13 |
- |
|
|
14 |
- |
|
|
15 |
- |
|
|
16 |
- |
|
|
17 |
- |
|
|
18 | - } | |
|
19 |
- |
|
|
20 |
- |
|
|
5 | + <style type="text/css"> | |
|
6 | + body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; } | |
|
7 | + div.dialog { | |
|
8 | + width: 25em; | |
|
9 | + padding: 0 4em; | |
|
10 | + margin: 4em auto 0 auto; | |
|
11 | + border: 1px solid #ccc; | |
|
12 | + border-right-color: #999; | |
|
13 | + border-bottom-color: #999; | |
|
14 | + } | |
|
15 | + h1 { font-size: 100%; color: #f00; line-height: 1.5em; } | |
|
16 | + </style> | |
|
21 | 17 | </head> |
|
22 | 18 | |
|
23 | 19 | <body> |
@@ -27,4 +23,4 | |||
|
27 | 23 | <p>You may have mistyped the address or the page may have moved.</p> |
|
28 | 24 | </div> |
|
29 | 25 | </body> |
|
30 | - </html> No newline at end of file | |
|
26 | + </html> |
@@ -1,30 +1,25 | |||
|
1 | - <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
|
2 | - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
|
3 | - | |
|
4 | - <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
|
5 | - | |
|
1 | + <!DOCTYPE html> | |
|
2 | + <html> | |
|
6 | 3 | <head> |
|
7 | - <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> | |
|
8 | - <title>We're sorry, but something went wrong</title> | |
|
9 | - <style type="text/css"> | |
|
10 | - body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; } | |
|
11 | - div.dialog { | |
|
12 | - width: 25em; | |
|
13 | - padding: 0 4em; | |
|
14 | - margin: 4em auto 0 auto; | |
|
15 | - border: 1px solid #ccc; | |
|
16 |
- |
|
|
17 | - border-bottom-color: #999; | |
|
18 | - } | |
|
19 | - h1 { font-size: 100%; color: #f00; line-height: 1.5em; } | |
|
20 | - </style> | |
|
4 | + <title>We're sorry, but something went wrong (500)</title> | |
|
5 | + <style type="text/css"> | |
|
6 | + body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; } | |
|
7 | + div.dialog { | |
|
8 | + width: 25em; | |
|
9 | + padding: 0 4em; | |
|
10 | + margin: 4em auto 0 auto; | |
|
11 | + border: 1px solid #ccc; | |
|
12 | + border-right-color: #999; | |
|
13 | + border-bottom-color: #999; | |
|
14 | + } | |
|
15 | + h1 { font-size: 100%; color: #f00; line-height: 1.5em; } | |
|
16 | + </style> | |
|
21 | 17 | </head> |
|
22 | 18 | |
|
23 | 19 | <body> |
|
24 | 20 | <!-- This file lives in public/500.html --> |
|
25 | 21 | <div class="dialog"> |
|
26 | 22 | <h1>We're sorry, but something went wrong.</h1> |
|
27 | - <p>We've been notified about this issue and we'll take a look at it shortly.</p> | |
|
28 | 23 | </div> |
|
29 | 24 | </body> |
|
30 | - </html> No newline at end of file | |
|
25 | + </html> |
@@ -1,1 +1,5 | |||
|
1 | - # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file No newline at end of file | |
|
1 | + # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file | |
|
2 | + # | |
|
3 | + # To ban all spiders from the entire site uncomment the next two lines: | |
|
4 | + # User-Agent: * | |
|
5 | + # Disallow: / |
modified file chmod 100644 => 100755 |
modified file chmod 100644 => 100755 |
modified file chmod 100644 => 100755 |
modified file chmod 100644 => 100755 |
modified file chmod 100644 => 100755 |
@@ -1,29 +1,16 | |||
|
1 | 1 | ENV["RAILS_ENV"] = "test" |
|
2 |
- require File.expand_path( |
|
|
3 | - require 'test_help' | |
|
2 | + require File.expand_path('../../config/environment', __FILE__) | |
|
3 | + require 'rails/test_help' | |
|
4 | 4 | |
|
5 | 5 | class ActiveSupport::TestCase |
|
6 | - # Transactional fixtures accelerate your tests by wrapping each test method | |
|
7 | - # in a transaction that's rolled back on completion. This ensures that the | |
|
8 | - # test database remains unchanged so your fixtures don't have to be reloaded | |
|
9 | - # between every test method. Fewer database queries means faster tests. | |
|
6 | + # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order. | |
|
10 | 7 | # |
|
11 | - # Read Mike Clark's excellent walkthrough at | |
|
12 | - # http://clarkware.com/cgi/blosxom/2005/10/24#Rails10FastTesting | |
|
13 | - # | |
|
14 | - # Every Active Record database supports transactions except MyISAM tables | |
|
15 | - # in MySQL. Turn off transactional fixtures in this case; however, if you | |
|
16 | - # don't care one way or the other, switching from MyISAM to InnoDB tables | |
|
17 | - # is recommended. | |
|
8 | + # Note: You'll currently still have to declare fixtures explicitly in integration tests | |
|
9 | + # -- they do not yet inherit this setting | |
|
10 | + fixtures :all | |
|
11 | + | |
|
12 | + # Add more helper methods to be used by all tests here... | |
|
18 | 13 | |
|
19 | 14 | self.use_transactional_fixtures = true |
|
20 | - | |
|
21 | - # Instantiated fixtures are slow, but give you @david where otherwise you | |
|
22 | - # would need people(:david). If you don't want to migrate your existing | |
|
23 | - # test cases which use the @david style and don't mind the speed hit (each | |
|
24 | - # instantiated fixtures translates to a database query per test method), | |
|
25 | - # then set this back to true. | |
|
26 | 15 | self.use_instantiated_fixtures = false |
|
27 | - | |
|
28 | - # Add more helper methods to be used by all tests here... | |
|
29 | 16 | end |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file | |||
binary diff hidden |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
deleted file |
You need to be logged in to leave comments.
Login now