Description:
merge with rails7 branch
Commit status:
[Not Reviewed]
References:
Diff options:
Comments:
0 Commit comments
0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
r824:feb677289536 - - 129 files changed: 862 inserted, 606 deleted
@@ -0,0 +1,4 | |||||
|
|
1 | + //= link_tree ../images | ||
|
|
2 | + //= link_directory ../javascripts .js | ||
|
|
3 | + //= link_directory ../stylesheets .css | ||
|
|
4 | + |
@@ -0,0 +1,14 | |||||
|
|
1 | + #!/usr/bin/env ruby | ||
|
|
2 | + if !defined?(Spring) && [nil, "development", "test"].include?(ENV["RAILS_ENV"]) | ||
|
|
3 | + gem "bundler" | ||
|
|
4 | + require "bundler" | ||
|
|
5 | + | ||
|
|
6 | + # Load Spring without loading other gems in the Gemfile, for speed. | ||
|
|
7 | + Bundler.locked_gems&.specs&.find { |spec| spec.name == "spring" }&.tap do |spring| | ||
|
|
8 | + Gem.use_paths Gem.dir, Bundler.bundle_path.to_s, *Gem.path | ||
|
|
9 | + gem "spring", spring.version | ||
|
|
10 | + require "spring/binstub" | ||
|
|
11 | + rescue Gem::LoadError | ||
|
|
12 | + # Ignore when Spring is not installed. | ||
|
|
13 | + end | ||
|
|
14 | + end |
@@ -0,0 +1,67 | |||||
|
|
1 | + # Be sure to restart your server when you modify this file. | ||
|
|
2 | + # | ||
|
|
3 | + # This file contains migration options to ease your Rails 6.1 upgrade. | ||
|
|
4 | + # | ||
|
|
5 | + # Once upgraded flip defaults one by one to migrate to the new default. | ||
|
|
6 | + # | ||
|
|
7 | + # Read the Guide for Upgrading Ruby on Rails for more info on each option. | ||
|
|
8 | + | ||
|
|
9 | + # Support for inversing belongs_to -> has_many Active Record associations. | ||
|
|
10 | + # Rails.application.config.active_record.has_many_inversing = true | ||
|
|
11 | + | ||
|
|
12 | + # Track Active Storage variants in the database. | ||
|
|
13 | + # Rails.application.config.active_storage.track_variants = true | ||
|
|
14 | + | ||
|
|
15 | + # Apply random variation to the delay when retrying failed jobs. | ||
|
|
16 | + # Rails.application.config.active_job.retry_jitter = 0.15 | ||
|
|
17 | + | ||
|
|
18 | + # Stop executing `after_enqueue`/`after_perform` callbacks if | ||
|
|
19 | + # `before_enqueue`/`before_perform` respectively halts with `throw :abort`. | ||
|
|
20 | + # Rails.application.config.active_job.skip_after_callbacks_if_terminated = true | ||
|
|
21 | + | ||
|
|
22 | + # Specify cookies SameSite protection level: either :none, :lax, or :strict. | ||
|
|
23 | + # | ||
|
|
24 | + # This change is not backwards compatible with earlier Rails versions. | ||
|
|
25 | + # It's best enabled when your entire app is migrated and stable on 6.1. | ||
|
|
26 | + # Rails.application.config.action_dispatch.cookies_same_site_protection = :lax | ||
|
|
27 | + | ||
|
|
28 | + # Generate CSRF tokens that are encoded in URL-safe Base64. | ||
|
|
29 | + # | ||
|
|
30 | + # This change is not backwards compatible with earlier Rails versions. | ||
|
|
31 | + # It's best enabled when your entire app is migrated and stable on 6.1. | ||
|
|
32 | + # Rails.application.config.action_controller.urlsafe_csrf_tokens = true | ||
|
|
33 | + | ||
|
|
34 | + # Specify whether `ActiveSupport::TimeZone.utc_to_local` returns a time with an | ||
|
|
35 | + # UTC offset or a UTC time. | ||
|
|
36 | + # ActiveSupport.utc_to_local_returns_utc_offset_times = true | ||
|
|
37 | + | ||
|
|
38 | + # Change the default HTTP status code to `308` when redirecting non-GET/HEAD | ||
|
|
39 | + # requests to HTTPS in `ActionDispatch::SSL` middleware. | ||
|
|
40 | + # Rails.application.config.action_dispatch.ssl_default_redirect_status = 308 | ||
|
|
41 | + | ||
|
|
42 | + # Use new connection handling API. For most applications this won't have any | ||
|
|
43 | + # effect. For applications using multiple databases, this new API provides | ||
|
|
44 | + # support for granular connection swapping. | ||
|
|
45 | + # Rails.application.config.active_record.legacy_connection_handling = false | ||
|
|
46 | + | ||
|
|
47 | + # Make `form_with` generate non-remote forms by default. | ||
|
|
48 | + # Rails.application.config.action_view.form_with_generates_remote_forms = false | ||
|
|
49 | + | ||
|
|
50 | + # Set the default queue name for the analysis job to the queue adapter default. | ||
|
|
51 | + # Rails.application.config.active_storage.queues.analysis = nil | ||
|
|
52 | + | ||
|
|
53 | + # Set the default queue name for the purge job to the queue adapter default. | ||
|
|
54 | + # Rails.application.config.active_storage.queues.purge = nil | ||
|
|
55 | + | ||
|
|
56 | + # Set the default queue name for the incineration job to the queue adapter default. | ||
|
|
57 | + # Rails.application.config.action_mailbox.queues.incineration = nil | ||
|
|
58 | + | ||
|
|
59 | + # Set the default queue name for the routing job to the queue adapter default. | ||
|
|
60 | + # Rails.application.config.action_mailbox.queues.routing = nil | ||
|
|
61 | + | ||
|
|
62 | + # Set the default queue name for the mail deliver job to the queue adapter default. | ||
|
|
63 | + # Rails.application.config.action_mailer.deliver_later_queue_name = nil | ||
|
|
64 | + | ||
|
|
65 | + # Generate a `Link` header that gives a hint to modern browsers about | ||
|
|
66 | + # preloading assets when using `javascript_include_tag` and `stylesheet_link_tag`. | ||
|
|
67 | + # Rails.application.config.action_view.preload_links_header = true |
@@ -0,0 +1,117 | |||||
|
|
1 | + # Be sure to restart your server when you modify this file. | ||
|
|
2 | + # | ||
|
|
3 | + # This file eases your Rails 7.0 framework defaults upgrade. | ||
|
|
4 | + # | ||
|
|
5 | + # Uncomment each configuration one by one to switch to the new default. | ||
|
|
6 | + # Once your application is ready to run with all new defaults, you can remove | ||
|
|
7 | + # this file and set the `config.load_defaults` to `7.0`. | ||
|
|
8 | + # | ||
|
|
9 | + # Read the Guide for Upgrading Ruby on Rails for more info on each option. | ||
|
|
10 | + # https://guides.rubyonrails.org/upgrading_ruby_on_rails.html | ||
|
|
11 | + | ||
|
|
12 | + # `button_to` view helper will render `<button>` element, regardless of whether | ||
|
|
13 | + # or not the content is passed as the first argument or as a block. | ||
|
|
14 | + # Rails.application.config.action_view.button_to_generates_button_tag = true | ||
|
|
15 | + | ||
|
|
16 | + # `stylesheet_link_tag` view helper will not render the media attribute by default. | ||
|
|
17 | + # Rails.application.config.action_view.apply_stylesheet_media_default = false | ||
|
|
18 | + | ||
|
|
19 | + # Change the digest class for the key generators to `OpenSSL::Digest::SHA256`. | ||
|
|
20 | + # Changing this default means invalidate all encrypted messages generated by | ||
|
|
21 | + # your application and, all the encrypted cookies. Only change this after you | ||
|
|
22 | + # rotated all the messages using the key rotator. | ||
|
|
23 | + # | ||
|
|
24 | + # See upgrading guide for more information on how to build a rotator. | ||
|
|
25 | + # https://guides.rubyonrails.org/v7.0/upgrading_ruby_on_rails.html | ||
|
|
26 | + # Rails.application.config.active_support.key_generator_hash_digest_class = OpenSSL::Digest::SHA256 | ||
|
|
27 | + | ||
|
|
28 | + # Change the digest class for ActiveSupport::Digest. | ||
|
|
29 | + # Changing this default means that for example Etags change and | ||
|
|
30 | + # various cache keys leading to cache invalidation. | ||
|
|
31 | + # Rails.application.config.active_support.hash_digest_class = OpenSSL::Digest::SHA256 | ||
|
|
32 | + | ||
|
|
33 | + # Don't override ActiveSupport::TimeWithZone.name and use the default Ruby | ||
|
|
34 | + # implementation. | ||
|
|
35 | + # Rails.application.config.active_support.remove_deprecated_time_with_zone_name = true | ||
|
|
36 | + | ||
|
|
37 | + # Change the format of the cache entry. | ||
|
|
38 | + # Changing this default means that all new cache entries added to the cache | ||
|
|
39 | + # will have a different format that is not supported by Rails 6.1 applications. | ||
|
|
40 | + # Only change this value after your application is fully deployed to Rails 7.0 | ||
|
|
41 | + # and you have no plans to rollback. | ||
|
|
42 | + # Rails.application.config.active_support.cache_format_version = 7.0 | ||
|
|
43 | + | ||
|
|
44 | + # Calls `Rails.application.executor.wrap` around test cases. | ||
|
|
45 | + # This makes test cases behave closer to an actual request or job. | ||
|
|
46 | + # Several features that are normally disabled in test, such as Active Record query cache | ||
|
|
47 | + # and asynchronous queries will then be enabled. | ||
|
|
48 | + # Rails.application.config.active_support.executor_around_test_case = true | ||
|
|
49 | + | ||
|
|
50 | + # Define the isolation level of most of Rails internal state. | ||
|
|
51 | + # If you use a fiber based server or job processor, you should set it to `:fiber`. | ||
|
|
52 | + # Otherwise the default of `:thread` if preferable. | ||
|
|
53 | + # Rails.application.config.active_support.isolation_level = :thread | ||
|
|
54 | + | ||
|
|
55 | + # Set both the `:open_timeout` and `:read_timeout` values for `:smtp` delivery method. | ||
|
|
56 | + # Rails.application.config.action_mailer.smtp_timeout = 5 | ||
|
|
57 | + | ||
|
|
58 | + # The ActiveStorage video previewer will now use scene change detection to generate | ||
|
|
59 | + # better preview images (rather than the previous default of using the first frame | ||
|
|
60 | + # of the video). | ||
|
|
61 | + # Rails.application.config.active_storage.video_preview_arguments = | ||
|
|
62 | + # "-vf 'select=eq(n\\,0)+eq(key\\,1)+gt(scene\\,0.015),loop=loop=-1:size=2,trim=start_frame=1' -frames:v 1 -f image2" | ||
|
|
63 | + | ||
|
|
64 | + # Automatically infer `inverse_of` for associations with a scope. | ||
|
|
65 | + # Rails.application.config.active_record.automatic_scope_inversing = true | ||
|
|
66 | + | ||
|
|
67 | + # Raise when running tests if fixtures contained foreign key violations | ||
|
|
68 | + # Rails.application.config.active_record.verify_foreign_keys_for_fixtures = true | ||
|
|
69 | + | ||
|
|
70 | + # Disable partial inserts. | ||
|
|
71 | + # This default means that all columns will be referenced in INSERT queries | ||
|
|
72 | + # regardless of whether they have a default or not. | ||
|
|
73 | + # Rails.application.config.active_record.partial_inserts = false | ||
|
|
74 | + # | ||
|
|
75 | + # Protect from open redirect attacks in `redirect_back_or_to` and `redirect_to`. | ||
|
|
76 | + # Rails.application.config.action_controller.raise_on_open_redirects = true | ||
|
|
77 | + | ||
|
|
78 | + # Change the variant processor for Active Storage. | ||
|
|
79 | + # Changing this default means updating all places in your code that | ||
|
|
80 | + # generate variants to use image processing macros and ruby-vips | ||
|
|
81 | + # operations. See the upgrading guide for detail on the changes required. | ||
|
|
82 | + # The `:mini_magick` option is not deprecated; it's fine to keep using it. | ||
|
|
83 | + # Rails.application.config.active_storage.variant_processor = :vips | ||
|
|
84 | + | ||
|
|
85 | + # If you're upgrading and haven't set `cookies_serializer` previously, your cookie serializer | ||
|
|
86 | + # was `:marshal`. Convert all cookies to JSON, using the `:hybrid` formatter. | ||
|
|
87 | + # | ||
|
|
88 | + # If you're confident all your cookies are JSON formatted, you can switch to the `:json` formatter. | ||
|
|
89 | + # | ||
|
|
90 | + # Continue to use `:marshal` for backward-compatibility with old cookies. | ||
|
|
91 | + # | ||
|
|
92 | + # If you have configured the serializer elsewhere, you can remove this. | ||
|
|
93 | + # | ||
|
|
94 | + # See https://guides.rubyonrails.org/action_controller_overview.html#cookies for more information. | ||
|
|
95 | + # Rails.application.config.action_dispatch.cookies_serializer = :hybrid | ||
|
|
96 | + | ||
|
|
97 | + # Enable parameter wrapping for JSON. | ||
|
|
98 | + # Previously this was set in an initializer. It's fine to keep using that initializer if you've customized it. | ||
|
|
99 | + # To disable parameter wrapping entirely, set this config to `false`. | ||
|
|
100 | + # Rails.application.config.action_controller.wrap_parameters_by_default = true | ||
|
|
101 | + | ||
|
|
102 | + # Specifies whether generated namespaced UUIDs follow the RFC 4122 standard for namespace IDs provided as a | ||
|
|
103 | + # `String` to `Digest::UUID.uuid_v3` or `Digest::UUID.uuid_v5` method calls. | ||
|
|
104 | + # | ||
|
|
105 | + # See https://guides.rubyonrails.org/configuring.html#config-active-support-use-rfc4122-namespaced-uuids for | ||
|
|
106 | + # more information. | ||
|
|
107 | + # Rails.application.config.active_support.use_rfc4122_namespaced_uuids = true | ||
|
|
108 | + | ||
|
|
109 | + # Change the default headers to disable browsers' flawed legacy XSS protection. | ||
|
|
110 | + # Rails.application.config.action_dispatch.default_headers = { | ||
|
|
111 | + # "X-Frame-Options" => "SAMEORIGIN", | ||
|
|
112 | + # "X-XSS-Protection" => "0", | ||
|
|
113 | + # "X-Content-Type-Options" => "nosniff", | ||
|
|
114 | + # "X-Download-Options" => "noopen", | ||
|
|
115 | + # "X-Permitted-Cross-Domain-Policies" => "none", | ||
|
|
116 | + # "Referrer-Policy" => "strict-origin-when-cross-origin" | ||
|
|
117 | + # } |
@@ -0,0 +1,11 | |||||
|
|
1 | + # Define an application-wide HTTP permissions policy. For further | ||
|
|
2 | + # information see https://developers.google.com/web/updates/2018/06/feature-policy | ||
|
|
3 | + # | ||
|
|
4 | + # Rails.application.config.permissions_policy do |f| | ||
|
|
5 | + # f.camera :none | ||
|
|
6 | + # f.gyroscope :none | ||
|
|
7 | + # f.microphone :none | ||
|
|
8 | + # f.usb :none | ||
|
|
9 | + # f.fullscreen :self | ||
|
|
10 | + # f.payment :self, "https://secure.example.com" | ||
|
|
11 | + # end |
@@ -0,0 +1,89 | |||||
|
|
1 | + def display_manual | ||
|
|
2 | + puts <<-USAGE | ||
|
|
3 | + subtask_score problem last_submision_id sub1_score,sub2_score,sub3_score,.... | ||
|
|
4 | + example: | ||
|
|
5 | + rails runner subtask_score.rb o64_may26_train 102983 10,15,18,18,39 | ||
|
|
6 | + USAGE | ||
|
|
7 | + end | ||
|
|
8 | + | ||
|
|
9 | + def process_options | ||
|
|
10 | + res = {} | ||
|
|
11 | + if ARGV.length == 0 | ||
|
|
12 | + display_manual | ||
|
|
13 | + exit(1) | ||
|
|
14 | + end | ||
|
|
15 | + | ||
|
|
16 | + res[:prob] = ARGV[0] | ||
|
|
17 | + res[:last_sub_id] = ARGV[1].to_i | ||
|
|
18 | + res[:score] = ARGV[2].split(',').map {|x| x.to_i} | ||
|
|
19 | + return res | ||
|
|
20 | + end | ||
|
|
21 | + | ||
|
|
22 | + def process_subtask(st) | ||
|
|
23 | + return true if /^P+$/.match(st) | ||
|
|
24 | + return false | ||
|
|
25 | + end | ||
|
|
26 | + | ||
|
|
27 | + def process_comment(st) | ||
|
|
28 | + res = [] | ||
|
|
29 | + loop do | ||
|
|
30 | + break if st.length == 0 | ||
|
|
31 | + if st[0] == '[' | ||
|
|
32 | + #subtask | ||
|
|
33 | + subtask = st.slice!(0..(st.index(']'))) | ||
|
|
34 | + res << process_subtask(subtask[1..-2]) | ||
|
|
35 | + else #not subtask | ||
|
|
36 | + res << process_subtask(st[0]) | ||
|
|
37 | + st.slice!(0) | ||
|
|
38 | + end | ||
|
|
39 | + end | ||
|
|
40 | + return res | ||
|
|
41 | + end | ||
|
|
42 | + | ||
|
|
43 | + options = process_options | ||
|
|
44 | + scoring = options[:score] | ||
|
|
45 | + puts "doing problem #{options[:prob]}" | ||
|
|
46 | + puts " consider only submission with id not more than #{options[:last_sub_id]}" | ||
|
|
47 | + scoring.each.with_index { |x,i| puts " subtask#{i}: #{x}" } | ||
|
|
48 | + | ||
|
|
49 | + res = {} | ||
|
|
50 | + | ||
|
|
51 | + p = Problem.where(name: options[:prob]).first | ||
|
|
52 | + unless p | ||
|
|
53 | + puts "Problem #{options[:prob]} not found" | ||
|
|
54 | + exit(2) | ||
|
|
55 | + end | ||
|
|
56 | + | ||
|
|
57 | + p.submissions.where('id <= ?',options[:last_sub_id]).order(:id).each do |sub| | ||
|
|
58 | + unless sub.graded_at | ||
|
|
59 | + puts "skip ungraded submission #{sub.id}" | ||
|
|
60 | + next | ||
|
|
61 | + end | ||
|
|
62 | + if sub.grader_comment == "compilation error" | ||
|
|
63 | + puts "skip uncompilable submission #{sub.id}" | ||
|
|
64 | + next | ||
|
|
65 | + end | ||
|
|
66 | + | ||
|
|
67 | + comment = sub.grader_comment.clone | ||
|
|
68 | + comment_result = process_comment(comment) | ||
|
|
69 | + if comment_result.length != scoring.length | ||
|
|
70 | + puts "ERROR!!! subtask of submission #{sub.id} does not match scoring input" | ||
|
|
71 | + end | ||
|
|
72 | + | ||
|
|
73 | + puts "processing submission #{sub.id} with comment = #{sub.grader_comment} result is #{comment_result}" | ||
|
|
74 | + current = res[sub.user.login] || [false] * scoring.length | ||
|
|
75 | + current.each.with_index do |x,i| | ||
|
|
76 | + if !x && comment_result[i] | ||
|
|
77 | + puts " user #{sub.user.login} just got subtask #{i+1} from this submission" | ||
|
|
78 | + current[i] = true | ||
|
|
79 | + end | ||
|
|
80 | + end | ||
|
|
81 | + res[sub.user.login] = current | ||
|
|
82 | + end | ||
|
|
83 | + | ||
|
|
84 | + puts "----summary-----" | ||
|
|
85 | + res.each do |u,r| | ||
|
|
86 | + score = scoring.clone | ||
|
|
87 | + r.each.with_index { |pass,i| score[i] = 0 unless pass } | ||
|
|
88 | + puts "#{u} #{score.sum} [#{score.join(',')}]" | ||
|
|
89 | + end |
@@ -1,13 +1,19 | |||||
|
1 | source 'https://rubygems.org' |
|
1 | source 'https://rubygems.org' |
|
2 | git_source(:github) { |repo| "https://github.com/#{repo}.git" } |
|
2 | git_source(:github) { |repo| "https://github.com/#{repo}.git" } |
|
3 |
|
3 | ||
|
|
4 | + ruby '3.1.0' | ||
|
|
5 | + | ||
|
4 | #rails |
|
6 | #rails |
|
5 |
- gem 'rails', '~> |
|
7 | + gem 'rails', '~>7.0' |
|
|
8 | + | ||
|
|
9 | + # The original asset pipeline for Rails [https://github.com/rails/sprockets-rails] | ||
|
|
10 | + gem "sprockets-rails" | ||
|
|
11 | + | ||
|
6 | gem 'activerecord-session_store' |
|
12 | gem 'activerecord-session_store' |
|
7 | gem 'puma' |
|
13 | gem 'puma' |
|
8 |
|
14 | ||
|
9 | # Reduces boot times through caching; required in config/boot.rb |
|
15 | # Reduces boot times through caching; required in config/boot.rb |
|
10 |
- gem 'bootsnap' |
|
16 | + gem 'bootsnap', require: false |
|
11 |
|
17 | ||
|
12 | # Bundle edge Rails instead: |
|
18 | # Bundle edge Rails instead: |
|
13 | # gem 'rails', :git => 'git://github.com/rails/rails.git' |
|
19 | # gem 'rails', :git => 'git://github.com/rails/rails.git' |
@@ -41,11 +47,11 | |||||
|
41 | # Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks |
|
47 | # Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks |
|
42 | #gem 'turbolinks', '~> 5' |
|
48 | #gem 'turbolinks', '~> 5' |
|
43 | # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder |
|
49 | # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder |
|
44 |
- gem 'jbuilder' |
|
50 | + gem 'jbuilder' |
|
45 |
|
51 | ||
|
46 |
|
52 | ||
|
47 | #in-place editor |
|
53 | #in-place editor |
|
48 | - gem 'best_in_place', '~> 3.0.1' |
|
54 | + gem 'best_in_place', git: "https://github.com/mmotherwell/best_in_place" |
|
49 |
|
55 | ||
|
50 | # jquery addition |
|
56 | # jquery addition |
|
51 | gem 'jquery-rails' |
|
57 | gem 'jquery-rails' |
@@ -93,7 +99,7 | |||||
|
93 |
|
99 | ||
|
94 | group :development, :test do |
|
100 | group :development, :test do |
|
95 | # Call 'byebug' anywhere in the code to stop execution and get a debugger console |
|
101 | # Call 'byebug' anywhere in the code to stop execution and get a debugger console |
|
96 |
- gem ' |
|
102 | + gem 'debug', platforms: [:mri, :mingw, :x64_mingw] |
|
97 | end |
|
103 | end |
|
98 |
|
104 | ||
|
99 | group :development do |
|
105 | group :development do |
@@ -103,14 +109,15 | |||||
|
103 | # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring |
|
109 | # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring |
|
104 | gem 'spring' |
|
110 | gem 'spring' |
|
105 | gem 'spring-watcher-listen', '~> 2.0.0' |
|
111 | gem 'spring-watcher-listen', '~> 2.0.0' |
|
|
112 | + | ||
|
|
113 | + # Add speed badges [https://github.com/MiniProfiler/rack-mini-profiler] | ||
|
|
114 | + # gem "rack-mini-profiler" | ||
|
106 | end |
|
115 | end |
|
107 |
|
116 | ||
|
108 | group :test do |
|
117 | group :test do |
|
109 | # Adds support for Capybara system testing and selenium driver |
|
118 | # Adds support for Capybara system testing and selenium driver |
|
110 |
- gem 'capybara' |
|
119 | + gem 'capybara' |
|
111 | gem 'selenium-webdriver' |
|
120 | gem 'selenium-webdriver' |
|
112 | - # Easy installation and use of chromedriver to run system tests with Chrome |
|
121 | + gem 'webdrivers' |
|
113 | - #gem 'chromedriver-helper' |
|
||
|
114 | - gem 'webdriver' |
|
||
|
115 | end |
|
122 | end |
|
116 |
|
123 |
@@ -1,211 +1,265 | |||||
|
|
1 | + GIT | ||
|
|
2 | + remote: https://github.com/mmotherwell/best_in_place | ||
|
|
3 | + revision: 88eb3052623a9a6cd346864d2aca05021c2f80d0 | ||
|
|
4 | + specs: | ||
|
|
5 | + best_in_place (3.1.1) | ||
|
|
6 | + actionpack (>= 3.2) | ||
|
|
7 | + railties (>= 3.2) | ||
|
|
8 | + | ||
|
1 | GEM |
|
9 | GEM |
|
2 | remote: https://rubygems.org/ |
|
10 | remote: https://rubygems.org/ |
|
3 | specs: |
|
11 | specs: |
|
4 |
- RubyInline (3.12. |
|
12 | + RubyInline (3.12.5) |
|
5 | ZenTest (~> 4.3) |
|
13 | ZenTest (~> 4.3) |
|
6 |
- ZenTest (4.1 |
|
14 | + ZenTest (4.12.0) |
|
7 |
- ace-rails-ap (4. |
|
15 | + ace-rails-ap (4.4) |
|
8 |
- actioncable ( |
|
16 | + actioncable (7.0.1) |
|
9 |
- actionpack (= |
|
17 | + actionpack (= 7.0.1) |
|
|
18 | + activesupport (= 7.0.1) | ||
|
10 | nio4r (~> 2.0) |
|
19 | nio4r (~> 2.0) |
|
11 | websocket-driver (>= 0.6.1) |
|
20 | websocket-driver (>= 0.6.1) |
|
12 |
- actionmail |
|
21 | + actionmailbox (7.0.1) |
|
13 |
- actionpack (= |
|
22 | + actionpack (= 7.0.1) |
|
14 |
- acti |
|
23 | + activejob (= 7.0.1) |
|
15 |
- active |
|
24 | + activerecord (= 7.0.1) |
|
|
25 | + activestorage (= 7.0.1) | ||
|
|
26 | + activesupport (= 7.0.1) | ||
|
|
27 | + mail (>= 2.7.1) | ||
|
|
28 | + net-imap | ||
|
|
29 | + net-pop | ||
|
|
30 | + net-smtp | ||
|
|
31 | + actionmailer (7.0.1) | ||
|
|
32 | + actionpack (= 7.0.1) | ||
|
|
33 | + actionview (= 7.0.1) | ||
|
|
34 | + activejob (= 7.0.1) | ||
|
|
35 | + activesupport (= 7.0.1) | ||
|
16 | mail (~> 2.5, >= 2.5.4) |
|
36 | mail (~> 2.5, >= 2.5.4) |
|
|
37 | + net-imap | ||
|
|
38 | + net-pop | ||
|
|
39 | + net-smtp | ||
|
17 | rails-dom-testing (~> 2.0) |
|
40 | rails-dom-testing (~> 2.0) |
|
18 |
- actionpack ( |
|
41 | + actionpack (7.0.1) |
|
19 |
- actionview (= |
|
42 | + actionview (= 7.0.1) |
|
20 |
- activesupport (= |
|
43 | + activesupport (= 7.0.1) |
|
21 |
- rack (~> 2.0, >= 2. |
|
44 | + rack (~> 2.0, >= 2.2.0) |
|
22 | rack-test (>= 0.6.3) |
|
45 | rack-test (>= 0.6.3) |
|
23 | rails-dom-testing (~> 2.0) |
|
46 | rails-dom-testing (~> 2.0) |
|
24 |
- rails-html-sanitizer (~> 1.0, >= 1. |
|
47 | + rails-html-sanitizer (~> 1.0, >= 1.2.0) |
|
25 |
- action |
|
48 | + actiontext (7.0.1) |
|
26 |
- acti |
|
49 | + actionpack (= 7.0.1) |
|
|
50 | + activerecord (= 7.0.1) | ||
|
|
51 | + activestorage (= 7.0.1) | ||
|
|
52 | + activesupport (= 7.0.1) | ||
|
|
53 | + globalid (>= 0.6.0) | ||
|
|
54 | + nokogiri (>= 1.8.5) | ||
|
|
55 | + actionview (7.0.1) | ||
|
|
56 | + activesupport (= 7.0.1) | ||
|
27 | builder (~> 3.1) |
|
57 | builder (~> 3.1) |
|
28 | erubi (~> 1.4) |
|
58 | erubi (~> 1.4) |
|
29 | rails-dom-testing (~> 2.0) |
|
59 | rails-dom-testing (~> 2.0) |
|
30 |
- rails-html-sanitizer (~> 1. |
|
60 | + rails-html-sanitizer (~> 1.1, >= 1.2.0) |
|
31 |
- activejob ( |
|
61 | + activejob (7.0.1) |
|
32 |
- activesupport (= |
|
62 | + activesupport (= 7.0.1) |
|
33 | globalid (>= 0.3.6) |
|
63 | globalid (>= 0.3.6) |
|
34 |
- activemodel ( |
|
64 | + activemodel (7.0.1) |
|
35 |
- activesupport (= |
|
65 | + activesupport (= 7.0.1) |
|
36 |
- activerecord ( |
|
66 | + activerecord (7.0.1) |
|
37 |
- activemodel (= |
|
67 | + activemodel (= 7.0.1) |
|
38 |
- activesupport (= |
|
68 | + activesupport (= 7.0.1) |
|
39 | - arel (>= 9.0) |
|
69 | + activerecord-session_store (2.0.0) |
|
40 | - activerecord-session_store (1.1.3) |
|
70 | + actionpack (>= 5.2.4.1) |
|
41 |
- acti |
|
71 | + activerecord (>= 5.2.4.1) |
|
42 | - activerecord (>= 4.0) |
|
||
|
43 | multi_json (~> 1.11, >= 1.11.2) |
|
72 | multi_json (~> 1.11, >= 1.11.2) |
|
44 |
- rack (>= |
|
73 | + rack (>= 2.0.8, < 3) |
|
45 |
- railties (>= |
|
74 | + railties (>= 5.2.4.1) |
|
46 |
- activestorage ( |
|
75 | + activestorage (7.0.1) |
|
47 |
- actionpack (= |
|
76 | + actionpack (= 7.0.1) |
|
48 |
- active |
|
77 | + activejob (= 7.0.1) |
|
49 |
- |
|
78 | + activerecord (= 7.0.1) |
|
50 |
- activesupport ( |
|
79 | + activesupport (= 7.0.1) |
|
|
80 | + marcel (~> 1.0) | ||
|
|
81 | + mini_mime (>= 1.1.0) | ||
|
|
82 | + activesupport (7.0.1) | ||
|
51 | concurrent-ruby (~> 1.0, >= 1.0.2) |
|
83 | concurrent-ruby (~> 1.0, >= 1.0.2) |
|
52 |
- i18n (>= |
|
84 | + i18n (>= 1.6, < 2) |
|
53 |
- minitest ( |
|
85 | + minitest (>= 5.1) |
|
54 |
- tzinfo (~> |
|
86 | + tzinfo (~> 2.0) |
|
55 |
- addressable (2. |
|
87 | + addressable (2.8.0) |
|
56 | public_suffix (>= 2.0.2, < 5.0) |
|
88 | public_suffix (>= 2.0.2, < 5.0) |
|
57 | ansi (1.5.0) |
|
89 | ansi (1.5.0) |
|
58 | - arel (9.0.0) |
|
90 | + autoprefixer-rails (10.4.2.0) |
|
59 | - autoprefixer-rails (9.5.1) |
|
91 | + execjs (~> 2) |
|
60 | - execjs |
|
||
|
61 | - best_in_place (3.0.3) |
|
||
|
62 | - actionpack (>= 3.2) |
|
||
|
63 | - railties (>= 3.2) |
|
||
|
64 | bindex (0.8.1) |
|
92 | bindex (0.8.1) |
|
65 |
- bootsnap (1. |
|
93 | + bootsnap (1.9.4) |
|
66 | msgpack (~> 1.0) |
|
94 | msgpack (~> 1.0) |
|
67 | bootstrap-sass (3.4.1) |
|
95 | bootstrap-sass (3.4.1) |
|
68 | autoprefixer-rails (>= 5.2.1) |
|
96 | autoprefixer-rails (>= 5.2.1) |
|
69 | sassc (>= 2.0.0) |
|
97 | sassc (>= 2.0.0) |
|
70 |
- bootstrap-switch-rails (3.3. |
|
98 | + bootstrap-switch-rails (3.3.5) |
|
71 | bootstrap-toggle-rails (2.2.1.0) |
|
99 | bootstrap-toggle-rails (2.2.1.0) |
|
72 | bootstrap3-datetimepicker-rails (4.17.47) |
|
100 | bootstrap3-datetimepicker-rails (4.17.47) |
|
73 | momentjs-rails (>= 2.8.1) |
|
101 | momentjs-rails (>= 2.8.1) |
|
74 | builder (3.2.4) |
|
102 | builder (3.2.4) |
|
75 | - byebug (11.0.1) |
|
103 | + capybara (3.36.0) |
|
76 | - capybara (3.15.1) |
|
||
|
77 | addressable |
|
104 | addressable |
|
|
105 | + matrix | ||
|
78 | mini_mime (>= 0.1.3) |
|
106 | mini_mime (>= 0.1.3) |
|
79 | nokogiri (~> 1.8) |
|
107 | nokogiri (~> 1.8) |
|
80 | rack (>= 1.6.0) |
|
108 | rack (>= 1.6.0) |
|
81 | rack-test (>= 0.6.3) |
|
109 | rack-test (>= 0.6.3) |
|
82 |
- regexp_parser ( |
|
110 | + regexp_parser (>= 1.5, < 3.0) |
|
83 | xpath (~> 3.2) |
|
111 | xpath (~> 3.2) |
|
84 |
- childprocess ( |
|
112 | + childprocess (4.1.0) |
|
85 |
- coffee-rails ( |
|
113 | + coffee-rails (5.0.0) |
|
86 | coffee-script (>= 2.2.0) |
|
114 | coffee-script (>= 2.2.0) |
|
87 |
- railties (>= |
|
115 | + railties (>= 5.2.0) |
|
88 | coffee-script (2.4.1) |
|
116 | coffee-script (2.4.1) |
|
89 | coffee-script-source |
|
117 | coffee-script-source |
|
90 | execjs |
|
118 | execjs |
|
91 | coffee-script-source (1.12.2) |
|
119 | coffee-script-source (1.12.2) |
|
92 |
- concurrent-ruby (1.1. |
|
120 | + concurrent-ruby (1.1.9) |
|
93 | crass (1.0.6) |
|
121 | crass (1.0.6) |
|
|
122 | + debug (1.4.0) | ||
|
|
123 | + irb (>= 1.3.6) | ||
|
|
124 | + reline (>= 0.2.7) | ||
|
|
125 | + digest (3.1.0) | ||
|
94 | dynamic_form (1.1.4) |
|
126 | dynamic_form (1.1.4) |
|
95 |
- erubi (1. |
|
127 | + erubi (1.10.0) |
|
96 | erubis (2.7.0) |
|
128 | erubis (2.7.0) |
|
97 |
- execjs (2. |
|
129 | + execjs (2.8.1) |
|
98 |
- ffi (1.1 |
|
130 | + ffi (1.15.5) |
|
99 | fuzzy-string-match (1.0.1) |
|
131 | fuzzy-string-match (1.0.1) |
|
100 | RubyInline (>= 3.8.6) |
|
132 | RubyInline (>= 3.8.6) |
|
101 |
- globalid ( |
|
133 | + globalid (1.0.0) |
|
102 |
- activesupport (>= |
|
134 | + activesupport (>= 5.0) |
|
103 |
- haml (5. |
|
135 | + haml (5.2.2) |
|
104 | temple (>= 0.8.0) |
|
136 | temple (>= 0.8.0) |
|
105 | tilt |
|
137 | tilt |
|
106 |
- haml-rails ( |
|
138 | + haml-rails (2.0.1) |
|
107 |
- actionpack (>= |
|
139 | + actionpack (>= 5.1) |
|
108 |
- activesupport (>= |
|
140 | + activesupport (>= 5.1) |
|
109 | haml (>= 4.0.6, < 6.0) |
|
141 | haml (>= 4.0.6, < 6.0) |
|
110 | html2haml (>= 1.0.1) |
|
142 | html2haml (>= 1.0.1) |
|
111 |
- railties (>= |
|
143 | + railties (>= 5.1) |
|
112 | html2haml (2.2.0) |
|
144 | html2haml (2.2.0) |
|
113 | erubis (~> 2.7.0) |
|
145 | erubis (~> 2.7.0) |
|
114 | haml (>= 4.0, < 6) |
|
146 | haml (>= 4.0, < 6) |
|
115 | nokogiri (>= 1.6.0) |
|
147 | nokogiri (>= 1.6.0) |
|
116 | ruby_parser (~> 3.5) |
|
148 | ruby_parser (~> 3.5) |
|
117 |
- i18n (1.8. |
|
149 | + i18n (1.8.11) |
|
118 | concurrent-ruby (~> 1.0) |
|
150 | concurrent-ruby (~> 1.0) |
|
119 | in_place_editing (1.2.0) |
|
151 | in_place_editing (1.2.0) |
|
120 | - jbuilder (2.10.0) |
|
152 | + io-console (0.5.11) |
|
|
153 | + io-wait (0.2.1) | ||
|
|
154 | + irb (1.4.1) | ||
|
|
155 | + reline (>= 0.3.0) | ||
|
|
156 | + jbuilder (2.11.5) | ||
|
|
157 | + actionview (>= 5.0.0) | ||
|
121 | activesupport (>= 5.0.0) |
|
158 | activesupport (>= 5.0.0) |
|
122 | jquery-countdown-rails (2.0.2) |
|
159 | jquery-countdown-rails (2.0.2) |
|
123 |
- jquery-rails (4. |
|
160 | + jquery-rails (4.4.0) |
|
124 | rails-dom-testing (>= 1, < 3) |
|
161 | rails-dom-testing (>= 1, < 3) |
|
125 | railties (>= 4.2.0) |
|
162 | railties (>= 4.2.0) |
|
126 | thor (>= 0.14, < 2.0) |
|
163 | thor (>= 0.14, < 2.0) |
|
127 |
- jquery-tablesorter (1.2 |
|
164 | + jquery-tablesorter (1.27.2) |
|
128 |
- railties (>= 3.2 |
|
165 | + railties (>= 3.2) |
|
129 | jquery-ui-rails (6.0.1) |
|
166 | jquery-ui-rails (6.0.1) |
|
130 | railties (>= 3.2.16) |
|
167 | railties (>= 3.2.16) |
|
131 |
- listen (3. |
|
168 | + listen (3.0.8) |
|
132 | rb-fsevent (~> 0.9, >= 0.9.4) |
|
169 | rb-fsevent (~> 0.9, >= 0.9.4) |
|
133 | rb-inotify (~> 0.9, >= 0.9.7) |
|
170 | rb-inotify (~> 0.9, >= 0.9.7) |
|
134 | - ruby_dep (~> 1.2) |
|
171 | + loofah (2.13.0) |
|
135 | - loofah (2.4.0) |
|
||
|
136 | crass (~> 1.0.2) |
|
172 | crass (~> 1.0.2) |
|
137 | nokogiri (>= 1.5.9) |
|
173 | nokogiri (>= 1.5.9) |
|
138 | mail (2.7.1) |
|
174 | mail (2.7.1) |
|
139 | mini_mime (>= 0.1.1) |
|
175 | mini_mime (>= 0.1.1) |
|
140 |
- marcel ( |
|
176 | + marcel (1.0.2) |
|
141 | - mimemagic (~> 0.3.2) |
|
177 | + matrix (0.4.2) |
|
142 | method_source (1.0.0) |
|
178 | method_source (1.0.0) |
|
143 |
- mi |
|
179 | + mini_mime (1.1.2) |
|
144 |
- mini |
|
180 | + minitest (5.15.0) |
|
145 |
- mini |
|
181 | + minitest-reporters (1.5.0) |
|
146 | - minitest (5.14.0) |
|
||
|
147 | - minitest-reporters (1.3.6) |
|
||
|
148 | ansi |
|
182 | ansi |
|
149 | builder |
|
183 | builder |
|
150 | minitest (>= 5.0) |
|
184 | minitest (>= 5.0) |
|
151 | ruby-progressbar |
|
185 | ruby-progressbar |
|
152 |
- momentjs-rails (2.2 |
|
186 | + momentjs-rails (2.29.1.1) |
|
153 | railties (>= 3.1) |
|
187 | railties (>= 3.1) |
|
154 |
- msgpack (1. |
|
188 | + msgpack (1.4.2) |
|
155 |
- multi_json (1.1 |
|
189 | + multi_json (1.15.0) |
|
156 |
- mysql2 (0.5. |
|
190 | + mysql2 (0.5.3) |
|
157 | - nio4r (2.5.2) |
|
191 | + net-imap (0.2.3) |
|
158 | - nokogiri (1.10.9) |
|
192 | + digest |
|
159 | - mini_portile2 (~> 2.4.0) |
|
193 | + net-protocol |
|
160 | - public_suffix (4.0.3) |
|
194 | + strscan |
|
161 | - puma (4.3.3) |
|
195 | + net-pop (0.1.1) |
|
|
196 | + digest | ||
|
|
197 | + net-protocol | ||
|
|
198 | + timeout | ||
|
|
199 | + net-protocol (0.1.2) | ||
|
|
200 | + io-wait | ||
|
|
201 | + timeout | ||
|
|
202 | + net-smtp (0.3.1) | ||
|
|
203 | + digest | ||
|
|
204 | + net-protocol | ||
|
|
205 | + timeout | ||
|
|
206 | + nio4r (2.5.8) | ||
|
|
207 | + nokogiri (1.13.1-x86_64-linux) | ||
|
|
208 | + racc (~> 1.4) | ||
|
|
209 | + public_suffix (4.0.6) | ||
|
|
210 | + puma (5.5.2) | ||
|
162 | nio4r (~> 2.0) |
|
211 | nio4r (~> 2.0) |
|
163 |
- rac |
|
212 | + racc (1.6.0) |
|
|
213 | + rack (2.2.3) | ||
|
164 | rack-test (1.1.0) |
|
214 | rack-test (1.1.0) |
|
165 | rack (>= 1.0, < 3) |
|
215 | rack (>= 1.0, < 3) |
|
166 |
- rails ( |
|
216 | + rails (7.0.1) |
|
167 |
- actioncable (= |
|
217 | + actioncable (= 7.0.1) |
|
168 |
- actionmail |
|
218 | + actionmailbox (= 7.0.1) |
|
169 |
- action |
|
219 | + actionmailer (= 7.0.1) |
|
170 |
- action |
|
220 | + actionpack (= 7.0.1) |
|
171 |
- acti |
|
221 | + actiontext (= 7.0.1) |
|
172 |
- acti |
|
222 | + actionview (= 7.0.1) |
|
173 |
- active |
|
223 | + activejob (= 7.0.1) |
|
174 |
- active |
|
224 | + activemodel (= 7.0.1) |
|
175 |
- active |
|
225 | + activerecord (= 7.0.1) |
|
176 | - bundler (>= 1.3.0) |
|
226 | + activestorage (= 7.0.1) |
|
177 |
- |
|
227 | + activesupport (= 7.0.1) |
|
178 | - sprockets-rails (>= 2.0.0) |
|
228 | + bundler (>= 1.15.0) |
|
179 | - rails-controller-testing (1.0.4) |
|
229 | + railties (= 7.0.1) |
|
180 | - actionpack (>= 5.0.1.x) |
|
230 | + rails-controller-testing (1.0.5) |
|
181 |
- action |
|
231 | + actionpack (>= 5.0.1.rc1) |
|
182 |
- acti |
|
232 | + actionview (>= 5.0.1.rc1) |
|
|
233 | + activesupport (>= 5.0.1.rc1) | ||
|
183 | rails-dom-testing (2.0.3) |
|
234 | rails-dom-testing (2.0.3) |
|
184 | activesupport (>= 4.2.0) |
|
235 | activesupport (>= 4.2.0) |
|
185 | nokogiri (>= 1.6) |
|
236 | nokogiri (>= 1.6) |
|
186 |
- rails-html-sanitizer (1. |
|
237 | + rails-html-sanitizer (1.4.2) |
|
187 | loofah (~> 2.3) |
|
238 | loofah (~> 2.3) |
|
188 |
- rails_bootstrap_sortable (2.0. |
|
239 | + rails_bootstrap_sortable (2.0.7) |
|
189 | momentjs-rails (>= 2.8.3) |
|
240 | momentjs-rails (>= 2.8.3) |
|
190 |
- railties ( |
|
241 | + railties (7.0.1) |
|
191 |
- actionpack (= |
|
242 | + actionpack (= 7.0.1) |
|
192 |
- activesupport (= |
|
243 | + activesupport (= 7.0.1) |
|
193 | method_source |
|
244 | method_source |
|
194 |
- rake (>= |
|
245 | + rake (>= 12.2) |
|
195 |
- thor (> |
|
246 | + thor (~> 1.0) |
|
196 | - rake (13.0.1) |
|
247 | + zeitwerk (~> 2.5) |
|
197 | - rb-fsevent (0.10.3) |
|
248 | + rake (13.0.6) |
|
198 |
- rb- |
|
249 | + rb-fsevent (0.11.0) |
|
|
250 | + rb-inotify (0.10.1) | ||
|
199 | ffi (~> 1.0) |
|
251 | ffi (~> 1.0) |
|
200 |
- rdiscount (2.2.0. |
|
252 | + rdiscount (2.2.0.2) |
|
201 |
- regexp_parser ( |
|
253 | + regexp_parser (2.2.0) |
|
202 |
- r |
|
254 | + reline (0.3.1) |
|
203 | - ruby-progressbar (1.10.0) |
|
255 | + io-console (~> 0.5) |
|
204 | - ruby_dep (1.5.0) |
|
256 | + rexml (3.2.5) |
|
205 |
- r |
|
257 | + rouge (3.27.0) |
|
206 | - sexp_processor (~> 4.9) |
|
258 | + ruby-progressbar (1.11.0) |
|
207 |
- ruby |
|
259 | + ruby_parser (3.18.1) |
|
208 | - sassc (2.2.1) |
|
260 | + sexp_processor (~> 4.16) |
|
|
261 | + rubyzip (2.3.2) | ||
|
|
262 | + sassc (2.4.0) | ||
|
209 | ffi (~> 1.9) |
|
263 | ffi (~> 1.9) |
|
210 | sassc-rails (2.1.2) |
|
264 | sassc-rails (2.1.2) |
|
211 | railties (>= 4.0.0) |
|
265 | railties (>= 4.0.0) |
@@ -213,73 +267,77 | |||||
|
213 | sprockets (> 3.0) |
|
267 | sprockets (> 3.0) |
|
214 | sprockets-rails |
|
268 | sprockets-rails |
|
215 | tilt |
|
269 | tilt |
|
216 | - select2-rails (4.0.3) |
|
270 | + select2-rails (4.0.13) |
|
217 | - thor (~> 0.14) |
|
271 | + selenium-webdriver (4.1.0) |
|
218 | - selenium-webdriver (3.142.7) |
|
272 | + childprocess (>= 0.5, < 5.0) |
|
219 | - childprocess (>= 0.5, < 4.0) |
|
273 | + rexml (~> 3.2, >= 3.2.5) |
|
220 | rubyzip (>= 1.2.2) |
|
274 | rubyzip (>= 1.2.2) |
|
221 |
- sexp_processor (4.1 |
|
275 | + sexp_processor (4.16.0) |
|
222 |
- simple_form (5. |
|
276 | + simple_form (5.1.0) |
|
223 |
- actionpack (>= 5. |
|
277 | + actionpack (>= 5.2) |
|
224 |
- activemodel (>= 5. |
|
278 | + activemodel (>= 5.2) |
|
225 |
- spring (2. |
|
279 | + spring (2.1.1) |
|
226 | - activesupport (>= 4.2) |
|
||
|
227 | spring-watcher-listen (2.0.1) |
|
280 | spring-watcher-listen (2.0.1) |
|
228 | listen (>= 2.7, < 4.0) |
|
281 | listen (>= 2.7, < 4.0) |
|
229 | spring (>= 1.2, < 3.0) |
|
282 | spring (>= 1.2, < 3.0) |
|
230 |
- sprockets ( |
|
283 | + sprockets (4.0.2) |
|
231 | concurrent-ruby (~> 1.0) |
|
284 | concurrent-ruby (~> 1.0) |
|
232 | rack (> 1, < 3) |
|
285 | rack (> 1, < 3) |
|
233 |
- sprockets-rails (3. |
|
286 | + sprockets-rails (3.4.2) |
|
234 |
- actionpack (>= |
|
287 | + actionpack (>= 5.2) |
|
235 |
- activesupport (>= |
|
288 | + activesupport (>= 5.2) |
|
236 | sprockets (>= 3.0.0) |
|
289 | sprockets (>= 3.0.0) |
|
237 |
- sqlite3 (1.4. |
|
290 | + sqlite3 (1.4.2) |
|
238 | - temple (0.8.1) |
|
291 | + strscan (3.0.1) |
|
239 |
- t |
|
292 | + temple (0.8.2) |
|
240 |
- th |
|
293 | + thor (1.2.1) |
|
241 |
- tilt (2.0. |
|
294 | + tilt (2.0.10) |
|
242 |
- t |
|
295 | + timeout (0.2.0) |
|
243 | - thread_safe (~> 0.1) |
|
296 | + tzinfo (2.0.4) |
|
244 | - uglifier (4.1.20) |
|
297 | + concurrent-ruby (~> 1.0) |
|
|
298 | + uglifier (4.2.0) | ||
|
245 | execjs (>= 0.3.0, < 3) |
|
299 | execjs (>= 0.3.0, < 3) |
|
246 |
- web-console ( |
|
300 | + web-console (4.2.0) |
|
247 |
- actionview (>= |
|
301 | + actionview (>= 6.0.0) |
|
248 |
- activemodel (>= |
|
302 | + activemodel (>= 6.0.0) |
|
249 | bindex (>= 0.4.0) |
|
303 | bindex (>= 0.4.0) |
|
250 |
- railties (>= |
|
304 | + railties (>= 6.0.0) |
|
251 |
- webdriver (0 |
|
305 | + webdrivers (5.0.0) |
|
252 | - websocket-driver (0.7.1) |
|
306 | + nokogiri (~> 1.6) |
|
|
307 | + rubyzip (>= 1.3.0) | ||
|
|
308 | + selenium-webdriver (~> 4.0) | ||
|
|
309 | + websocket-driver (0.7.5) | ||
|
253 | websocket-extensions (>= 0.1.0) |
|
310 | websocket-extensions (>= 0.1.0) |
|
254 |
- websocket-extensions (0.1. |
|
311 | + websocket-extensions (0.1.5) |
|
255 | xpath (3.2.0) |
|
312 | xpath (3.2.0) |
|
256 | nokogiri (~> 1.8) |
|
313 | nokogiri (~> 1.8) |
|
257 | yaml_db (0.7.0) |
|
314 | yaml_db (0.7.0) |
|
258 | rails (>= 3.0) |
|
315 | rails (>= 3.0) |
|
259 | rake (>= 0.8.7) |
|
316 | rake (>= 0.8.7) |
|
|
317 | + zeitwerk (2.5.3) | ||
|
260 |
|
318 | ||
|
261 | PLATFORMS |
|
319 | PLATFORMS |
|
262 | - ruby |
|
320 | + x86_64-linux |
|
263 |
|
321 | ||
|
264 | DEPENDENCIES |
|
322 | DEPENDENCIES |
|
265 | ace-rails-ap |
|
323 | ace-rails-ap |
|
266 | activerecord-session_store |
|
324 | activerecord-session_store |
|
267 | autoprefixer-rails |
|
325 | autoprefixer-rails |
|
268 |
- best_in_place |
|
326 | + best_in_place! |
|
269 |
- bootsnap |
|
327 | + bootsnap |
|
270 | bootstrap-sass (~> 3.4.1) |
|
328 | bootstrap-sass (~> 3.4.1) |
|
271 | bootstrap-switch-rails |
|
329 | bootstrap-switch-rails |
|
272 | bootstrap-toggle-rails |
|
330 | bootstrap-toggle-rails |
|
273 | bootstrap3-datetimepicker-rails (~> 4.17.47) |
|
331 | bootstrap3-datetimepicker-rails (~> 4.17.47) |
|
274 | - byebug |
|
332 | + capybara |
|
275 | - capybara (>= 2.15) |
|
||
|
276 | coffee-rails |
|
333 | coffee-rails |
|
|
334 | + debug | ||
|
277 | dynamic_form |
|
335 | dynamic_form |
|
278 | fuzzy-string-match |
|
336 | fuzzy-string-match |
|
279 | haml |
|
337 | haml |
|
280 | haml-rails |
|
338 | haml-rails |
|
281 | in_place_editing |
|
339 | in_place_editing |
|
282 |
- jbuilder |
|
340 | + jbuilder |
|
283 | jquery-countdown-rails |
|
341 | jquery-countdown-rails |
|
284 | jquery-rails |
|
342 | jquery-rails |
|
285 | jquery-tablesorter |
|
343 | jquery-tablesorter |
@@ -290,7 +348,7 | |||||
|
290 | momentjs-rails (>= 2.9.0) |
|
348 | momentjs-rails (>= 2.9.0) |
|
291 | mysql2 |
|
349 | mysql2 |
|
292 | puma |
|
350 | puma |
|
293 |
- rails (~> |
|
351 | + rails (~> 7.0) |
|
294 | rails-controller-testing |
|
352 | rails-controller-testing |
|
295 | rails_bootstrap_sortable |
|
353 | rails_bootstrap_sortable |
|
296 | rdiscount |
|
354 | rdiscount |
@@ -301,11 +359,15 | |||||
|
301 | simple_form |
|
359 | simple_form |
|
302 | spring |
|
360 | spring |
|
303 | spring-watcher-listen (~> 2.0.0) |
|
361 | spring-watcher-listen (~> 2.0.0) |
|
|
362 | + sprockets-rails | ||
|
304 | sqlite3 |
|
363 | sqlite3 |
|
305 | uglifier |
|
364 | uglifier |
|
306 | web-console (>= 3.3.0) |
|
365 | web-console (>= 3.3.0) |
|
307 | - webdriver |
|
366 | + webdrivers |
|
308 | yaml_db |
|
367 | yaml_db |
|
309 |
|
368 | ||
|
|
369 | + RUBY VERSION | ||
|
|
370 | + ruby 3.1.0p0 | ||
|
|
371 | + | ||
|
310 | BUNDLED WITH |
|
372 | BUNDLED WITH |
|
311 | - 1.17.2 |
|
373 | + 2.3.3 |
@@ -45,13 +45,27 | |||||
|
45 | cafe@grader:~$ sudo apt-get update |
|
45 | cafe@grader:~$ sudo apt-get update |
|
46 | cafe@grader:~$ sudo apt-get install rvm |
|
46 | cafe@grader:~$ sudo apt-get install rvm |
|
47 |
|
47 | ||
|
48 | - This is very important. You have to logout and login again since RVM change a lots of system. |
|
48 | + We also need to add our user to the rvm group |
|
|
49 | + | ||
|
|
50 | + sudo usermod -a -G rvm $USER | ||
|
49 |
|
51 | ||
|
50 | - If you are using GUI version of Ubuntu, be sure to have Gnome Terminal (or any other terminal you are using) perform login every time. This can be done by mark the check box "Run command as a login shell" in Gnome terminal or by adding --login to bash. |
|
52 | + This is very important. |
|
|
53 | + 1. You have to reboot since RVM change a lots of system. | ||
|
|
54 | + 2. If you are using GUI version of Ubuntu, be sure to have Gnome Terminal (or any other terminal you are using) perform login every time. This can be done by mark the check box "Run command as a login shell" in Gnome terminal or by adding --login to bash. | ||
|
|
55 | + | ||
|
|
56 | + === 3. Install necessary package and nodejs | ||
|
51 |
|
57 | ||
|
52 | - === 3. Install necessary package |
|
58 | + First, we install required package via apt. |
|
|
59 | + | ||
|
|
60 | + cafe@grader:~$ sudo apt install libmysqlclient-dev default-jdk unzip php-cli apache2 dirmngr gnupg apache2-dev | ||
|
|
61 | + | ||
|
|
62 | + Since nodejs that comes with ubuntu 18.04 is very outdated, we need to install it manually. This follow the method outlined in https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-18-04 under *Installing Node.js with Apt Using a NodeSource PPA* | ||
|
53 |
|
63 | ||
|
54 | - cafe@grader:~$ sudo apt install libmysqlclient-dev default-jdk unzip nodejs php-cli apache2 dirmngr gnupg apache2-dev |
|
64 | + cd ~ |
|
|
65 | + curl -sL https://deb.nodesource.com/setup_17.x -o nodesource_setup.sh | ||
|
|
66 | + sudo bash nodesource_setup.sh | ||
|
|
67 | + sudo apt install nodejs | ||
|
|
68 | + | ||
|
55 |
|
69 | ||
|
56 | === 4. Install cafe-grader |
|
70 | === 4. Install cafe-grader |
|
57 |
|
71 |
@@ -0,0 +1,18 | |||||
|
|
1 | + table.graders tr { | ||
|
|
2 | + &.active { | ||
|
|
3 | + border: 1px solid black; | ||
|
|
4 | + background: lightgreen; | ||
|
|
5 | + text-align: center; | ||
|
|
6 | + } | ||
|
|
7 | + | ||
|
|
8 | + &.inactive { | ||
|
|
9 | + border: 1px solid black; | ||
|
|
10 | + background: #ffcccc; | ||
|
|
11 | + text-align: center; | ||
|
|
12 | + } | ||
|
|
13 | + } | ||
|
|
14 | + | ||
|
|
15 | + .submitbox .item { | ||
|
|
16 | + padding-right: 5px; | ||
|
|
17 | + float: left; | ||
|
|
18 | + } |
@@ -0,0 +1,15 | |||||
|
|
1 | + tr { | ||
|
|
2 | + &.available { | ||
|
|
3 | + background: #c0ffc0; | ||
|
|
4 | + } | ||
|
|
5 | + | ||
|
|
6 | + &.not-available { | ||
|
|
7 | + background: #ffc0c0; | ||
|
|
8 | + } | ||
|
|
9 | + } | ||
|
|
10 | + | ||
|
|
11 | + .import-log { | ||
|
|
12 | + background: lightgray; | ||
|
|
13 | + border: solid black 1px; | ||
|
|
14 | + padding: 10px; | ||
|
|
15 | + } |
@@ -1,4 +1,4 | |||||
|
1 | #!/usr/bin/env ruby |
|
1 | #!/usr/bin/env ruby |
|
2 |
- APP_PATH = File.expand_path( |
|
2 | + APP_PATH = File.expand_path("../config/application", __dir__) |
|
3 |
- require_relative |
|
3 | + require_relative "../config/boot" |
|
4 |
- require |
|
4 | + require "rails/commands" |
@@ -1,4 +1,4 | |||||
|
1 | #!/usr/bin/env ruby |
|
1 | #!/usr/bin/env ruby |
|
2 |
- require_relative |
|
2 | + require_relative "../config/boot" |
|
3 |
- require |
|
3 | + require "rake" |
|
4 | Rake.application.run |
|
4 | Rake.application.run |
@@ -1,36 +1,33 | |||||
|
1 | #!/usr/bin/env ruby |
|
1 | #!/usr/bin/env ruby |
|
2 |
- require |
|
2 | + require "fileutils" |
|
3 | - include FileUtils |
|
||
|
4 |
|
3 | ||
|
5 | # path to your application root. |
|
4 | # path to your application root. |
|
6 |
- APP_ROOT = File.expand_path( |
|
5 | + APP_ROOT = File.expand_path("..", __dir__) |
|
7 |
|
6 | ||
|
8 | def system!(*args) |
|
7 | def system!(*args) |
|
9 | system(*args) || abort("\n== Command #{args} failed ==") |
|
8 | system(*args) || abort("\n== Command #{args} failed ==") |
|
10 | end |
|
9 | end |
|
11 |
|
10 | ||
|
12 | - chdir APP_ROOT do |
|
11 | + FileUtils.chdir APP_ROOT do |
|
13 | - # This script is a starting point to setup your application. |
|
12 | + # This script is a way to set up or update your development environment automatically. |
|
|
13 | + # This script is idempotent, so that you can run it at any time and get an expectable outcome. | ||
|
14 | # Add necessary setup steps to this file. |
|
14 | # Add necessary setup steps to this file. |
|
15 |
|
15 | ||
|
16 |
- puts |
|
16 | + puts "== Installing dependencies ==" |
|
17 |
- system! |
|
17 | + system! "gem install bundler --conservative" |
|
18 |
- system( |
|
18 | + system("bundle check") || system!("bundle install") |
|
19 | - |
|
||
|
20 | - # Install JavaScript dependencies if using Yarn |
|
||
|
21 | - # system('bin/yarn') |
|
||
|
22 |
|
19 | ||
|
23 | # puts "\n== Copying sample files ==" |
|
20 | # puts "\n== Copying sample files ==" |
|
24 |
- # unless File.exist?( |
|
21 | + # unless File.exist?("config/database.yml") |
|
25 |
- # |
|
22 | + # FileUtils.cp "config/database.yml.sample", "config/database.yml" |
|
26 | # end |
|
23 | # end |
|
27 |
|
24 | ||
|
28 | puts "\n== Preparing database ==" |
|
25 | puts "\n== Preparing database ==" |
|
29 |
- system! |
|
26 | + system! "bin/rails db:prepare" |
|
30 |
|
27 | ||
|
31 | puts "\n== Removing old logs and tempfiles ==" |
|
28 | puts "\n== Removing old logs and tempfiles ==" |
|
32 |
- system! |
|
29 | + system! "bin/rails log:clear tmp:clear" |
|
33 |
|
30 | ||
|
34 | puts "\n== Restarting application server ==" |
|
31 | puts "\n== Restarting application server ==" |
|
35 |
- system! |
|
32 | + system! "bin/rails restart" |
|
36 | end |
|
33 | end |
@@ -1,9 +1,15 | |||||
|
1 | #!/usr/bin/env ruby |
|
1 | #!/usr/bin/env ruby |
|
2 | APP_ROOT = File.expand_path('..', __dir__) |
|
2 | APP_ROOT = File.expand_path('..', __dir__) |
|
3 | Dir.chdir(APP_ROOT) do |
|
3 | Dir.chdir(APP_ROOT) do |
|
4 | - begin |
|
4 | + yarn = ENV["PATH"].split(File::PATH_SEPARATOR). |
|
5 | - exec "yarnpkg", *ARGV |
|
5 | + select { |dir| File.expand_path(dir) != __dir__ }. |
|
6 | - rescue Errno::ENOENT |
|
6 | + product(["yarn", "yarn.cmd", "yarn.ps1"]). |
|
|
7 | + map { |dir, file| File.expand_path(file, dir) }. | ||
|
|
8 | + find { |file| File.executable?(file) } | ||
|
|
9 | + | ||
|
|
10 | + if yarn | ||
|
|
11 | + exec yarn, *ARGV | ||
|
|
12 | + else | ||
|
7 | $stderr.puts "Yarn executable was not detected in the system." |
|
13 | $stderr.puts "Yarn executable was not detected in the system." |
|
8 | $stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install" |
|
14 | $stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install" |
|
9 | exit 1 |
|
15 | exit 1 |
@@ -1,4 +1,6 | |||||
|
1 | # This file is used by Rack-based servers to start the application. |
|
1 | # This file is used by Rack-based servers to start the application. |
|
2 |
|
2 | ||
|
3 | - require ::File.expand_path('../config/environment', __FILE__) |
|
3 | + require_relative "config/environment" |
|
4 | - run CafeGrader::Application |
|
4 | + |
|
|
5 | + run Rails.application | ||
|
|
6 | + Rails.application.load_server |
@@ -1,4 +1,4 | |||||
|
1 |
- ENV[ |
|
1 | + ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__) |
|
2 |
|
2 | ||
|
3 |
- require |
|
3 | + require "bundler/setup" # Set up gems listed in the Gemfile. |
|
4 |
- require |
|
4 | + require "bootsnap/setup" # Speed up boot time by caching expensive operations. |
@@ -2,7 +2,7 | |||||
|
2 | adapter: async |
|
2 | adapter: async |
|
3 |
|
3 | ||
|
4 | test: |
|
4 | test: |
|
5 |
- adapter: |
|
5 | + adapter: test |
|
6 |
|
6 | ||
|
7 | production: |
|
7 | production: |
|
8 | adapter: redis |
|
8 | adapter: redis |
@@ -1,5 +1,5 | |||||
|
1 | # Load the Rails application. |
|
1 | # Load the Rails application. |
|
2 |
- require_relative |
|
2 | + require_relative "application" |
|
3 |
|
3 | ||
|
4 | # Initialize the Rails application. |
|
4 | # Initialize the Rails application. |
|
5 | Rails.application.initialize! |
|
5 | Rails.application.initialize! |
@@ -1,8 +1,10 | |||||
|
|
1 | + require "active_support/core_ext/integer/time" | ||
|
|
2 | + | ||
|
1 | Rails.application.configure do |
|
3 | Rails.application.configure do |
|
2 | # Settings specified here will take precedence over those in config/application.rb. |
|
4 | # Settings specified here will take precedence over those in config/application.rb. |
|
3 |
|
5 | ||
|
4 |
- # In the development environment your application's code is reloaded |
|
6 | + # In the development environment your application's code is reloaded any time |
|
5 |
- # |
|
7 | + # it changes. 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. |
|
8 | # since you don't have to restart the web server when you make code changes. |
|
7 | config.cache_classes = false |
|
9 | config.cache_classes = false |
|
8 |
|
10 | ||
@@ -12,14 +14,18 | |||||
|
12 | # Show full error reports. |
|
14 | # Show full error reports. |
|
13 | config.consider_all_requests_local = true |
|
15 | config.consider_all_requests_local = true |
|
14 |
|
16 | ||
|
|
17 | + # Enable server timing | ||
|
|
18 | + config.server_timing = true | ||
|
|
19 | + | ||
|
15 | # Enable/disable caching. By default caching is disabled. |
|
20 | # Enable/disable caching. By default caching is disabled. |
|
16 | # Run rails dev:cache to toggle caching. |
|
21 | # Run rails dev:cache to toggle caching. |
|
17 |
- if Rails.root.join( |
|
22 | + if Rails.root.join("tmp/caching-dev.txt").exist? |
|
18 | config.action_controller.perform_caching = true |
|
23 | config.action_controller.perform_caching = true |
|
|
24 | + config.action_controller.enable_fragment_cache_logging = true | ||
|
19 |
|
25 | ||
|
20 | config.cache_store = :memory_store |
|
26 | config.cache_store = :memory_store |
|
21 | config.public_file_server.headers = { |
|
27 | config.public_file_server.headers = { |
|
22 |
- |
|
28 | + "Cache-Control" => "public, max-age=#{2.days.to_i}" |
|
23 | } |
|
29 | } |
|
24 | else |
|
30 | else |
|
25 | config.action_controller.perform_caching = false |
|
31 | config.action_controller.perform_caching = false |
@@ -27,7 +33,7 | |||||
|
27 | config.cache_store = :null_store |
|
33 | config.cache_store = :null_store |
|
28 | end |
|
34 | end |
|
29 |
|
35 | ||
|
30 | - # Store uploaded files on the local file system (see config/storage.yml for options) |
|
36 | + # Store uploaded files on the local file system (see config/storage.yml for options). |
|
31 | config.active_storage.service = :local |
|
37 | config.active_storage.service = :local |
|
32 |
|
38 | ||
|
33 | # Don't care if the mailer can't send. |
|
39 | # Don't care if the mailer can't send. |
@@ -38,6 +44,12 | |||||
|
38 | # Print deprecation notices to the Rails logger. |
|
44 | # Print deprecation notices to the Rails logger. |
|
39 | config.active_support.deprecation = :log |
|
45 | config.active_support.deprecation = :log |
|
40 |
|
46 | ||
|
|
47 | + # Raise exceptions for disallowed deprecations. | ||
|
|
48 | + config.active_support.disallowed_deprecation = :raise | ||
|
|
49 | + | ||
|
|
50 | + # Tell Active Support which deprecation messages to disallow. | ||
|
|
51 | + config.active_support.disallowed_deprecation_warnings = [] | ||
|
|
52 | + | ||
|
41 | # Raise an error on page load if there are pending migrations. |
|
53 | # Raise an error on page load if there are pending migrations. |
|
42 | config.active_record.migration_error = :page_load |
|
54 | config.active_record.migration_error = :page_load |
|
43 |
|
55 | ||
@@ -52,10 +64,12 | |||||
|
52 | # Suppress logger output for asset requests. |
|
64 | # Suppress logger output for asset requests. |
|
53 | config.assets.quiet = true |
|
65 | config.assets.quiet = true |
|
54 |
|
66 | ||
|
55 | - # Raises error for missing translations |
|
67 | + # Raises error for missing translations. |
|
56 |
- # config. |
|
68 | + # config.i18n.raise_on_missing_translations = true |
|
57 |
|
69 | ||
|
58 | - # Use an evented file watcher to asynchronously detect changes in source code, |
|
70 | + # Annotate rendered view with file names. |
|
59 | - # routes, locales, etc. This feature depends on the listen gem. |
|
71 | + # config.action_view.annotate_rendered_view_with_filenames = true |
|
60 | - config.file_watcher = ActiveSupport::EventedFileUpdateChecker |
|
72 | + |
|
|
73 | + # Uncomment if you wish to allow Action Cable access from any origin. | ||
|
|
74 | + # config.action_cable.disable_request_forgery_protection = true | ||
|
61 | end |
|
75 | end |
@@ -1,3 +1,5 | |||||
|
|
1 | + require "active_support/core_ext/integer/time" | ||
|
|
2 | + | ||
|
1 | Rails.application.configure do |
|
3 | Rails.application.configure do |
|
2 | # Settings specified here will take precedence over those in config/application.rb. |
|
4 | # Settings specified here will take precedence over those in config/application.rb. |
|
3 |
|
5 | ||
@@ -20,38 +22,35 | |||||
|
20 |
|
22 | ||
|
21 | # Disable serving static files from the `/public` folder by default since |
|
23 | # Disable serving static files from the `/public` folder by default since |
|
22 | # Apache or NGINX already handles this. |
|
24 | # Apache or NGINX already handles this. |
|
23 |
- config.public_file_server.enabled = ENV[ |
|
25 | + config.public_file_server.enabled = ENV["RAILS_SERVE_STATIC_FILES"].present? |
|
24 |
|
26 | ||
|
25 | - # Compress JavaScripts and CSS. |
|
27 | + # Compress CSS using a preprocessor. |
|
26 | - config.assets.js_compressor = :uglifier |
|
||
|
27 | # config.assets.css_compressor = :sass |
|
28 | # config.assets.css_compressor = :sass |
|
28 |
|
29 | ||
|
29 | # Do not fallback to assets pipeline if a precompiled asset is missed. |
|
30 | # Do not fallback to assets pipeline if a precompiled asset is missed. |
|
30 | config.assets.compile = false |
|
31 | config.assets.compile = false |
|
31 |
|
32 | ||
|
32 | - # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb |
|
||
|
33 | - |
|
||
|
34 | # Enable serving of images, stylesheets, and JavaScripts from an asset server. |
|
33 | # Enable serving of images, stylesheets, and JavaScripts from an asset server. |
|
35 |
- # config.a |
|
34 | + # config.asset_host = "http://assets.example.com" |
|
36 |
|
35 | ||
|
37 | # Specifies the header that your server uses for sending files. |
|
36 | # Specifies the header that your server uses for sending files. |
|
38 |
- # config.action_dispatch.x_sendfile_header = |
|
37 | + # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for Apache |
|
39 |
- # config.action_dispatch.x_sendfile_header = |
|
38 | + # config.action_dispatch.x_sendfile_header = "X-Accel-Redirect" # for NGINX |
|
40 |
|
39 | ||
|
41 | - # Store uploaded files on the local file system (see config/storage.yml for options) |
|
40 | + # Store uploaded files on the local file system (see config/storage.yml for options). |
|
42 | config.active_storage.service = :local |
|
41 | config.active_storage.service = :local |
|
43 |
|
42 | ||
|
44 | - # Mount Action Cable outside main process or domain |
|
43 | + # Mount Action Cable outside main process or domain. |
|
45 | # config.action_cable.mount_path = nil |
|
44 | # config.action_cable.mount_path = nil |
|
46 |
- # config.action_cable.url = |
|
45 | + # config.action_cable.url = "wss://example.com/cable" |
|
47 |
- # config.action_cable.allowed_request_origins = [ |
|
46 | + # config.action_cable.allowed_request_origins = [ "http://example.com", /http:\/\/example.*/ ] |
|
48 |
|
47 | ||
|
49 | # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. |
|
48 | # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. |
|
50 | # config.force_ssl = true |
|
49 | # config.force_ssl = true |
|
51 |
|
50 | ||
|
52 | - # Use the lowest log level to ensure availability of diagnostic information |
|
51 | + # Include generic and useful information about system operation, but avoid logging too much |
|
53 | - # when problems arise. |
|
52 | + # information to avoid inadvertent exposure of personally identifiable information (PII). |
|
54 |
- config.log_level = : |
|
53 | + config.log_level = :info |
|
55 |
|
54 | ||
|
56 | # Prepend all log lines with the following tags. |
|
55 | # Prepend all log lines with the following tags. |
|
57 | config.log_tags = [ :request_id ] |
|
56 | config.log_tags = [ :request_id ] |
@@ -59,9 +58,9 | |||||
|
59 | # Use a different cache store in production. |
|
58 | # Use a different cache store in production. |
|
60 | # config.cache_store = :mem_cache_store |
|
59 | # config.cache_store = :mem_cache_store |
|
61 |
|
60 | ||
|
62 | - # Use a real queuing backend for Active Job (and separate queues per environment) |
|
61 | + # Use a real queuing backend for Active Job (and separate queues per environment). |
|
63 | # config.active_job.queue_adapter = :resque |
|
62 | # config.active_job.queue_adapter = :resque |
|
64 |
- # config.active_job.queue_name_prefix = "cafe_grader_ |
|
63 | + # config.active_job.queue_name_prefix = "cafe_grader_production" |
|
65 |
|
64 | ||
|
66 | config.action_mailer.perform_caching = false |
|
65 | config.action_mailer.perform_caching = false |
|
67 |
|
66 | ||
@@ -76,12 +75,18 | |||||
|
76 | # Send deprecation notices to registered listeners. |
|
75 | # Send deprecation notices to registered listeners. |
|
77 | config.active_support.deprecation = :notify |
|
76 | config.active_support.deprecation = :notify |
|
78 |
|
77 | ||
|
|
78 | + # Log disallowed deprecations. | ||
|
|
79 | + config.active_support.disallowed_deprecation = :log | ||
|
|
80 | + | ||
|
|
81 | + # Tell Active Support which deprecation messages to disallow. | ||
|
|
82 | + config.active_support.disallowed_deprecation_warnings = [] | ||
|
|
83 | + | ||
|
79 | # Use default logging formatter so that PID and timestamp are not suppressed. |
|
84 | # Use default logging formatter so that PID and timestamp are not suppressed. |
|
80 | config.log_formatter = ::Logger::Formatter.new |
|
85 | config.log_formatter = ::Logger::Formatter.new |
|
81 |
|
86 | ||
|
82 | # Use a different logger for distributed setups. |
|
87 | # Use a different logger for distributed setups. |
|
83 |
- # require |
|
88 | + # require "syslog/logger" |
|
84 |
- # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new |
|
89 | + # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new "app-name") |
|
85 |
|
90 | ||
|
86 | if ENV["RAILS_LOG_TO_STDOUT"].present? |
|
91 | if ENV["RAILS_LOG_TO_STDOUT"].present? |
|
87 | logger = ActiveSupport::Logger.new(STDOUT) |
|
92 | logger = ActiveSupport::Logger.new(STDOUT) |
@@ -1,26 +1,31 | |||||
|
|
1 | + require "active_support/core_ext/integer/time" | ||
|
|
2 | + | ||
|
|
3 | + # The test environment is used exclusively to run your application's | ||
|
|
4 | + # 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 | + # and recreated between test runs. Don't rely on the data there! | ||
|
|
7 | + | ||
|
1 | Rails.application.configure do |
|
8 | Rails.application.configure do |
|
2 | # Settings specified here will take precedence over those in config/application.rb. |
|
9 | # Settings specified here will take precedence over those in config/application.rb. |
|
3 |
|
10 | ||
|
4 | - # The test environment is used exclusively to run your application's |
|
11 | + # Turn false under Spring and add config.action_view.cache_template_loading = true. |
|
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 |
|
12 | config.cache_classes = true |
|
9 |
|
13 | ||
|
10 | - # Do not eager load code on boot. This avoids loading your whole application |
|
14 | + # Eager loading loads your whole application. When running a single test locally, |
|
11 | - # just for the purpose of running a single test. If you are using a tool that |
|
15 | + # this probably isn't necessary. It's a good idea to do in a continuous integration |
|
12 | - # preloads Rails for running tests, you may have to set it to true. |
|
16 | + # system, or in some way before deploying your code. |
|
13 |
- config.eager_load = |
|
17 | + config.eager_load = ENV["CI"].present? |
|
14 |
|
18 | ||
|
15 | # Configure public file server for tests with Cache-Control for performance. |
|
19 | # Configure public file server for tests with Cache-Control for performance. |
|
16 | config.public_file_server.enabled = true |
|
20 | config.public_file_server.enabled = true |
|
17 | config.public_file_server.headers = { |
|
21 | config.public_file_server.headers = { |
|
18 |
- |
|
22 | + "Cache-Control" => "public, max-age=#{1.hour.to_i}" |
|
19 | } |
|
23 | } |
|
20 |
|
24 | ||
|
21 | # Show full error reports and disable caching. |
|
25 | # Show full error reports and disable caching. |
|
22 | config.consider_all_requests_local = true |
|
26 | config.consider_all_requests_local = true |
|
23 | config.action_controller.perform_caching = false |
|
27 | config.action_controller.perform_caching = false |
|
|
28 | + config.cache_store = :null_store | ||
|
24 |
|
29 | ||
|
25 | # Raise exceptions instead of rendering exception templates. |
|
30 | # Raise exceptions instead of rendering exception templates. |
|
26 | config.action_dispatch.show_exceptions = false |
|
31 | config.action_dispatch.show_exceptions = false |
@@ -28,7 +33,7 | |||||
|
28 | # Disable request forgery protection in test environment. |
|
33 | # Disable request forgery protection in test environment. |
|
29 | config.action_controller.allow_forgery_protection = false |
|
34 | config.action_controller.allow_forgery_protection = false |
|
30 |
|
35 | ||
|
31 | - # Store uploaded files on the local file system in a temporary directory |
|
36 | + # Store uploaded files on the local file system in a temporary directory. |
|
32 | config.active_storage.service = :test |
|
37 | config.active_storage.service = :test |
|
33 |
|
38 | ||
|
34 | config.action_mailer.perform_caching = false |
|
39 | config.action_mailer.perform_caching = false |
@@ -41,6 +46,15 | |||||
|
41 | # Print deprecation notices to the stderr. |
|
46 | # Print deprecation notices to the stderr. |
|
42 | config.active_support.deprecation = :stderr |
|
47 | config.active_support.deprecation = :stderr |
|
43 |
|
48 | ||
|
44 |
- # Raise |
|
49 | + # Raise exceptions for disallowed deprecations. |
|
45 | - # config.action_view.raise_on_missing_translations = true |
|
50 | + config.active_support.disallowed_deprecation = :raise |
|
|
51 | + | ||
|
|
52 | + # Tell Active Support which deprecation messages to disallow. | ||
|
|
53 | + config.active_support.disallowed_deprecation_warnings = [] | ||
|
|
54 | + | ||
|
|
55 | + # Raises error for missing translations. | ||
|
|
56 | + # config.i18n.raise_on_missing_translations = true | ||
|
|
57 | + | ||
|
|
58 | + # Annotate rendered view with file names. | ||
|
|
59 | + # config.action_view.annotate_rendered_view_with_filenames = true | ||
|
46 | end |
|
60 | end |
@@ -1,7 +1,7 | |||||
|
1 | # Be sure to restart your server when you modify this file. |
|
1 | # Be sure to restart your server when you modify this file. |
|
2 |
|
2 | ||
|
3 | # Version of your assets, change this if you want to expire all your assets. |
|
3 | # Version of your assets, change this if you want to expire all your assets. |
|
4 |
- Rails.application.config.assets.version = |
|
4 | + Rails.application.config.assets.version = "1.0" |
|
5 |
|
5 | ||
|
6 | # Add additional assets to the asset load path. |
|
6 | # Add additional assets to the asset load path. |
|
7 | # Rails.application.config.assets.paths << Emoji.images_path |
|
7 | # Rails.application.config.assets.paths << Emoji.images_path |
@@ -1,7 +1,8 | |||||
|
1 | # Be sure to restart your server when you modify this file. |
|
1 | # Be sure to restart your server when you modify this file. |
|
2 |
|
2 | ||
|
3 | # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. |
|
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| |
|
4 | + # Rails.backtrace_cleaner.add_silencer { |line| /my_noisy_library/.match?(line) } |
|
5 |
|
5 | ||
|
6 |
- # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code |
|
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! |
|
7 | + # by setting BACKTRACE=1 before calling your invocation, like "BACKTRACE=1 ./bin/rails runner 'MyClass.perform'". |
|
|
8 | + Rails.backtrace_cleaner.remove_silencers! if ENV["BACKTRACE"] |
@@ -4,22 +4,23 | |||||
|
4 | # For further information see the following documentation |
|
4 | # For further information see the following documentation |
|
5 | # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy |
|
5 | # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy |
|
6 |
|
6 | ||
|
7 |
- # Rails.application.config |
|
7 | + # Rails.application.configure do |
|
8 | - # policy.default_src :self, :https |
|
8 | + # config.content_security_policy do |policy| |
|
9 |
- # policy. |
|
9 | + # policy.default_src :self, :https |
|
10 |
- # policy. |
|
10 | + # policy.font_src :self, :https, :data |
|
11 | - # policy.object_src :none |
|
11 | + # policy.img_src :self, :https, :data |
|
12 |
- # policy. |
|
12 | + # policy.object_src :none |
|
13 |
- # policy.st |
|
13 | + # policy.script_src :self, :https |
|
14 | - |
|
14 | + # policy.style_src :self, :https |
|
15 | - # # Specify URI for violation reports |
|
15 | + # # Specify URI for violation reports |
|
16 | - # # policy.report_uri "/csp-violation-report-endpoint" |
|
16 | + # # policy.report_uri "/csp-violation-report-endpoint" |
|
|
17 | + # end | ||
|
|
18 | + # | ||
|
|
19 | + # # Generate session nonces for permitted importmap and inline scripts | ||
|
|
20 | + # config.content_security_policy_nonce_generator = ->(request) { request.session.id.to_s } | ||
|
|
21 | + # config.content_security_policy_nonce_directives = %w(script-src) | ||
|
|
22 | + # | ||
|
|
23 | + # # Report CSP violations to a specified URI. See: | ||
|
|
24 | + # # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only | ||
|
|
25 | + # # config.content_security_policy_report_only = true | ||
|
17 | # end |
|
26 | # end |
|
18 | - |
|
||
|
19 | - # If you are using UJS then enable automatic nonce generation |
|
||
|
20 | - # Rails.application.config.content_security_policy_nonce_generator = -> request { SecureRandom.base64(16) } |
|
||
|
21 | - |
|
||
|
22 | - # Report CSP violations to a specified URI |
|
||
|
23 | - # For further information see the following documentation: |
|
||
|
24 | - # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only |
|
||
|
25 | - # Rails.application.config.content_security_policy_report_only = true |
|
@@ -1,4 +1,6 | |||||
|
1 | # Be sure to restart your server when you modify this file. |
|
1 | # Be sure to restart your server when you modify this file. |
|
2 |
|
2 | ||
|
3 | # Configure sensitive parameters which will be filtered from the log file. |
|
3 | # Configure sensitive parameters which will be filtered from the log file. |
|
4 |
- Rails.application.config.filter_parameters += [ |
|
4 | + Rails.application.config.filter_parameters += [ |
|
|
5 | + :passw, :secret, :token, :_key, :crypt, :salt, :certificate, :otp, :ssn | ||
|
|
6 | + ] |
@@ -4,13 +4,13 | |||||
|
4 | # are locale specific, and you may define rules for as many different |
|
4 | # are locale specific, and you may define rules for as many different |
|
5 | # locales as you wish. All of these examples are active by default: |
|
5 | # locales as you wish. All of these examples are active by default: |
|
6 | # ActiveSupport::Inflector.inflections(:en) do |inflect| |
|
6 | # ActiveSupport::Inflector.inflections(:en) do |inflect| |
|
7 |
- # inflect.plural /^(ox)$/i, |
|
7 | + # inflect.plural /^(ox)$/i, "\\1en" |
|
8 |
- # inflect.singular /^(ox)en/i, |
|
8 | + # inflect.singular /^(ox)en/i, "\\1" |
|
9 |
- # inflect.irregular |
|
9 | + # inflect.irregular "person", "people" |
|
10 | # inflect.uncountable %w( fish sheep ) |
|
10 | # inflect.uncountable %w( fish sheep ) |
|
11 | # end |
|
11 | # end |
|
12 |
|
12 | ||
|
13 | # These inflection rules are supported but not enabled by default: |
|
13 | # These inflection rules are supported but not enabled by default: |
|
14 | # ActiveSupport::Inflector.inflections(:en) do |inflect| |
|
14 | # ActiveSupport::Inflector.inflections(:en) do |inflect| |
|
15 |
- # inflect.acronym |
|
15 | + # inflect.acronym "RESTful" |
|
16 | # end |
|
16 | # end |
@@ -4,19 +4,28 | |||||
|
4 | # the maximum value specified for Puma. Default is set to 5 threads for minimum |
|
4 | # the maximum value specified for Puma. Default is set to 5 threads for minimum |
|
5 | # and maximum; this matches the default thread size of Active Record. |
|
5 | # and maximum; this matches the default thread size of Active Record. |
|
6 | # |
|
6 | # |
|
7 | - threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 } |
|
7 | + max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 } |
|
8 | - threads threads_count, threads_count |
|
8 | + min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count } |
|
|
9 | + threads min_threads_count, max_threads_count | ||
|
|
10 | + | ||
|
|
11 | + # Specifies the `worker_timeout` threshold that Puma will use to wait before | ||
|
|
12 | + # terminating a worker in development environments. | ||
|
|
13 | + # | ||
|
|
14 | + worker_timeout 3600 if ENV.fetch("RAILS_ENV", "development") == "development" | ||
|
9 |
|
15 | ||
|
10 | # Specifies the `port` that Puma will listen on to receive requests; default is 3000. |
|
16 | # Specifies the `port` that Puma will listen on to receive requests; default is 3000. |
|
11 | # |
|
17 | # |
|
12 |
- port |
|
18 | + port ENV.fetch("PORT") { 3000 } |
|
13 |
|
19 | ||
|
14 | # Specifies the `environment` that Puma will run in. |
|
20 | # Specifies the `environment` that Puma will run in. |
|
15 | # |
|
21 | # |
|
16 | environment ENV.fetch("RAILS_ENV") { "development" } |
|
22 | environment ENV.fetch("RAILS_ENV") { "development" } |
|
17 |
|
23 | ||
|
|
24 | + # Specifies the `pidfile` that Puma will use. | ||
|
|
25 | + pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" } | ||
|
|
26 | + | ||
|
18 | # Specifies the number of `workers` to boot in clustered mode. |
|
27 | # Specifies the number of `workers` to boot in clustered mode. |
|
19 | - # Workers are forked webserver processes. If using threads and workers together |
|
28 | + # Workers are forked web server processes. If using threads and workers together |
|
20 | # the concurrency of the application would be max `threads` * `workers`. |
|
29 | # the concurrency of the application would be max `threads` * `workers`. |
|
21 | # Workers do not work on JRuby or Windows (both of which do not support |
|
30 | # Workers do not work on JRuby or Windows (both of which do not support |
|
22 | # processes). |
|
31 | # processes). |
@@ -1,6 +1,6 | |||||
|
1 | - %w( |
|
1 | + Spring.watch( |
|
2 | - .ruby-version |
|
2 | + ".ruby-version", |
|
3 | - .rbenv-vars |
|
3 | + ".rbenv-vars", |
|
4 | - tmp/restart.txt |
|
4 | + "tmp/restart.txt", |
|
5 | - tmp/caching-dev.txt |
|
5 | + "tmp/caching-dev.txt" |
|
6 | - ).each { |path| Spring.watch(path) } |
|
6 | + ) |
@@ -1,6 +1,6 | |||||
|
1 | - class CreateUsers < ActiveRecord::Migration |
|
1 | + class CreateUsers < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | - create_table :users do |t| |
|
3 | + create_table :users, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.column :login, :string, :limit => 10 |
|
4 | t.column :login, :string, :limit => 10 |
|
5 | t.column :full_name, :string |
|
5 | t.column :full_name, :string |
|
6 | t.column :hashed_password, :string |
|
6 | t.column :hashed_password, :string |
@@ -1,6 +1,6 | |||||
|
1 | - class CreateProblems < ActiveRecord::Migration |
|
1 | + class CreateProblems < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | - create_table :problems do |t| |
|
3 | + create_table :problems, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.column :name, :string, :limit => 30 |
|
4 | t.column :name, :string, :limit => 30 |
|
5 | t.column :full_name, :string |
|
5 | t.column :full_name, :string |
|
6 | t.column :full_score, :integer |
|
6 | t.column :full_score, :integer |
@@ -1,6 +1,6 | |||||
|
1 | - class CreateSubmissions < ActiveRecord::Migration |
|
1 | + class CreateSubmissions < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | - create_table :submissions do |t| |
|
3 | + create_table :submissions, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.column :user_id, :integer |
|
4 | t.column :user_id, :integer |
|
5 | t.column :problem_id, :integer |
|
5 | t.column :problem_id, :integer |
|
6 | t.column :language_id, :integer |
|
6 | t.column :language_id, :integer |
@@ -1,6 +1,6 | |||||
|
1 | - class CreateLanguages < ActiveRecord::Migration |
|
1 | + class CreateLanguages < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | - create_table :languages do |t| |
|
3 | + create_table :languages, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.column :name, :string, :limit => 10 |
|
4 | t.column :name, :string, :limit => 10 |
|
5 | t.column :pretty_name, :string |
|
5 | t.column :pretty_name, :string |
|
6 | end |
|
6 | end |
@@ -1,4 +1,4 | |||||
|
1 | - class AddIndexToSubmissions < ActiveRecord::Migration |
|
1 | + class AddIndexToSubmissions < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_index :submissions, [:user_id, :problem_id] |
|
3 | add_index :submissions, [:user_id, :problem_id] |
|
4 | end |
|
4 | end |
@@ -1,10 +1,10 | |||||
|
1 | - class CreateRoles < ActiveRecord::Migration |
|
1 | + class CreateRoles < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | - create_table :roles do |t| |
|
3 | + create_table :roles, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.column 'name', :string |
|
4 | t.column 'name', :string |
|
5 | end |
|
5 | end |
|
6 |
|
6 | ||
|
7 | - create_table :roles_users, :id => false do |t| |
|
7 | + create_table :roles_users, :id => false, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
8 | t.column 'role_id', :integer |
|
8 | t.column 'role_id', :integer |
|
9 | t.column 'user_id', :integer |
|
9 | t.column 'user_id', :integer |
|
10 | end |
|
10 | end |
@@ -1,12 +1,12 | |||||
|
1 | - class CreateRights < ActiveRecord::Migration |
|
1 | + class CreateRights < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | - create_table :rights do |t| |
|
3 | + create_table :rights, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.column 'name', :string |
|
4 | t.column 'name', :string |
|
5 | t.column 'controller', :string |
|
5 | t.column 'controller', :string |
|
6 | t.column 'action', :string |
|
6 | t.column 'action', :string |
|
7 | end |
|
7 | end |
|
8 |
|
8 | ||
|
9 | - create_table :rights_roles, :id => false do |t| |
|
9 | + create_table :rights_roles, :id => false, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
10 | t.column 'right_id', :integer |
|
10 | t.column 'right_id', :integer |
|
11 | t.column 'role_id', :integer |
|
11 | t.column 'role_id', :integer |
|
12 | end |
|
12 | end |
@@ -1,6 +1,6 | |||||
|
1 | - class CreateTasks < ActiveRecord::Migration |
|
1 | + class CreateTasks < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | - create_table :tasks do |t| |
|
3 | + create_table :tasks, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.column 'submission_id', :integer |
|
4 | t.column 'submission_id', :integer |
|
5 | t.column 'created_at', :datetime |
|
5 | t.column 'created_at', :datetime |
|
6 | end |
|
6 | end |
@@ -1,6 +1,6 | |||||
|
1 | - class AddSessions < ActiveRecord::Migration |
|
1 | + class AddSessions < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | - create_table :sessions do |t| |
|
3 | + create_table :sessions, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.column :session_id, :string |
|
4 | t.column :session_id, :string |
|
5 | t.column :data, :text |
|
5 | t.column :data, :text |
|
6 | t.column :updated_at, :datetime |
|
6 | t.column :updated_at, :datetime |
@@ -1,4 +1,4 | |||||
|
1 | - class AddLanguageExt < ActiveRecord::Migration |
|
1 | + class AddLanguageExt < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_column :languages, :ext, :string, :limit => 10 |
|
3 | add_column :languages, :ext, :string, :limit => 10 |
|
4 |
|
4 |
@@ -1,4 +1,4 | |||||
|
1 | - class AddEmailToUsers < ActiveRecord::Migration |
|
1 | + class AddEmailToUsers < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_column :users, :email, :string |
|
3 | add_column :users, :email, :string |
|
4 | end |
|
4 | end |
@@ -1,4 +1,4 | |||||
|
1 | - class AddUrlToProblem < ActiveRecord::Migration |
|
1 | + class AddUrlToProblem < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_column :problems, :url, :string |
|
3 | add_column :problems, :url, :string |
|
4 | end |
|
4 | end |
@@ -1,6 +1,6 | |||||
|
1 | - class CreateGraderProcesses < ActiveRecord::Migration |
|
1 | + class CreateGraderProcesses < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | - create_table :grader_processes do |t| |
|
3 | + create_table :grader_processes, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.column :ip, :string, :limit => 20 |
|
4 | t.column :ip, :string, :limit => 20 |
|
5 | t.column :pid, :integer |
|
5 | t.column :pid, :integer |
|
6 | t.column :mode, :string |
|
6 | t.column :mode, :string |
@@ -1,4 +1,4 | |||||
|
1 | - class AddStatusToTasks < ActiveRecord::Migration |
|
1 | + class AddStatusToTasks < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_column :tasks, :status, :integer |
|
3 | add_column :tasks, :status, :integer |
|
4 | add_column :tasks, :updated_at, :datetime |
|
4 | add_column :tasks, :updated_at, :datetime |
@@ -1,4 +1,4 | |||||
|
1 | - class AddTaskToGraderProcess < ActiveRecord::Migration |
|
1 | + class AddTaskToGraderProcess < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_column :grader_processes, :task_id, :integer |
|
3 | add_column :grader_processes, :task_id, :integer |
|
4 | end |
|
4 | end |
@@ -1,4 +1,4 | |||||
|
1 | - class RenameGraderProcessColumnIpToHost < ActiveRecord::Migration |
|
1 | + class RenameGraderProcessColumnIpToHost < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | rename_column :grader_processes, :ip, :host |
|
3 | rename_column :grader_processes, :ip, :host |
|
4 | end |
|
4 | end |
@@ -1,4 +1,4 | |||||
|
1 | - class AddNumberToSubmissions < ActiveRecord::Migration |
|
1 | + class AddNumberToSubmissions < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_column :submissions, :number, :integer |
|
3 | add_column :submissions, :number, :integer |
|
4 |
|
4 |
@@ -1,6 +1,6 | |||||
|
1 | - class CreateTestRequests < ActiveRecord::Migration |
|
1 | + class CreateTestRequests < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | - create_table :test_requests do |t| |
|
3 | + create_table :test_requests, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.column :user_id, :integer |
|
4 | t.column :user_id, :integer |
|
5 | t.column :problem_id, :integer |
|
5 | t.column :problem_id, :integer |
|
6 | t.column :submission_id, :integer |
|
6 | t.column :submission_id, :integer |
@@ -10,7 +10,6 | |||||
|
10 |
|
10 | ||
|
11 | # these are similar to tasks |
|
11 | # these are similar to tasks |
|
12 | t.column :status, :integer |
|
12 | t.column :status, :integer |
|
13 | - t.column :updated_at, :datetime |
|
||
|
14 |
|
13 | ||
|
15 | # these are intentionally similar to submissions |
|
14 | # these are intentionally similar to submissions |
|
16 | t.column :submitted_at, :datetime |
|
15 | t.column :submitted_at, :datetime |
@@ -1,4 +1,4 | |||||
|
1 | - class ChangeCompilerMessageTypeTestRequest < ActiveRecord::Migration |
|
1 | + class ChangeCompilerMessageTypeTestRequest < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | change_column :test_requests, :compiler_message, :text |
|
3 | change_column :test_requests, :compiler_message, :text |
|
4 | end |
|
4 | end |
@@ -1,6 +1,6 | |||||
|
1 | - class CreateConfigurations < ActiveRecord::Migration |
|
1 | + class CreateConfigurations < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | - create_table :configurations do |t| |
|
3 | + create_table :configurations, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.column :key, :string |
|
4 | t.column :key, :string |
|
5 | t.column :value_type, :string |
|
5 | t.column :value_type, :string |
|
6 | t.column :value, :string |
|
6 | t.column :value, :string |
@@ -1,4 +1,4 | |||||
|
1 | - class AddRunstatColumnsToTestRequest < ActiveRecord::Migration |
|
1 | + class AddRunstatColumnsToTestRequest < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_column :test_requests, :running_time, :float |
|
3 | add_column :test_requests, :running_time, :float |
|
4 | add_column :test_requests, :exit_status, :string |
|
4 | add_column :test_requests, :exit_status, :string |
@@ -1,6 +1,6 | |||||
|
1 | - class CreateSites < ActiveRecord::Migration |
|
1 | + class CreateSites < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | - create_table :sites do |t| |
|
3 | + create_table :sites, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.string :name |
|
4 | t.string :name |
|
5 | t.boolean :started |
|
5 | t.boolean :started |
|
6 | t.datetime :start_time |
|
6 | t.datetime :start_time |
@@ -1,4 +1,4 | |||||
|
1 | - class AddSiteToUserAndAddDefaultSite < ActiveRecord::Migration |
|
1 | + class AddSiteToUserAndAddDefaultSite < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | default_site = Site.new({:name => 'default', |
|
3 | default_site = Site.new({:name => 'default', |
|
4 | :started => false}) |
|
4 | :started => false}) |
@@ -1,4 +1,4 | |||||
|
1 | - class AddBodyToProblems < ActiveRecord::Migration |
|
1 | + class AddBodyToProblems < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_column :problems, :body, :text |
|
3 | add_column :problems, :body, :text |
|
4 | end |
|
4 | end |
@@ -1,6 +1,6 | |||||
|
1 | - class CreateDescriptions < ActiveRecord::Migration |
|
1 | + class CreateDescriptions < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | - create_table :descriptions do |t| |
|
3 | + create_table :descriptions, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.column :body, :text |
|
4 | t.column :body, :text |
|
5 | t.column :markdowned, :boolean |
|
5 | t.column :markdowned, :boolean |
|
6 | t.timestamps |
|
6 | t.timestamps |
@@ -1,4 +1,4 | |||||
|
1 | - class RefactorProblemBodyToDescription < ActiveRecord::Migration |
|
1 | + class RefactorProblemBodyToDescription < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_column :problems, :description_id, :integer |
|
3 | add_column :problems, :description_id, :integer |
|
4 | Problem.reset_column_information |
|
4 | Problem.reset_column_information |
@@ -1,4 +1,4 | |||||
|
1 | - class AddTestAllowedToProblems < ActiveRecord::Migration |
|
1 | + class AddTestAllowedToProblems < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_column :problems, :test_allowed, :boolean |
|
3 | add_column :problems, :test_allowed, :boolean |
|
4 | Problem.reset_column_information |
|
4 | Problem.reset_column_information |
@@ -1,6 +1,6 | |||||
|
1 | - class CreateAnnouncements < ActiveRecord::Migration |
|
1 | + class CreateAnnouncements < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | - create_table :announcements do |t| |
|
3 | + create_table :announcements, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.string :author |
|
4 | t.string :author |
|
5 | t.text :body |
|
5 | t.text :body |
|
6 | t.boolean :published |
|
6 | t.boolean :published |
@@ -1,4 +1,4 | |||||
|
1 | - class AddSupportsForOutputOnlyProblems < ActiveRecord::Migration |
|
1 | + class AddSupportsForOutputOnlyProblems < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_column :submissions, :source_filename, :string |
|
3 | add_column :submissions, :source_filename, :string |
|
4 | add_column :problems, :output_only, :boolean |
|
4 | add_column :problems, :output_only, :boolean |
@@ -1,6 +1,6 | |||||
|
1 | - class CreateMessages < ActiveRecord::Migration |
|
1 | + class CreateMessages < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | - create_table :messages do |t| |
|
3 | + create_table :messages, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.column "sender_id", :integer |
|
4 | t.column "sender_id", :integer |
|
5 | t.column "receiver_id", :integer |
|
5 | t.column "receiver_id", :integer |
|
6 | t.column "replying_message_id", :integer |
|
6 | t.column "replying_message_id", :integer |
@@ -1,4 +1,4 | |||||
|
1 | - class AddTaskTypeToGraderProcesses < ActiveRecord::Migration |
|
1 | + class AddTaskTypeToGraderProcesses < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_column 'grader_processes', 'task_type', :string |
|
3 | add_column 'grader_processes', 'task_type', :string |
|
4 | end |
|
4 | end |
@@ -1,6 +1,6 | |||||
|
1 | - class CreateCountries < ActiveRecord::Migration |
|
1 | + class CreateCountries < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | - create_table :countries do |t| |
|
3 | + create_table :countries, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.column :name, :string |
|
4 | t.column :name, :string |
|
5 | t.timestamps |
|
5 | t.timestamps |
|
6 | end |
|
6 | end |
@@ -1,4 +1,4 | |||||
|
1 | - class AddCountryToSitesAndUsers < ActiveRecord::Migration |
|
1 | + class AddCountryToSitesAndUsers < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_column 'sites', 'country_id', :integer |
|
3 | add_column 'sites', 'country_id', :integer |
|
4 | add_column 'sites', 'password', :string |
|
4 | add_column 'sites', 'password', :string |
@@ -1,4 +1,4 | |||||
|
1 | - class AddFrontpageFlagToAnnouncement < ActiveRecord::Migration |
|
1 | + class AddFrontpageFlagToAnnouncement < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_column :announcements, "frontpage", :boolean, :default => 0 |
|
3 | add_column :announcements, "frontpage", :boolean, :default => 0 |
|
4 | end |
|
4 | end |
@@ -1,4 +1,4 | |||||
|
1 | - class AddActivatedToUsers < ActiveRecord::Migration |
|
1 | + class AddActivatedToUsers < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_column :users, :activated, :boolean, :default => 0 |
|
3 | add_column :users, :activated, :boolean, :default => 0 |
|
4 |
|
4 |
@@ -1,4 +1,4 | |||||
|
1 | - class AddTimestampsToUsers < ActiveRecord::Migration |
|
1 | + class AddTimestampsToUsers < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_timestamps :users |
|
3 | add_timestamps :users |
|
4 | end |
|
4 | end |
@@ -1,4 +1,4 | |||||
|
1 | - class ChangeUserLoginStringLimit < ActiveRecord::Migration |
|
1 | + class ChangeUserLoginStringLimit < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | execute "ALTER TABLE `users` CHANGE `login` `login` VARCHAR( 50 )" |
|
3 | execute "ALTER TABLE `users` CHANGE `login` `login` VARCHAR( 50 )" |
|
4 | end |
|
4 | end |
@@ -1,4 +1,4 | |||||
|
1 | - class AddContestFlagToAnnouncements < ActiveRecord::Migration |
|
1 | + class AddContestFlagToAnnouncements < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_column :announcements, :contest_only, :boolean, :default => false |
|
3 | add_column :announcements, :contest_only, :boolean, :default => false |
|
4 | end |
|
4 | end |
@@ -1,4 +1,4 | |||||
|
1 | - class AddCommonExtToLanguages < ActiveRecord::Migration |
|
1 | + class AddCommonExtToLanguages < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | # language.common_ext is a comma-separated list of common file |
|
3 | # language.common_ext is a comma-separated list of common file |
|
4 | # extensions. |
|
4 | # extensions. |
@@ -1,4 +1,4 | |||||
|
1 | - class AddTerminatedToGraderProcesses < ActiveRecord::Migration |
|
1 | + class AddTerminatedToGraderProcesses < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_column :grader_processes, :terminated, :boolean |
|
3 | add_column :grader_processes, :terminated, :boolean |
|
4 | end |
|
4 | end |
@@ -1,4 +1,4 | |||||
|
1 | - class AddTitleToAnnouncements < ActiveRecord::Migration |
|
1 | + class AddTitleToAnnouncements < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_column :announcements, :title, :string |
|
3 | add_column :announcements, :title, :string |
|
4 | end |
|
4 | end |
@@ -1,6 +1,6 | |||||
|
1 | - class CreateTestPairs < ActiveRecord::Migration |
|
1 | + class CreateTestPairs < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | - create_table :test_pairs do |t| |
|
3 | + create_table :test_pairs, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.integer :problem_id |
|
4 | t.integer :problem_id |
|
5 | t.text :input |
|
5 | t.text :input |
|
6 | t.text :solution |
|
6 | t.text :solution |
@@ -1,4 +1,4 | |||||
|
1 | - class AddDescriptionToConfig < ActiveRecord::Migration |
|
1 | + class AddDescriptionToConfig < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_column :configurations, :description, :text |
|
3 | add_column :configurations, :description, :text |
|
4 | end |
|
4 | end |
@@ -1,6 +1,6 | |||||
|
1 | - class CreateUserContestStats < ActiveRecord::Migration |
|
1 | + class CreateUserContestStats < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | - create_table :user_contest_stats do |t| |
|
3 | + create_table :user_contest_stats, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.integer :user_id |
|
4 | t.integer :user_id |
|
5 | t.timestamp :started_at |
|
5 | t.timestamp :started_at |
|
6 |
|
6 |
@@ -1,4 +1,4 | |||||
|
1 | - class ChangeInputSolutionFieldLimitInTestPair < ActiveRecord::Migration |
|
1 | + class ChangeInputSolutionFieldLimitInTestPair < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | change_column :test_pairs, :input, :text, :limit => 1.megabytes |
|
3 | change_column :test_pairs, :input, :text, :limit => 1.megabytes |
|
4 | change_column :test_pairs, :solution, :text, :limit => 1.megabytes |
|
4 | change_column :test_pairs, :solution, :text, :limit => 1.megabytes |
@@ -1,6 +1,6 | |||||
|
1 | - class CreateContests < ActiveRecord::Migration |
|
1 | + class CreateContests < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | - create_table :contests do |t| |
|
3 | + create_table :contests, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.string :title |
|
4 | t.string :title |
|
5 | t.boolean :enabled |
|
5 | t.boolean :enabled |
|
6 |
|
6 |
@@ -1,6 +1,6 | |||||
|
1 | - class CreateContestsUsersJoinTable < ActiveRecord::Migration |
|
1 | + class CreateContestsUsersJoinTable < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | - create_table :contests_users, :id => false do |t| |
|
3 | + create_table :contests_users, :id => false, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.integer :contest_id |
|
4 | t.integer :contest_id |
|
5 | t.integer :user_id |
|
5 | t.integer :user_id |
|
6 | end |
|
6 | end |
@@ -1,6 +1,6 | |||||
|
1 | - class CreateContestsProblemsJoinTable < ActiveRecord::Migration |
|
1 | + class CreateContestsProblemsJoinTable < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | - create_table :contests_problems, :id => false do |t| |
|
3 | + create_table :contests_problems, :id => false, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.integer :contest_id |
|
4 | t.integer :contest_id |
|
5 | t.integer :problem_id |
|
5 | t.integer :problem_id |
|
6 | end |
|
6 | end |
@@ -1,4 +1,4 | |||||
|
1 | - class AddDescriptionFilenameToProblems < ActiveRecord::Migration |
|
1 | + class AddDescriptionFilenameToProblems < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_column :problems, :description_filename, :string |
|
3 | add_column :problems, :description_filename, :string |
|
4 | end |
|
4 | end |
@@ -1,4 +1,4 | |||||
|
1 | - class AddNameToContests < ActiveRecord::Migration |
|
1 | + class AddNameToContests < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_column :contests, :name, :string |
|
3 | add_column :contests, :name, :string |
|
4 | end |
|
4 | end |
@@ -1,4 +1,4 | |||||
|
1 | - class AddForcedLogoutToUserContestStat < ActiveRecord::Migration |
|
1 | + class AddForcedLogoutToUserContestStat < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_column :user_contest_stats, :forced_logout, :boolean |
|
3 | add_column :user_contest_stats, :forced_logout, :boolean |
|
4 | end |
|
4 | end |
@@ -1,4 +1,4 | |||||
|
1 | - class AddNotesToAnnouncements < ActiveRecord::Migration |
|
1 | + class AddNotesToAnnouncements < ActiveRecord::Migration[4.2] |
|
2 | def self.up |
|
2 | def self.up |
|
3 | add_column :announcements, :notes, :string |
|
3 | add_column :announcements, :notes, :string |
|
4 | end |
|
4 | end |
@@ -1,4 +1,4 | |||||
|
1 | - class RenameConfigurationsToGraderConfigurations < ActiveRecord::Migration |
|
1 | + class RenameConfigurationsToGraderConfigurations < ActiveRecord::Migration[4.2] |
|
2 | def change |
|
2 | def change |
|
3 | rename_table 'configurations', 'grader_configurations' |
|
3 | rename_table 'configurations', 'grader_configurations' |
|
4 | end |
|
4 | end |
@@ -1,4 +1,4 | |||||
|
1 | - class AddMoreDetailToSubmission < ActiveRecord::Migration |
|
1 | + class AddMoreDetailToSubmission < ActiveRecord::Migration[4.2] |
|
2 | def change |
|
2 | def change |
|
3 | add_column :submissions, :max_runtime, :float |
|
3 | add_column :submissions, :max_runtime, :float |
|
4 | add_column :submissions, :peak_memory, :integer |
|
4 | add_column :submissions, :peak_memory, :integer |
@@ -1,6 +1,6 | |||||
|
1 | - class CreateLogins < ActiveRecord::Migration |
|
1 | + class CreateLogins < ActiveRecord::Migration[4.2] |
|
2 | def change |
|
2 | def change |
|
3 | - create_table :logins do |t| |
|
3 | + create_table :logins, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.string :user_id |
|
4 | t.string :user_id |
|
5 | t.string :ip_address |
|
5 | t.string :ip_address |
|
6 |
|
6 |
@@ -1,4 +1,4 | |||||
|
1 | - class AddSectionToUsers < ActiveRecord::Migration |
|
1 | + class AddSectionToUsers < ActiveRecord::Migration[4.2] |
|
2 | def change |
|
2 | def change |
|
3 | add_column :users, :section, :string |
|
3 | add_column :users, :section, :string |
|
4 | end |
|
4 | end |
@@ -1,4 +1,4 | |||||
|
1 | - class AddIpToSubmissions < ActiveRecord::Migration |
|
1 | + class AddIpToSubmissions < ActiveRecord::Migration[4.2] |
|
2 | def change |
|
2 | def change |
|
3 | add_column :submissions, :ip_address, :string |
|
3 | add_column :submissions, :ip_address, :string |
|
4 | end |
|
4 | end |
@@ -1,4 +1,4 | |||||
|
1 | - class AddMoreToUsers < ActiveRecord::Migration |
|
1 | + class AddMoreToUsers < ActiveRecord::Migration[4.2] |
|
2 | def change |
|
2 | def change |
|
3 | add_column :users, :enabled, :boolean, default: 1 |
|
3 | add_column :users, :enabled, :boolean, default: 1 |
|
4 | add_column :users, :remark, :string |
|
4 | add_column :users, :remark, :string |
@@ -1,4 +1,4 | |||||
|
1 | - class ChangeUseridOnLogin < ActiveRecord::Migration |
|
1 | + class ChangeUseridOnLogin < ActiveRecord::Migration[4.2] |
|
2 | def up |
|
2 | def up |
|
3 | change_column :logins, :user_id, :integer |
|
3 | change_column :logins, :user_id, :integer |
|
4 | end |
|
4 | end |
@@ -1,6 +1,6 | |||||
|
1 | - class CreateSubmissionViewLogs < ActiveRecord::Migration |
|
1 | + class CreateSubmissionViewLogs < ActiveRecord::Migration[4.2] |
|
2 | def change |
|
2 | def change |
|
3 | - create_table :submission_view_logs do |t| |
|
3 | + create_table :submission_view_logs, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.integer :user_id |
|
4 | t.integer :user_id |
|
5 | t.integer :submission_id |
|
5 | t.integer :submission_id |
|
6 |
|
6 |
@@ -1,4 +1,4 | |||||
|
1 | - class AddLastIpToUser < ActiveRecord::Migration |
|
1 | + class AddLastIpToUser < ActiveRecord::Migration[4.2] |
|
2 | def change |
|
2 | def change |
|
3 | add_column :users, :last_ip, :string |
|
3 | add_column :users, :last_ip, :string |
|
4 | end |
|
4 | end |
@@ -1,6 +1,6 | |||||
|
1 | - class CreateHeartBeats < ActiveRecord::Migration |
|
1 | + class CreateHeartBeats < ActiveRecord::Migration[4.2] |
|
2 | def change |
|
2 | def change |
|
3 | - create_table :heart_beats do |t| |
|
3 | + create_table :heart_beats, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.column 'user_id',:integer |
|
4 | t.column 'user_id',:integer |
|
5 | t.column 'ip_address',:string |
|
5 | t.column 'ip_address',:string |
|
6 |
|
6 |
@@ -1,4 +1,4 | |||||
|
1 | - class AddStatusToHeartBeat < ActiveRecord::Migration |
|
1 | + class AddStatusToHeartBeat < ActiveRecord::Migration[4.2] |
|
2 | def change |
|
2 | def change |
|
3 | add_column :heart_beats, :status, :string |
|
3 | add_column :heart_beats, :status, :string |
|
4 | end |
|
4 | end |
@@ -1,4 +1,4 | |||||
|
1 | - class AddMoreConfig < ActiveRecord::Migration |
|
1 | + class AddMoreConfig < ActiveRecord::Migration[4.2] |
|
2 | def up |
|
2 | def up |
|
3 | GraderConfiguration.create key: 'right.bypass_agreement', value_type: 'boolean', value:'true', description:'When false, a check box to accept license agreement appear at login and the user must click accept' |
|
3 | GraderConfiguration.create key: 'right.bypass_agreement', value_type: 'boolean', value:'true', description:'When false, a check box to accept license agreement appear at login and the user must click accept' |
|
4 | end |
|
4 | end |
@@ -1,4 +1,4 | |||||
|
1 | - class UpdateHeartBeat < ActiveRecord::Migration |
|
1 | + class UpdateHeartBeat < ActiveRecord::Migration[4.2] |
|
2 | def up |
|
2 | def up |
|
3 | GraderConfiguration.create key: 'right.heartbeat_response', value_type: 'string', value:'OK', description:'Heart beat response text' |
|
3 | GraderConfiguration.create key: 'right.heartbeat_response', value_type: 'string', value:'OK', description:'Heart beat response text' |
|
4 | add_index :heart_beats, :updated_at |
|
4 | add_index :heart_beats, :updated_at |
@@ -1,4 +1,4 | |||||
|
1 | - class ModifyGraderProcess < ActiveRecord::Migration |
|
1 | + class ModifyGraderProcess < ActiveRecord::Migration[4.2] |
|
2 | def up |
|
2 | def up |
|
3 | change_column :grader_processes, :host, :string |
|
3 | change_column :grader_processes, :host, :string |
|
4 | end |
|
4 | end |
@@ -1,6 +1,6 | |||||
|
1 | - class CreateTestcases < ActiveRecord::Migration |
|
1 | + class CreateTestcases < ActiveRecord::Migration[4.2] |
|
2 | def change |
|
2 | def change |
|
3 | - create_table :testcases do |t| |
|
3 | + create_table :testcases, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.references :problem |
|
4 | t.references :problem |
|
5 | t.integer :num |
|
5 | t.integer :num |
|
6 | t.integer :group |
|
6 | t.integer :group |
@@ -1,4 +1,4 | |||||
|
1 | - class AddConfigViewTest < ActiveRecord::Migration |
|
1 | + class AddConfigViewTest < ActiveRecord::Migration[4.2] |
|
2 | def up |
|
2 | def up |
|
3 | GraderConfiguration.create key: 'right.view_testcase', value_type: 'boolean', value:'true', description:'When true, any user can view/download test data' |
|
3 | GraderConfiguration.create key: 'right.view_testcase', value_type: 'boolean', value:'true', description:'When true, any user can view/download test data' |
|
4 | #uglily and dirtily and shamelessly check other config and inifialize |
|
4 | #uglily and dirtily and shamelessly check other config and inifialize |
@@ -1,4 +1,4 | |||||
|
1 | - class ChangeTestcaseSize < ActiveRecord::Migration |
|
1 | + class ChangeTestcaseSize < ActiveRecord::Migration[4.2] |
|
2 | def change |
|
2 | def change |
|
3 | change_column :testcases, :input, :text, :limit => 4294967295 |
|
3 | change_column :testcases, :input, :text, :limit => 4294967295 |
|
4 | change_column :testcases, :sol, :text, :limit => 4294967295 |
|
4 | change_column :testcases, :sol, :text, :limit => 4294967295 |
@@ -1,4 +1,4 | |||||
|
1 | - class AddViewTestcaseToProblem < ActiveRecord::Migration |
|
1 | + class AddViewTestcaseToProblem < ActiveRecord::Migration[4.2] |
|
2 | def change |
|
2 | def change |
|
3 | add_column :problems, :view_testcase, :bool |
|
3 | add_column :problems, :view_testcase, :bool |
|
4 | end |
|
4 | end |
@@ -1,4 +1,4 | |||||
|
1 | - class AddIndexToTask < ActiveRecord::Migration |
|
1 | + class AddIndexToTask < ActiveRecord::Migration[4.2] |
|
2 | def change |
|
2 | def change |
|
3 | add_index :tasks, :submission_id |
|
3 | add_index :tasks, :submission_id |
|
4 | end |
|
4 | end |
@@ -1,4 +1,4 | |||||
|
1 | - class AddHeartBeatFull < ActiveRecord::Migration |
|
1 | + class AddHeartBeatFull < ActiveRecord::Migration[4.2] |
|
2 | def up |
|
2 | def up |
|
3 | GraderConfiguration.create key: 'right.heartbeat_response_full', value_type: 'string', value:'RESTART', description:'Heart beat response text when user got full score (set this value to the empty string to disable this feature)' |
|
3 | GraderConfiguration.create key: 'right.heartbeat_response_full', value_type: 'string', value:'RESTART', description:'Heart beat response text when user got full score (set this value to the empty string to disable this feature)' |
|
4 | end |
|
4 | end |
@@ -1,17 +1,17 | |||||
|
1 | - class CreateGroups < ActiveRecord::Migration |
|
1 | + class CreateGroups < ActiveRecord::Migration[4.2] |
|
2 |
|
2 | ||
|
3 | def change |
|
3 | def change |
|
4 | - create_table :groups do |t| |
|
4 | + create_table :groups, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
5 | t.string :name |
|
5 | t.string :name |
|
6 | t.string :description |
|
6 | t.string :description |
|
7 | end |
|
7 | end |
|
8 |
|
8 | ||
|
9 | - create_join_table :groups, :users do |t| |
|
9 | + create_join_table :groups, :users, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
10 | # t.index [:group_id, :user_id] |
|
10 | # t.index [:group_id, :user_id] |
|
11 | t.index [:user_id, :group_id] |
|
11 | t.index [:user_id, :group_id] |
|
12 | end |
|
12 | end |
|
13 |
|
13 | ||
|
14 | - create_join_table :problems, :groups do |t| |
|
14 | + create_join_table :problems, :groups, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
15 | # t.index [:problem_id, :group_id] |
|
15 | # t.index [:problem_id, :group_id] |
|
16 | t.index [:group_id, :problem_id] |
|
16 | t.index [:group_id, :problem_id] |
|
17 | end |
|
17 | end |
@@ -1,6 +1,6 | |||||
|
1 | - class CreateTags < ActiveRecord::Migration |
|
1 | + class CreateTags < ActiveRecord::Migration[4.2] |
|
2 | def change |
|
2 | def change |
|
3 | - create_table :tags do |t| |
|
3 | + create_table :tags, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.string :name, null: false |
|
4 | t.string :name, null: false |
|
5 | t.text :description |
|
5 | t.text :description |
|
6 | t.boolean :public |
|
6 | t.boolean :public |
@@ -1,6 +1,6 | |||||
|
1 | - class CreateProblemTags < ActiveRecord::Migration |
|
1 | + class CreateProblemTags < ActiveRecord::Migration[4.2] |
|
2 | def change |
|
2 | def change |
|
3 | - create_table :problems_tags do |t| |
|
3 | + create_table :problems_tags, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t| |
|
4 | t.references :problem, index: true, foreign_key: true |
|
4 | t.references :problem, index: true, foreign_key: true |
|
5 | t.references :tag, index: true, foreign_key: true |
|
5 | t.references :tag, index: true, foreign_key: true |
|
6 |
|
6 |
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