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 | # Add your own tasks in files placed in lib/tasks ending in .rake, |
|
2 | # Add your own tasks in files placed in lib/tasks ending in .rake, |
|
2 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. |
|
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 | + CafeGrader::Application.load_tasks |
|
7 | - require 'rake/testtask' |
|
||
|
8 | - require 'rake/rdoctask' |
|
||
|
9 | - |
|
||
|
10 | - require 'tasks/rails' |
|
||
|
11 | - |
|
@@ -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 | class ApplicationController < ActionController::Base |
|
|
2 | + protect_from_forgery | ||
|
5 |
|
3 | ||
|
6 | SINGLE_USER_MODE_CONF_KEY = 'system.single_user_mode' |
|
4 | SINGLE_USER_MODE_CONF_KEY = 'system.single_user_mode' |
|
7 |
|
5 | ||
@@ -83,4 +81,3 | |||||
|
83 | end |
|
81 | end |
|
84 |
|
82 | ||
|
85 | end |
|
83 | end |
|
86 | - |
|
@@ -51,7 +51,7 | |||||
|
51 | end |
|
51 | end |
|
52 |
|
52 | ||
|
53 | def self.download_file_basedir |
|
53 | def self.download_file_basedir |
|
54 |
- return "#{R |
|
54 | + return "#{Rails.root}/data/tasks" |
|
55 | end |
|
55 | end |
|
56 |
|
56 | ||
|
57 | protected |
|
57 | protected |
@@ -1,22 +1,14 | |||||
|
1 | - <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
|
1 | + <!DOCTYPE html> |
|
2 | - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
|
2 | + <html> |
|
3 | - |
|
||
|
4 | - <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
|
||
|
5 | <head> |
|
3 | <head> |
|
6 | - <meta http-equiv="content-type" content="text/html;charset=UTF-8" /> |
|
4 | + <title>CafeGraderWeb</title> |
|
7 | - <title><%= Configuration['contest.name'] %></title> |
|
5 | + <%= stylesheet_link_tag "application", :media => "all" %> |
|
8 |
- <%= |
|
6 | + <%= javascript_include_tag "application" %> |
|
9 | - <%= yield :head %> |
|
7 | + <%= csrf_meta_tags %> |
|
10 | </head> |
|
8 | </head> |
|
11 | <body> |
|
9 | <body> |
|
12 |
|
10 | ||
|
13 | - <div class="userbar"> |
|
11 | + <%= yield %> |
|
14 | - <%= user_header %> |
|
||
|
15 | - </div> |
|
||
|
16 | - |
|
||
|
17 | - <%= content_tag(:p,flash[:notice],:style => "color:green") if flash[:notice]!=nil %> |
|
||
|
18 | - |
|
||
|
19 | - <%= yield %> |
|
||
|
20 |
|
12 | ||
|
21 | </body> |
|
13 | </body> |
|
22 | </html> |
|
14 | </html> |
@@ -1,110 +1,6 | |||||
|
1 | - # Don't change this file! |
|
1 | + require 'rubygems' |
|
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 |
|
||
|
50 |
|
2 | ||
|
51 | - class GemBoot < Boot |
|
3 | + # Set up gems listed in the Gemfile. |
|
52 | - def load_initializer |
|
4 | + ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) |
|
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 |
|
||
|
73 |
|
5 | ||
|
74 | - def gem_version |
|
6 | + require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE']) |
|
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! |
|
@@ -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: |
|
6 | + # Ensure the MySQL gem is defined in your Gemfile |
|
4 |
- # gem |
|
7 | + # gem 'mysql2' |
|
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. |
|
||
|
11 | # |
|
8 | # |
|
12 | # And be sure to use new-style password hashing: |
|
9 | # And be sure to use new-style password hashing: |
|
13 | # http://dev.mysql.com/doc/refman/5.0/en/old-client.html |
|
10 | # http://dev.mysql.com/doc/refman/5.0/en/old-client.html |
|
14 | development: |
|
11 | development: |
|
15 | - adapter: mysql |
|
12 | + adapter: mysql2 |
|
|
13 | + encoding: utf8 | ||
|
|
14 | + reconnect: false | ||
|
16 | database: ioi |
|
15 | database: ioi |
|
|
16 | + pool: 5 | ||
|
17 | username: ioi |
|
17 | username: ioi |
|
18 | password: ioi |
|
18 | password: ioi |
|
19 | - host: localhost |
|
19 | + socket: /var/run/mysqld/mysqld.sock |
|
20 |
|
20 | ||
|
21 |
- # Warning: The database defined as |
|
21 | + # Warning: The database defined as "test" will be erased and |
|
22 |
- # re-generated from your development database when you run |
|
22 | + # re-generated from your development database when you run "rake". |
|
23 | # Do not set this db to the same as development or production. |
|
23 | # Do not set this db to the same as development or production. |
|
24 | test: |
|
24 | test: |
|
25 | - adapter: mysql |
|
25 | + adapter: mysql2 |
|
26 | - database: grader_test |
|
26 | + encoding: utf8 |
|
27 | - username: root |
|
27 | + reconnect: false |
|
28 | - password: |
|
28 | + database: ioi_test |
|
29 | - host: localhost |
|
29 | + pool: 5 |
|
|
30 | + username: ioi | ||
|
|
31 | + password: ioi | ||
|
|
32 | + socket: /var/run/mysqld/mysqld.sock | ||
|
30 |
|
33 | ||
|
31 | production: |
|
34 | production: |
|
32 | - adapter: mysql |
|
35 | + adapter: mysql2 |
|
|
36 | + encoding: utf8 | ||
|
|
37 | + reconnect: false | ||
|
33 | database: ioi |
|
38 | database: ioi |
|
|
39 | + pool: 5 | ||
|
34 | username: ioi |
|
40 | username: ioi |
|
35 | password: ioi |
|
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 |
|
9 | + # Log error messages when you accidentally call methods on nil. |
|
4 | - # every request. This slows down response time but is perfect for development |
|
10 | + config.whiny_nils = true |
|
5 | - # since you don't have to restart the webserver when you make code changes. |
|
||
|
6 | - config.cache_classes = false |
|
||
|
7 |
|
11 | ||
|
8 | - # Log error messages when you accidentally call methods on nil. |
|
12 | + # Show full error reports and disable caching |
|
9 | - config.whiny_nils = true |
|
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 |
|
19 | + # Print deprecation notices to the Rails logger |
|
12 | - #config.breakpoint_server = true |
|
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 |
|
28 | + # Log the query plan for queries taking more than this (works |
|
15 | - config.action_controller.consider_all_requests_local = true |
|
29 | + # with SQLite, MySQL, and PostgreSQL) |
|
16 | - config.action_controller.perform_caching = false |
|
30 | + config.active_record.auto_explain_threshold_in_seconds = 0.5 |
|
17 | - config.action_view.debug_rjs = true |
|
||
|
18 |
|
31 | ||
|
19 | - # Don't care if the mailer can't send |
|
32 | + # Do not compress assets |
|
20 | - config.action_mailer.raise_delivery_errors = false |
|
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. |
|
17 | + # Don't fallback to assets pipeline if a precompiled asset is missed |
|
4 | - # Code is not reloaded between requests |
|
18 | + config.assets.compile = false |
|
5 | - config.cache_classes = true |
|
19 | + |
|
|
20 | + # Generate digests for assets URLs | ||
|
|
21 | + config.assets.digest = true | ||
|
6 |
|
22 | ||
|
7 | - # Use a different logger for distributed setups |
|
23 | + # Defaults to nil and saved in location specified by config.assets.prefix |
|
8 | - # config.logger = SyslogLogger.new |
|
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 |
|
33 | + # See everything in the log (default is :info) |
|
11 | - config.action_controller.consider_all_requests_local = false |
|
34 | + # config.log_level = :debug |
|
12 | - config.action_controller.perform_caching = true |
|
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 |
|
51 | + # Disable delivery errors, bad email addresses will be ignored |
|
15 | - # config.action_controller.asset_host = "http://assets.example.com" |
|
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 |
|
57 | + # Enable locale fallbacks for I18n (makes lookups for any locale fall back to |
|
18 | - # config.action_mailer.raise_delivery_errors = false |
|
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 | + # The test environment is used exclusively to run your application's |
|
4 |
- |
|
5 | + # test suite. You never need to work with it otherwise. Remember that |
|
5 | - # your test database is "scratch space" for the test suite and is wiped |
|
6 | + # your test database is "scratch space" for the test suite and is wiped |
|
6 |
- |
|
7 | + # and recreated between test runs. Don't rely on the data there! |
|
7 | - config.cache_classes = true |
|
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. |
|
17 | + # Show full error reports and disable caching |
|
10 | - config.whiny_nils = true |
|
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 |
|
27 | + # Tell Action Mailer not to deliver emails to the real world. |
|
13 | - config.action_controller.consider_all_requests_local = true |
|
28 | + # The :test delivery method accumulates sent emails in the |
|
14 | - config.action_controller.perform_caching = false |
|
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. |
|
32 | + # Raise exception on mass assignment protection for Active Record models |
|
17 | - # The :test delivery method accumulates sent emails in the |
|
33 | + config.active_record.mass_assignment_sanitizer = :strict |
|
18 | - # ActionMailer::Base.deliveries array. |
|
34 | + |
|
19 | - config.action_mailer.delivery_method = :test |
|
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| |
|
1 | + CafeGrader::Application.routes.draw do |
|
2 |
- |
|
2 | + resources :contests |
|
|
3 | + | ||
|
|
4 | + resources :announcements | ||
|
|
5 | + resources :sites | ||
|
3 |
|
6 | ||
|
4 | - map.resources :announcements |
|
7 | + # The priority is based upon order of creation: |
|
5 | - map.resources :sites |
|
8 | + # first created -> highest priority. |
|
6 |
|
9 | ||
|
7 | - # The priority is based upon order of creation: first created -> highest priority. |
|
||
|
8 | - |
|
||
|
9 | # Sample of regular route: |
|
10 | # Sample of regular route: |
|
10 |
- # |
|
11 | + # match 'products/:id' => 'catalog#view' |
|
11 | # Keep in mind you can assign values other than :controller and :action |
|
12 | # Keep in mind you can assign values other than :controller and :action |
|
12 |
|
13 | ||
|
13 | # Sample of named route: |
|
14 | # Sample of named route: |
|
14 |
- # |
|
15 | + # match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase |
|
15 | # This route can be invoked with purchase_url(:id => product.id) |
|
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 | + # Sample resource route (maps HTTP verbs to controller actions automatically): |
|
18 | - # -- just remember to delete public/index.html. |
|
19 | + # resources :products |
|
19 | - map.connect '', :controller => 'main', :action => 'login' |
|
||
|
20 |
|
20 | ||
|
21 | - # Allow downloading Web Service WSDL as a file with an extension |
|
21 | + # Sample resource route with options: |
|
22 | - # instead of a file named 'wsdl' |
|
22 | + # resources :products do |
|
23 | - map.connect ':controller/service.wsdl', :action => 'wsdl' |
|
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' |
|
39 | + # Sample resource route with more complex sub-resources |
|
26 | - map.connect 'tasks/download/:id/:file.:ext', :controller => 'tasks', :action => 'download' |
|
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. |
|
54 | + # You can have the root of your site routed with "root" |
|
29 | - map.connect ':controller/:action/:id.:format' |
|
55 | + # just remember to delete public/index.html. |
|
30 | - map.connect ':controller/:action/:id' |
|
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 | end |
|
68 | end |
@@ -1,2 +1,2 | |||||
|
1 | Use this README file to introduce your application and point to useful places in the API for learning more. |
|
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 | rspec_gem_dir = nil |
|
2 | rspec_gem_dir = nil |
|
3 |
- Dir["#{R |
|
3 | + Dir["#{Rails.root}/vendor/gems/*"].each do |subdir| |
|
4 |
- rspec_gem_dir = subdir if subdir.gsub("#{R |
|
4 | + rspec_gem_dir = subdir if subdir.gsub("#{Rails.root}/vendor/gems/","") =~ /^(\w+-)?rspec-(\d+)/ && File.exist?("#{subdir}/lib/spec/rake/spectask.rb") |
|
5 | end |
|
5 | end |
|
6 | rspec_plugin_dir = File.expand_path(File.dirname(__FILE__) + '/../../vendor/plugins/rspec') |
|
6 | rspec_plugin_dir = File.expand_path(File.dirname(__FILE__) + '/../../vendor/plugins/rspec') |
|
7 |
|
7 | ||
@@ -47,7 +47,7 | |||||
|
47 |
|
47 | ||
|
48 | Rake.application.instance_variable_get('@tasks').delete('default') |
|
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 | task :noop do |
|
51 | task :noop do |
|
52 | end |
|
52 | end |
|
53 |
|
53 | ||
@@ -56,18 +56,18 | |||||
|
56 |
|
56 | ||
|
57 | desc "Run all specs in spec directory (excluding plugin specs)" |
|
57 | desc "Run all specs in spec directory (excluding plugin specs)" |
|
58 | Spec::Rake::SpecTask.new(:spec => spec_prereq) do |t| |
|
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 | t.spec_files = FileList['spec/**/*_spec.rb'] |
|
60 | t.spec_files = FileList['spec/**/*_spec.rb'] |
|
61 | end |
|
61 | end |
|
62 |
|
62 | ||
|
63 | namespace :spec do |
|
63 | namespace :spec do |
|
64 | desc "Run all specs in spec directory with RCov (excluding plugin specs)" |
|
64 | desc "Run all specs in spec directory with RCov (excluding plugin specs)" |
|
65 | Spec::Rake::SpecTask.new(:rcov) do |t| |
|
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 | t.spec_files = FileList['spec/**/*_spec.rb'] |
|
67 | t.spec_files = FileList['spec/**/*_spec.rb'] |
|
68 | t.rcov = true |
|
68 | t.rcov = true |
|
69 | t.rcov_opts = lambda do |
|
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 | end |
|
71 | end |
|
72 | end |
|
72 | end |
|
73 |
|
73 | ||
@@ -86,21 +86,21 | |||||
|
86 | [:models, :controllers, :views, :helpers, :lib, :integration].each do |sub| |
|
86 | [:models, :controllers, :views, :helpers, :lib, :integration].each do |sub| |
|
87 | desc "Run the code examples in spec/#{sub}" |
|
87 | desc "Run the code examples in spec/#{sub}" |
|
88 | Spec::Rake::SpecTask.new(sub => spec_prereq) do |t| |
|
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 | t.spec_files = FileList["spec/#{sub}/**/*_spec.rb"] |
|
90 | t.spec_files = FileList["spec/#{sub}/**/*_spec.rb"] |
|
91 | end |
|
91 | end |
|
92 | end |
|
92 | end |
|
93 |
|
93 | ||
|
94 | desc "Run the code examples in vendor/plugins (except RSpec's own)" |
|
94 | desc "Run the code examples in vendor/plugins (except RSpec's own)" |
|
95 | Spec::Rake::SpecTask.new(:plugins => spec_prereq) do |t| |
|
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 | t.spec_files = FileList['vendor/plugins/**/spec/**/*_spec.rb'].exclude('vendor/plugins/rspec/*').exclude("vendor/plugins/rspec-rails/*") |
|
97 | t.spec_files = FileList['vendor/plugins/**/spec/**/*_spec.rb'].exclude('vendor/plugins/rspec/*').exclude("vendor/plugins/rspec-rails/*") |
|
98 | end |
|
98 | end |
|
99 |
|
99 | ||
|
100 | namespace :plugins do |
|
100 | namespace :plugins do |
|
101 | desc "Runs the examples for rspec_on_rails" |
|
101 | desc "Runs the examples for rspec_on_rails" |
|
102 | Spec::Rake::SpecTask.new(:rspec_on_rails) do |t| |
|
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 | t.spec_files = FileList['vendor/plugins/rspec-rails/spec/**/*_spec.rb'] |
|
104 | t.spec_files = FileList['vendor/plugins/rspec-rails/spec/**/*_spec.rb'] |
|
105 | end |
|
105 | end |
|
106 | end |
|
106 | end |
@@ -1,23 +1,19 | |||||
|
1 | - <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
|
1 | + <!DOCTYPE html> |
|
2 | - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
|
2 | + <html> |
|
3 | - |
|
||
|
4 | - <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
|
||
|
5 | - |
|
||
|
6 | <head> |
|
3 | <head> |
|
7 | - <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> |
|
||
|
8 | <title>The page you were looking for doesn't exist (404)</title> |
|
4 | <title>The page you were looking for doesn't exist (404)</title> |
|
9 |
- |
|
5 | + <style type="text/css"> |
|
10 |
- |
|
6 | + body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; } |
|
11 |
- |
|
7 | + div.dialog { |
|
12 |
- |
|
8 | + width: 25em; |
|
13 |
- |
|
9 | + padding: 0 4em; |
|
14 |
- |
|
10 | + margin: 4em auto 0 auto; |
|
15 |
- |
|
11 | + border: 1px solid #ccc; |
|
16 |
- |
|
12 | + border-right-color: #999; |
|
17 |
- |
|
13 | + border-bottom-color: #999; |
|
18 | - } |
|
14 | + } |
|
19 |
- |
|
15 | + h1 { font-size: 100%; color: #f00; line-height: 1.5em; } |
|
20 |
- |
|
16 | + </style> |
|
21 | </head> |
|
17 | </head> |
|
22 |
|
18 | ||
|
23 | <body> |
|
19 | <body> |
@@ -27,4 +23,4 | |||||
|
27 | <p>You may have mistyped the address or the page may have moved.</p> |
|
23 | <p>You may have mistyped the address or the page may have moved.</p> |
|
28 | </div> |
|
24 | </div> |
|
29 | </body> |
|
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" |
|
1 | + <!DOCTYPE html> |
|
2 | - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
|
2 | + <html> |
|
3 | - |
|
||
|
4 | - <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
|
||
|
5 | - |
|
||
|
6 | <head> |
|
3 | <head> |
|
7 | - <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> |
|
4 | + <title>We're sorry, but something went wrong (500)</title> |
|
8 | - <title>We're sorry, but something went wrong</title> |
|
5 | + <style type="text/css"> |
|
9 | - <style type="text/css"> |
|
6 | + body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; } |
|
10 | - body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; } |
|
7 | + div.dialog { |
|
11 | - div.dialog { |
|
8 | + width: 25em; |
|
12 | - width: 25em; |
|
9 | + padding: 0 4em; |
|
13 | - padding: 0 4em; |
|
10 | + margin: 4em auto 0 auto; |
|
14 | - margin: 4em auto 0 auto; |
|
11 | + border: 1px solid #ccc; |
|
15 | - border: 1px solid #ccc; |
|
12 | + border-right-color: #999; |
|
16 |
- |
|
13 | + border-bottom-color: #999; |
|
17 | - border-bottom-color: #999; |
|
14 | + } |
|
18 | - } |
|
15 | + h1 { font-size: 100%; color: #f00; line-height: 1.5em; } |
|
19 | - h1 { font-size: 100%; color: #f00; line-height: 1.5em; } |
|
16 | + </style> |
|
20 | - </style> |
|
||
|
21 | </head> |
|
17 | </head> |
|
22 |
|
18 | ||
|
23 | <body> |
|
19 | <body> |
|
24 | <!-- This file lives in public/500.html --> |
|
20 | <!-- This file lives in public/500.html --> |
|
25 | <div class="dialog"> |
|
21 | <div class="dialog"> |
|
26 | <h1>We're sorry, but something went wrong.</h1> |
|
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 | </div> |
|
23 | </div> |
|
29 | </body> |
|
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 | ENV["RAILS_ENV"] = "test" |
|
1 | ENV["RAILS_ENV"] = "test" |
|
2 |
- require File.expand_path( |
|
2 | + require File.expand_path('../../config/environment', __FILE__) |
|
3 | - require 'test_help' |
|
3 | + require 'rails/test_help' |
|
4 |
|
4 | ||
|
5 | class ActiveSupport::TestCase |
|
5 | class ActiveSupport::TestCase |
|
6 | - # Transactional fixtures accelerate your tests by wrapping each test method |
|
6 | + # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order. |
|
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. |
|
||
|
10 | # |
|
7 | # |
|
11 | - # Read Mike Clark's excellent walkthrough at |
|
8 | + # Note: You'll currently still have to declare fixtures explicitly in integration tests |
|
12 | - # http://clarkware.com/cgi/blosxom/2005/10/24#Rails10FastTesting |
|
9 | + # -- they do not yet inherit this setting |
|
13 | - # |
|
10 | + fixtures :all |
|
14 | - # Every Active Record database supports transactions except MyISAM tables |
|
11 | + |
|
15 | - # in MySQL. Turn off transactional fixtures in this case; however, if you |
|
12 | + # Add more helper methods to be used by all tests here... |
|
16 | - # don't care one way or the other, switching from MyISAM to InnoDB tables |
|
||
|
17 | - # is recommended. |
|
||
|
18 |
|
13 | ||
|
19 | self.use_transactional_fixtures = true |
|
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 | self.use_instantiated_fixtures = false |
|
15 | self.use_instantiated_fixtures = false |
|
27 | - |
|
||
|
28 | - # Add more helper methods to be used by all tests here... |
|
||
|
29 | end |
|
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