| @@ -0,0 +1,4 @@ | ||
| class ApplicationMailer < ActionMailer::Base | ||
| default from: 'from@example.com' | ||
| layout 'mailer' | ||
| end |
| @@ -0,0 +1,3 @@ | ||
| class ApplicationRecord < ActiveRecord::Base | ||
| self.abstract_class = true | ||
| end |
| @@ -0,0 +1,5 @@ | ||
| class Cour < ApplicationRecord | ||
|
|
||
| has_many :lecon | ||
|
|
||
| end |
| @@ -0,0 +1,2 @@ | ||
| class Lecon < ApplicationRecord | ||
| end |
| @@ -0,0 +1,15 @@ | ||
| <!DOCTYPE html> | ||
| <html> | ||
| <head> | ||
| <title>MOOCademy</title> | ||
| <%= csrf_meta_tags %> | ||
| <%= csp_meta_tag %> | ||
| <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> | ||
| <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %> | ||
| </head> | ||
|
|
||
| <body> | ||
| <%= yield %> | ||
| </body> | ||
| </html> |
| @@ -0,0 +1,13 @@ | ||
| <!DOCTYPE html> | ||
| <html> | ||
| <head> | ||
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||
| <style> | ||
| /* Email styles need to be inline */ | ||
| </style> | ||
| </head> | ||
|
|
||
| <body> | ||
| <%= yield %> | ||
| </body> | ||
| </html> |
| @@ -0,0 +1 @@ | ||
| <%= yield %> |
| @@ -0,0 +1,3 @@ | ||
| #!/usr/bin/env ruby | ||
| ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) | ||
| load Gem.bin_path('bundler', 'bundle') |
| @@ -0,0 +1,9 @@ | ||
| #!/usr/bin/env ruby | ||
| begin | ||
| load File.expand_path('../spring', __FILE__) | ||
| rescue LoadError => e | ||
| raise unless e.message.include?('spring') | ||
| end | ||
| APP_PATH = File.expand_path('../config/application', __dir__) | ||
| require_relative '../config/boot' | ||
| require 'rails/commands' |
| @@ -0,0 +1,9 @@ | ||
| #!/usr/bin/env ruby | ||
| begin | ||
| load File.expand_path('../spring', __FILE__) | ||
| rescue LoadError => e | ||
| raise unless e.message.include?('spring') | ||
| end | ||
| require_relative '../config/boot' | ||
| require 'rake' | ||
| Rake.application.run |
| @@ -0,0 +1,36 @@ | ||
| #!/usr/bin/env ruby | ||
| require 'fileutils' | ||
| include FileUtils | ||
|
|
||
| # path to your application root. | ||
| APP_ROOT = File.expand_path('..', __dir__) | ||
|
|
||
| def system!(*args) | ||
| system(*args) || abort("\n== Command #{args} failed ==") | ||
| end | ||
|
|
||
| chdir APP_ROOT do | ||
| # This script is a starting point to setup your application. | ||
| # Add necessary setup steps to this file. | ||
|
|
||
| puts '== Installing dependencies ==' | ||
| system! 'gem install bundler --conservative' | ||
| system('bundle check') || system!('bundle install') | ||
|
|
||
| # Install JavaScript dependencies if using Yarn | ||
| # system('bin/yarn') | ||
|
|
||
| # puts "\n== Copying sample files ==" | ||
| # unless File.exist?('config/database.yml') | ||
| # cp 'config/database.yml.sample', 'config/database.yml' | ||
| # end | ||
|
|
||
| puts "\n== Preparing database ==" | ||
| system! 'bin/rails db:setup' | ||
|
|
||
| puts "\n== Removing old logs and tempfiles ==" | ||
| system! 'bin/rails log:clear tmp:clear' | ||
|
|
||
| puts "\n== Restarting application server ==" | ||
| system! 'bin/rails restart' | ||
| end |
| @@ -0,0 +1,17 @@ | ||
| #!/usr/bin/env ruby | ||
|
|
||
| # This file loads spring without using Bundler, in order to be fast. | ||
| # It gets overwritten when you run the `spring binstub` command. | ||
|
|
||
| unless defined?(Spring) | ||
| require 'rubygems' | ||
| require 'bundler' | ||
|
|
||
| lockfile = Bundler::LockfileParser.new(Bundler.default_lockfile.read) | ||
| spring = lockfile.specs.detect { |spec| spec.name == "spring" } | ||
| if spring | ||
| Gem.use_paths Gem.dir, Bundler.bundle_path.to_s, *Gem.path | ||
| gem 'spring', spring.version | ||
| require 'spring/binstub' | ||
| end | ||
| end |
| @@ -0,0 +1,31 @@ | ||
| #!/usr/bin/env ruby | ||
| require 'fileutils' | ||
| include FileUtils | ||
|
|
||
| # path to your application root. | ||
| APP_ROOT = File.expand_path('..', __dir__) | ||
|
|
||
| def system!(*args) | ||
| system(*args) || abort("\n== Command #{args} failed ==") | ||
| end | ||
|
|
||
| chdir APP_ROOT do | ||
| # This script is a way to update your development environment automatically. | ||
| # Add necessary update steps to this file. | ||
|
|
||
| puts '== Installing dependencies ==' | ||
| system! 'gem install bundler --conservative' | ||
| system('bundle check') || system!('bundle install') | ||
|
|
||
| # Install JavaScript dependencies if using Yarn | ||
| # system('bin/yarn') | ||
|
|
||
| puts "\n== Updating database ==" | ||
| system! 'bin/rails db:migrate' | ||
|
|
||
| puts "\n== Removing old logs and tempfiles ==" | ||
| system! 'bin/rails log:clear tmp:clear' | ||
|
|
||
| puts "\n== Restarting application server ==" | ||
| system! 'bin/rails restart' | ||
| end |
| @@ -0,0 +1,11 @@ | ||
| #!/usr/bin/env ruby | ||
| APP_ROOT = File.expand_path('..', __dir__) | ||
| Dir.chdir(APP_ROOT) do | ||
| begin | ||
| exec "yarnpkg", *ARGV | ||
| rescue Errno::ENOENT | ||
| $stderr.puts "Yarn executable was not detected in the system." | ||
| $stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install" | ||
| exit 1 | ||
| end | ||
| end |
| @@ -0,0 +1,5 @@ | ||
| # This file is used by Rack-based servers to start the application. | ||
|
|
||
| require_relative 'config/environment' | ||
|
|
||
| run Rails.application |
| @@ -0,0 +1,19 @@ | ||
| require_relative 'boot' | ||
|
|
||
| require 'rails/all' | ||
|
|
||
| # Require the gems listed in Gemfile, including any gems | ||
| # you've limited to :test, :development, or :production. | ||
| Bundler.require(*Rails.groups) | ||
|
|
||
| module MOOCademy | ||
| class Application < Rails::Application | ||
| # Initialize configuration defaults for originally generated Rails version. | ||
| config.load_defaults 5.2 | ||
|
|
||
| # Settings in config/environments/* take precedence over those specified here. | ||
| # Application configuration can go into files in config/initializers | ||
| # -- all .rb files in that directory are automatically loaded after loading | ||
| # the framework and any gems in your application. | ||
| end | ||
| end |
| @@ -0,0 +1,4 @@ | ||
| ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) | ||
|
|
||
| require 'bundler/setup' # Set up gems listed in the Gemfile. | ||
| require 'bootsnap/setup' # Speed up boot time by caching expensive operations. |
| @@ -0,0 +1,10 @@ | ||
| development: | ||
| adapter: async | ||
|
|
||
| test: | ||
| adapter: async | ||
|
|
||
| production: | ||
| adapter: redis | ||
| url: <%= ENV.fetch("REDIS_URL") { "redis://localhost:6379/1" } %> | ||
| channel_prefix: MOOCademy_production |
| @@ -0,0 +1 @@ | ||
| dpg9MKYyTD42o0aZ49rlPHY8TbnRFE2t54mfGUKqCf/LrqDf8PkJ/cvuEprY9WtmpMjWnm/uYcNDic8AQ84G7ESgFC+MnO2giGH/AW4iNhdch38HRbJcHhjfxOG7eOlRA1H2YMcXZpxcm6skUuHwMuGh4xbknD2Djunq2gZ+5G70Y5/f4OxwKDdW8bkjfF+MvZIcjMkRG84U03N0l6G3DOgsbWycKZQXfwaTiHbZ9KpJuo+OEhbNVBs6Brfg4HiZXdsDlHQrVed8wyt7fJ6+8OHrjKNUw3yw2cCSypu2ZG0LSwB3/erxlDjG8H7n6QcidM3tvkIrEM9YfixCgaFY6OojGGjBy/Ch7AOLJwoHPgDzh6GwTYkjaqm7xtU9uAal+RU3zP/2NoUY/Bpw/5wGPhyw8wdd7qIsjrmJ--fAJNakcrNgxZVNci--T6rYFwFgdzYSygU4jcaZ4A== |
| @@ -0,0 +1,25 @@ | ||
| # SQLite version 3.x | ||
| # gem install sqlite3 | ||
| # | ||
| # Ensure the SQLite 3 gem is defined in your Gemfile | ||
| # gem 'sqlite3' | ||
| # | ||
| default: &default | ||
| adapter: sqlite3 | ||
| pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> | ||
| timeout: 5000 | ||
|
|
||
| development: | ||
| <<: *default | ||
| database: db/development.sqlite3 | ||
|
|
||
| # Warning: The database defined as "test" will be erased and | ||
| # re-generated from your development database when you run "rake". | ||
| # Do not set this db to the same as development or production. | ||
| test: | ||
| <<: *default | ||
| database: db/test.sqlite3 | ||
|
|
||
| production: | ||
| <<: *default | ||
| database: db/production.sqlite3 |
| @@ -0,0 +1,5 @@ | ||
| # Load the Rails application. | ||
| require_relative 'application' | ||
|
|
||
| # Initialize the Rails application. | ||
| Rails.application.initialize! |
| @@ -0,0 +1,61 @@ | ||
| Rails.application.configure do | ||
| # Settings specified here will take precedence over those in config/application.rb. | ||
|
|
||
| # In the development environment your application's code is reloaded on | ||
| # every request. This slows down response time but is perfect for development | ||
| # since you don't have to restart the web server when you make code changes. | ||
| config.cache_classes = false | ||
|
|
||
| # Do not eager load code on boot. | ||
| config.eager_load = false | ||
|
|
||
| # Show full error reports. | ||
| config.consider_all_requests_local = true | ||
|
|
||
| # Enable/disable caching. By default caching is disabled. | ||
| # Run rails dev:cache to toggle caching. | ||
| if Rails.root.join('tmp', 'caching-dev.txt').exist? | ||
| config.action_controller.perform_caching = true | ||
|
|
||
| config.cache_store = :memory_store | ||
| config.public_file_server.headers = { | ||
| 'Cache-Control' => "public, max-age=#{2.days.to_i}" | ||
| } | ||
| else | ||
| config.action_controller.perform_caching = false | ||
|
|
||
| config.cache_store = :null_store | ||
| end | ||
|
|
||
| # Store uploaded files on the local file system (see config/storage.yml for options) | ||
| config.active_storage.service = :local | ||
|
|
||
| # Don't care if the mailer can't send. | ||
| config.action_mailer.raise_delivery_errors = false | ||
|
|
||
| config.action_mailer.perform_caching = false | ||
|
|
||
| # Print deprecation notices to the Rails logger. | ||
| config.active_support.deprecation = :log | ||
|
|
||
| # Raise an error on page load if there are pending migrations. | ||
| config.active_record.migration_error = :page_load | ||
|
|
||
| # Highlight code that triggered database queries in logs. | ||
| config.active_record.verbose_query_logs = true | ||
|
|
||
| # Debug mode disables concatenation and preprocessing of assets. | ||
| # This option may cause significant delays in view rendering with a large | ||
| # number of complex assets. | ||
| config.assets.debug = true | ||
|
|
||
| # Suppress logger output for asset requests. | ||
| config.assets.quiet = true | ||
|
|
||
| # Raises error for missing translations | ||
| # config.action_view.raise_on_missing_translations = true | ||
|
|
||
| # Use an evented file watcher to asynchronously detect changes in source code, | ||
| # routes, locales, etc. This feature depends on the listen gem. | ||
| config.file_watcher = ActiveSupport::EventedFileUpdateChecker | ||
| end |
| @@ -0,0 +1,94 @@ | ||
| Rails.application.configure do | ||
| # Settings specified here will take precedence over those in config/application.rb. | ||
|
|
||
| # Code is not reloaded between requests. | ||
| config.cache_classes = true | ||
|
|
||
| # Eager load code on boot. This eager loads most of Rails and | ||
| # your application in memory, allowing both threaded web servers | ||
| # and those relying on copy on write to perform better. | ||
| # Rake tasks automatically ignore this option for performance. | ||
| config.eager_load = true | ||
|
|
||
| # Full error reports are disabled and caching is turned on. | ||
| config.consider_all_requests_local = false | ||
| config.action_controller.perform_caching = true | ||
|
|
||
| # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"] | ||
| # or in config/master.key. This key is used to decrypt credentials (and other encrypted files). | ||
| # config.require_master_key = true | ||
|
|
||
| # Disable serving static files from the `/public` folder by default since | ||
| # Apache or NGINX already handles this. | ||
| config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? | ||
|
|
||
| # Compress JavaScripts and CSS. | ||
| config.assets.js_compressor = :uglifier | ||
| # config.assets.css_compressor = :sass | ||
|
|
||
| # Do not fallback to assets pipeline if a precompiled asset is missed. | ||
| config.assets.compile = false | ||
|
|
||
| # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb | ||
|
|
||
| # Enable serving of images, stylesheets, and JavaScripts from an asset server. | ||
| # config.action_controller.asset_host = 'http://assets.example.com' | ||
|
|
||
| # Specifies the header that your server uses for sending files. | ||
| # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache | ||
| # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX | ||
|
|
||
| # Store uploaded files on the local file system (see config/storage.yml for options) | ||
| config.active_storage.service = :local | ||
|
|
||
| # Mount Action Cable outside main process or domain | ||
| # config.action_cable.mount_path = nil | ||
| # config.action_cable.url = 'wss://example.com/cable' | ||
| # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ] | ||
|
|
||
| # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. | ||
| # config.force_ssl = true | ||
|
|
||
| # Use the lowest log level to ensure availability of diagnostic information | ||
| # when problems arise. | ||
| config.log_level = :debug | ||
|
|
||
| # Prepend all log lines with the following tags. | ||
| config.log_tags = [ :request_id ] | ||
|
|
||
| # Use a different cache store in production. | ||
| # config.cache_store = :mem_cache_store | ||
|
|
||
| # Use a real queuing backend for Active Job (and separate queues per environment) | ||
| # config.active_job.queue_adapter = :resque | ||
| # config.active_job.queue_name_prefix = "MOOCademy_#{Rails.env}" | ||
|
|
||
| config.action_mailer.perform_caching = false | ||
|
|
||
| # Ignore bad email addresses and do not raise email delivery errors. | ||
| # Set this to true and configure the email server for immediate delivery to raise delivery errors. | ||
| # config.action_mailer.raise_delivery_errors = false | ||
|
|
||
| # Enable locale fallbacks for I18n (makes lookups for any locale fall back to | ||
| # the I18n.default_locale when a translation cannot be found). | ||
| config.i18n.fallbacks = true | ||
|
|
||
| # Send deprecation notices to registered listeners. | ||
| config.active_support.deprecation = :notify | ||
|
|
||
| # Use default logging formatter so that PID and timestamp are not suppressed. | ||
| config.log_formatter = ::Logger::Formatter.new | ||
|
|
||
| # Use a different logger for distributed setups. | ||
| # require 'syslog/logger' | ||
| # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name') | ||
|
|
||
| if ENV["RAILS_LOG_TO_STDOUT"].present? | ||
| logger = ActiveSupport::Logger.new(STDOUT) | ||
| logger.formatter = config.log_formatter | ||
| config.logger = ActiveSupport::TaggedLogging.new(logger) | ||
| end | ||
|
|
||
| # Do not dump schema after migrations. | ||
| config.active_record.dump_schema_after_migration = false | ||
| end |
| @@ -0,0 +1,46 @@ | ||
| Rails.application.configure do | ||
| # Settings specified here will take precedence over those in config/application.rb. | ||
|
|
||
| # The test environment is used exclusively to run your application's | ||
| # test suite. You never need to work with it otherwise. Remember that | ||
| # your test database is "scratch space" for the test suite and is wiped | ||
| # and recreated between test runs. Don't rely on the data there! | ||
| config.cache_classes = true | ||
|
|
||
| # Do not eager load code on boot. This avoids loading your whole application | ||
| # just for the purpose of running a single test. If you are using a tool that | ||
| # preloads Rails for running tests, you may have to set it to true. | ||
| config.eager_load = false | ||
|
|
||
| # Configure public file server for tests with Cache-Control for performance. | ||
| config.public_file_server.enabled = true | ||
| config.public_file_server.headers = { | ||
| 'Cache-Control' => "public, max-age=#{1.hour.to_i}" | ||
| } | ||
|
|
||
| # Show full error reports and disable caching. | ||
| config.consider_all_requests_local = true | ||
| config.action_controller.perform_caching = false | ||
|
|
||
| # Raise exceptions instead of rendering exception templates. | ||
| config.action_dispatch.show_exceptions = false | ||
|
|
||
| # Disable request forgery protection in test environment. | ||
| config.action_controller.allow_forgery_protection = false | ||
|
|
||
| # Store uploaded files on the local file system in a temporary directory | ||
| config.active_storage.service = :test | ||
|
|
||
| config.action_mailer.perform_caching = false | ||
|
|
||
| # Tell Action Mailer not to deliver emails to the real world. | ||
| # The :test delivery method accumulates sent emails in the | ||
| # ActionMailer::Base.deliveries array. | ||
| config.action_mailer.delivery_method = :test | ||
|
|
||
| # Print deprecation notices to the stderr. | ||
| config.active_support.deprecation = :stderr | ||
|
|
||
| # Raises error for missing translations | ||
| # config.action_view.raise_on_missing_translations = true | ||
| end |
| @@ -0,0 +1,8 @@ | ||
| # Be sure to restart your server when you modify this file. | ||
|
|
||
| # ActiveSupport::Reloader.to_prepare do | ||
| # ApplicationController.renderer.defaults.merge!( | ||
| # http_host: 'example.org', | ||
| # https: false | ||
| # ) | ||
| # end |
| @@ -0,0 +1,14 @@ | ||
| # Be sure to restart your server when you modify this file. | ||
|
|
||
| # Version of your assets, change this if you want to expire all your assets. | ||
| Rails.application.config.assets.version = '1.0' | ||
|
|
||
| # Add additional assets to the asset load path. | ||
| # Rails.application.config.assets.paths << Emoji.images_path | ||
| # Add Yarn node_modules folder to the asset load path. | ||
| Rails.application.config.assets.paths << Rails.root.join('node_modules') | ||
|
|
||
| # Precompile additional assets. | ||
| # application.js, application.css, and all non-JS/CSS in the app/assets | ||
| # folder are already added. | ||
| # Rails.application.config.assets.precompile += %w( admin.js admin.css ) |
| @@ -0,0 +1,7 @@ | ||
| # Be sure to restart your server when you modify this file. | ||
|
|
||
| # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. | ||
| # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } | ||
|
|
||
| # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. | ||
| # Rails.backtrace_cleaner.remove_silencers! |
| @@ -0,0 +1,25 @@ | ||
| # Be sure to restart your server when you modify this file. | ||
|
|
||
| # Define an application-wide content security policy | ||
| # For further information see the following documentation | ||
| # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy | ||
|
|
||
| # Rails.application.config.content_security_policy do |policy| | ||
| # policy.default_src :self, :https | ||
| # policy.font_src :self, :https, :data | ||
| # policy.img_src :self, :https, :data | ||
| # policy.object_src :none | ||
| # policy.script_src :self, :https | ||
| # policy.style_src :self, :https | ||
|
|
||
| # # Specify URI for violation reports | ||
| # # policy.report_uri "/csp-violation-report-endpoint" | ||
| # end | ||
|
|
||
| # If you are using UJS then enable automatic nonce generation | ||
| # Rails.application.config.content_security_policy_nonce_generator = -> request { SecureRandom.base64(16) } | ||
|
|
||
| # Report CSP violations to a specified URI | ||
| # For further information see the following documentation: | ||
| # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only | ||
| # Rails.application.config.content_security_policy_report_only = true |
| @@ -0,0 +1,5 @@ | ||
| # Be sure to restart your server when you modify this file. | ||
|
|
||
| # Specify a serializer for the signed and encrypted cookie jars. | ||
| # Valid options are :json, :marshal, and :hybrid. | ||
| Rails.application.config.action_dispatch.cookies_serializer = :json |
| @@ -0,0 +1,4 @@ | ||
| # Be sure to restart your server when you modify this file. | ||
|
|
||
| # Configure sensitive parameters which will be filtered from the log file. | ||
| Rails.application.config.filter_parameters += [:password] |
| @@ -0,0 +1,16 @@ | ||
| # Be sure to restart your server when you modify this file. | ||
|
|
||
| # Add new inflection rules using the following format. Inflections | ||
| # are locale specific, and you may define rules for as many different | ||
| # locales as you wish. All of these examples are active by default: | ||
| # ActiveSupport::Inflector.inflections(:en) do |inflect| | ||
| # inflect.plural /^(ox)$/i, '\1en' | ||
| # inflect.singular /^(ox)en/i, '\1' | ||
| # inflect.irregular 'person', 'people' | ||
| # inflect.uncountable %w( fish sheep ) | ||
| # end | ||
|
|
||
| # These inflection rules are supported but not enabled by default: | ||
| # ActiveSupport::Inflector.inflections(:en) do |inflect| | ||
| # inflect.acronym 'RESTful' | ||
| # end |
| @@ -0,0 +1,4 @@ | ||
| # Be sure to restart your server when you modify this file. | ||
|
|
||
| # Add new mime types for use in respond_to blocks: | ||
| # Mime::Type.register "text/richtext", :rtf |
| @@ -0,0 +1,14 @@ | ||
| # Be sure to restart your server when you modify this file. | ||
|
|
||
| # This file contains settings for ActionController::ParamsWrapper which | ||
| # is enabled by default. | ||
|
|
||
| # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. | ||
| ActiveSupport.on_load(:action_controller) do | ||
| wrap_parameters format: [:json] | ||
| end | ||
|
|
||
| # To enable root element in JSON for ActiveRecord objects. | ||
| # ActiveSupport.on_load(:active_record) do | ||
| # self.include_root_in_json = true | ||
| # end |
| @@ -0,0 +1,33 @@ | ||
| # Files in the config/locales directory are used for internationalization | ||
| # and are automatically loaded by Rails. If you want to use locales other | ||
| # than English, add the necessary files in this directory. | ||
| # | ||
| # To use the locales, use `I18n.t`: | ||
| # | ||
| # I18n.t 'hello' | ||
| # | ||
| # In views, this is aliased to just `t`: | ||
| # | ||
| # <%= t('hello') %> | ||
| # | ||
| # To use a different locale, set it with `I18n.locale`: | ||
| # | ||
| # I18n.locale = :es | ||
| # | ||
| # This would use the information in config/locales/es.yml. | ||
| # | ||
| # The following keys must be escaped otherwise they will not be retrieved by | ||
| # the default I18n backend: | ||
| # | ||
| # true, false, on, off, yes, no | ||
| # | ||
| # Instead, surround them with single quotes. | ||
| # | ||
| # en: | ||
| # 'true': 'foo' | ||
| # | ||
| # To learn more, please read the Rails Internationalization guide | ||
| # available at http://guides.rubyonrails.org/i18n.html. | ||
|
|
||
| en: | ||
| hello: "Hello world" |
| @@ -0,0 +1,34 @@ | ||
| # Puma can serve each request in a thread from an internal thread pool. | ||
| # The `threads` method setting takes two numbers: a minimum and maximum. | ||
| # Any libraries that use thread pools should be configured to match | ||
| # the maximum value specified for Puma. Default is set to 5 threads for minimum | ||
| # and maximum; this matches the default thread size of Active Record. | ||
| # | ||
| threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 } | ||
| threads threads_count, threads_count | ||
|
|
||
| # Specifies the `port` that Puma will listen on to receive requests; default is 3000. | ||
| # | ||
| port ENV.fetch("PORT") { 3000 } | ||
|
|
||
| # Specifies the `environment` that Puma will run in. | ||
| # | ||
| environment ENV.fetch("RAILS_ENV") { "development" } | ||
|
|
||
| # Specifies the number of `workers` to boot in clustered mode. | ||
| # Workers are forked webserver processes. If using threads and workers together | ||
| # the concurrency of the application would be max `threads` * `workers`. | ||
| # Workers do not work on JRuby or Windows (both of which do not support | ||
| # processes). | ||
| # | ||
| # workers ENV.fetch("WEB_CONCURRENCY") { 2 } | ||
|
|
||
| # Use the `preload_app!` method when specifying a `workers` number. | ||
| # This directive tells Puma to first boot the application and load code | ||
| # before forking the application. This takes advantage of Copy On Write | ||
| # process behavior so workers use less memory. | ||
| # | ||
| # preload_app! | ||
|
|
||
| # Allow puma to be restarted by `rails restart` command. | ||
| plugin :tmp_restart |
| @@ -0,0 +1,3 @@ | ||
| Rails.application.routes.draw do | ||
| # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html | ||
| end |
| @@ -0,0 +1,6 @@ | ||
| %w[ | ||
| .ruby-version | ||
| .rbenv-vars | ||
| tmp/restart.txt | ||
| tmp/caching-dev.txt | ||
| ].each { |path| Spring.watch(path) } |
| @@ -0,0 +1,34 @@ | ||
| test: | ||
| service: Disk | ||
| root: <%= Rails.root.join("tmp/storage") %> | ||
|
|
||
| local: | ||
| service: Disk | ||
| root: <%= Rails.root.join("storage") %> | ||
|
|
||
| # Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key) | ||
| # amazon: | ||
| # service: S3 | ||
| # access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %> | ||
| # secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %> | ||
| # region: us-east-1 | ||
| # bucket: your_own_bucket | ||
|
|
||
| # Remember not to checkin your GCS keyfile to a repository | ||
| # google: | ||
| # service: GCS | ||
| # project: your_project | ||
| # credentials: <%= Rails.root.join("path/to/gcs.keyfile") %> | ||
| # bucket: your_own_bucket | ||
|
|
||
| # Use rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key) | ||
| # microsoft: | ||
| # service: AzureStorage | ||
| # storage_account_name: your_account_name | ||
| # storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %> | ||
| # container: your_container_name | ||
|
|
||
| # mirror: | ||
| # service: Mirror | ||
| # primary: local | ||
| # mirrors: [ amazon, google, microsoft ] |
| @@ -0,0 +1,9 @@ | ||
| class CreateCours < ActiveRecord::Migration[5.2] | ||
| def change | ||
| create_table :cours do |t| | ||
| t.text :cour | ||
| t.text :description | ||
| t.timestamps | ||
| end | ||
| end | ||
| end |
| @@ -0,0 +1,9 @@ | ||
| class CreateLecons < ActiveRecord::Migration[5.2] | ||
| def change | ||
| create_table :lecons do |t| | ||
| t.string :title | ||
| t.text :body | ||
| t.timestamps | ||
| end | ||
| end | ||
| end |
| @@ -0,0 +1,5 @@ | ||
| class AddLeconToArticle < ActiveRecord::Migration[5.2] | ||
| def change | ||
| add_reference :cours, :lecons, foreign_key: true | ||
| end | ||
| end |
| @@ -0,0 +1,31 @@ | ||
| # This file is auto-generated from the current state of the database. Instead | ||
| # of editing this file, please use the migrations feature of Active Record to | ||
| # incrementally modify your database, and then regenerate this schema definition. | ||
| # | ||
| # Note that this schema.rb definition is the authoritative source for your | ||
| # database schema. If you need to create the application database on another | ||
| # system, you should be using db:schema:load, not running all the migrations | ||
| # from scratch. The latter is a flawed and unsustainable approach (the more migrations | ||
| # you'll amass, the slower it'll run and the greater likelihood for issues). | ||
| # | ||
| # It's strongly recommended that you check this file into your version control system. | ||
|
|
||
| ActiveRecord::Schema.define(version: 2018_10_24_191436) do | ||
|
|
||
| create_table "cours", force: :cascade do |t| | ||
| t.text "cour" | ||
| t.text "description" | ||
| t.datetime "created_at", null: false | ||
| t.datetime "updated_at", null: false | ||
| t.integer "lecons_id" | ||
| t.index ["lecons_id"], name: "index_cours_on_lecons_id" | ||
| end | ||
|
|
||
| create_table "lecons", force: :cascade do |t| | ||
| t.string "title" | ||
| t.text "body" | ||
| t.datetime "created_at", null: false | ||
| t.datetime "updated_at", null: false | ||
| end | ||
|
|
||
| end |
| @@ -0,0 +1,8 @@ | ||
| # This file should contain all the record creation needed to seed the database with its default values. | ||
| # The data can then be loaded with the rails db:seed command (or created alongside the database with db:setup). | ||
| # | ||
| # Examples: | ||
| # | ||
| # movies Tu veux faire de la concurrence à Pinterest, donc tu voudrais créer un un site où les utilisateurs peuvent créer des "pins". Chauqe pin contient une URL d'une image = Movie.create([{ name: 'Star Wars' }, { name: 'Lord of the Rings' }]) | ||
| # Character.create(name: 'Luke', movie: movies.first) | ||
|
|
| @@ -0,0 +1,5 @@ | ||
| { | ||
| "name": "MOOCademy", | ||
| "private": true, | ||
| "dependencies": {} | ||
| } |
| @@ -0,0 +1,67 @@ | ||
| <!DOCTYPE html> | ||
| <html> | ||
| <head> | ||
| <title>The page you were looking for doesn't exist (404)</title> | ||
| <meta name="viewport" content="width=device-width,initial-scale=1"> | ||
| <style> | ||
| .rails-default-error-page { | ||
| background-color: #EFEFEF; | ||
| color: #2E2F30; | ||
| text-align: center; | ||
| font-family: arial, sans-serif; | ||
| margin: 0; | ||
| } | ||
|
|
||
| .rails-default-error-page div.dialog { | ||
| width: 95%; | ||
| max-width: 33em; | ||
| margin: 4em auto 0; | ||
| } | ||
|
|
||
| .rails-default-error-page div.dialog > div { | ||
| border: 1px solid #CCC; | ||
| border-right-color: #999; | ||
| border-left-color: #999; | ||
| border-bottom-color: #BBB; | ||
| border-top: #B00100 solid 4px; | ||
| border-top-left-radius: 9px; | ||
| border-top-right-radius: 9px; | ||
| background-color: white; | ||
| padding: 7px 12% 0; | ||
| box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); | ||
| } | ||
|
|
||
| .rails-default-error-page h1 { | ||
| font-size: 100%; | ||
| color: #730E15; | ||
| line-height: 1.5em; | ||
| } | ||
|
|
||
| .rails-default-error-page div.dialog > p { | ||
| margin: 0 0 1em; | ||
| padding: 1em; | ||
| background-color: #F7F7F7; | ||
| border: 1px solid #CCC; | ||
| border-right-color: #999; | ||
| border-left-color: #999; | ||
| border-bottom-color: #999; | ||
| border-bottom-left-radius: 4px; | ||
| border-bottom-right-radius: 4px; | ||
| border-top-color: #DADADA; | ||
| color: #666; | ||
| box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); | ||
| } | ||
| </style> | ||
| </head> | ||
|
|
||
| <body class="rails-default-error-page"> | ||
| <!-- This file lives in public/404.html --> | ||
| <div class="dialog"> | ||
| <div> | ||
| <h1>The page you were looking for doesn't exist.</h1> | ||
| <p>You may have mistyped the address or the page may have moved.</p> | ||
| </div> | ||
| <p>If you are the application owner check the logs for more information.</p> | ||
| </div> | ||
| </body> | ||
| </html> |
| @@ -0,0 +1,67 @@ | ||
| <!DOCTYPE html> | ||
| <html> | ||
| <head> | ||
| <title>The change you wanted was rejected (422)</title> | ||
| <meta name="viewport" content="width=device-width,initial-scale=1"> | ||
| <style> | ||
| .rails-default-error-page { | ||
| background-color: #EFEFEF; | ||
| color: #2E2F30; | ||
| text-align: center; | ||
| font-family: arial, sans-serif; | ||
| margin: 0; | ||
| } | ||
|
|
||
| .rails-default-error-page div.dialog { | ||
| width: 95%; | ||
| max-width: 33em; | ||
| margin: 4em auto 0; | ||
| } | ||
|
|
||
| .rails-default-error-page div.dialog > div { | ||
| border: 1px solid #CCC; | ||
| border-right-color: #999; | ||
| border-left-color: #999; | ||
| border-bottom-color: #BBB; | ||
| border-top: #B00100 solid 4px; | ||
| border-top-left-radius: 9px; | ||
| border-top-right-radius: 9px; | ||
| background-color: white; | ||
| padding: 7px 12% 0; | ||
| box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); | ||
| } | ||
|
|
||
| .rails-default-error-page h1 { | ||
| font-size: 100%; | ||
| color: #730E15; | ||
| line-height: 1.5em; | ||
| } | ||
|
|
||
| .rails-default-error-page div.dialog > p { | ||
| margin: 0 0 1em; | ||
| padding: 1em; | ||
| background-color: #F7F7F7; | ||
| border: 1px solid #CCC; | ||
| border-right-color: #999; | ||
| border-left-color: #999; | ||
| border-bottom-color: #999; | ||
| border-bottom-left-radius: 4px; | ||
| border-bottom-right-radius: 4px; | ||
| border-top-color: #DADADA; | ||
| color: #666; | ||
| box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); | ||
| } | ||
| </style> | ||
| </head> | ||
|
|
||
| <body class="rails-default-error-page"> | ||
| <!-- This file lives in public/422.html --> | ||
| <div class="dialog"> | ||
| <div> | ||
| <h1>The change you wanted was rejected.</h1> | ||
| <p>Maybe you tried to change something you didn't have access to.</p> | ||
| </div> | ||
| <p>If you are the application owner check the logs for more information.</p> | ||
| </div> | ||
| </body> | ||
| </html> |
| @@ -0,0 +1,66 @@ | ||
| <!DOCTYPE html> | ||
| <html> | ||
| <head> | ||
| <title>We're sorry, but something went wrong (500)</title> | ||
| <meta name="viewport" content="width=device-width,initial-scale=1"> | ||
| <style> | ||
| .rails-default-error-page { | ||
| background-color: #EFEFEF; | ||
| color: #2E2F30; | ||
| text-align: center; | ||
| font-family: arial, sans-serif; | ||
| margin: 0; | ||
| } | ||
|
|
||
| .rails-default-error-page div.dialog { | ||
| width: 95%; | ||
| max-width: 33em; | ||
| margin: 4em auto 0; | ||
| } | ||
|
|
||
| .rails-default-error-page div.dialog > div { | ||
| border: 1px solid #CCC; | ||
| border-right-color: #999; | ||
| border-left-color: #999; | ||
| border-bottom-color: #BBB; | ||
| border-top: #B00100 solid 4px; | ||
| border-top-left-radius: 9px; | ||
| border-top-right-radius: 9px; | ||
| background-color: white; | ||
| padding: 7px 12% 0; | ||
| box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); | ||
| } | ||
|
|
||
| .rails-default-error-page h1 { | ||
| font-size: 100%; | ||
| color: #730E15; | ||
| line-height: 1.5em; | ||
| } | ||
|
|
||
| .rails-default-error-page div.dialog > p { | ||
| margin: 0 0 1em; | ||
| padding: 1em; | ||
| background-color: #F7F7F7; | ||
| border: 1px solid #CCC; | ||
| border-right-color: #999; | ||
| border-left-color: #999; | ||
| border-bottom-color: #999; | ||
| border-bottom-left-radius: 4px; | ||
| border-bottom-right-radius: 4px; | ||
| border-top-color: #DADADA; | ||
| color: #666; | ||
| box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); | ||
| } | ||
| </style> | ||
| </head> | ||
|
|
||
| <body class="rails-default-error-page"> | ||
| <!-- This file lives in public/500.html --> | ||
| <div class="dialog"> | ||
| <div> | ||
| <h1>We're sorry, but something went wrong.</h1> | ||
| </div> | ||
| <p>If you are the application owner check the logs for more information.</p> | ||
| </div> | ||
| </body> | ||
| </html> |
| @@ -0,0 +1 @@ | ||
| # See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file |
| @@ -0,0 +1,5 @@ | ||
| require "test_helper" | ||
|
|
||
| class ApplicationSystemTestCase < ActionDispatch::SystemTestCase | ||
| driven_by :selenium, using: :chrome, screen_size: [1400, 1400] | ||
| end |
| @@ -0,0 +1,11 @@ | ||
| # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html | ||
|
|
||
| # This model initially had no columns defined. If you add columns to the | ||
| # model remove the '{}' from the fixture names and add the columns immediately | ||
| # below each fixture, per the syntax in the comments below | ||
| # | ||
| one: {} | ||
| # column: value | ||
| # | ||
| two: {} | ||
| # column: value |
| @@ -0,0 +1,11 @@ | ||
| # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html | ||
|
|
||
| # This model initially had no columns defined. If you add columns to the | ||
| # model remove the '{}' from the fixture names and add the columns immediately | ||
| # below each fixture, per the syntax in the comments below | ||
| # | ||
| one: {} | ||
| # column: value | ||
| # | ||
| two: {} | ||
| # column: value |
| @@ -0,0 +1,7 @@ | ||
| require 'test_helper' | ||
|
|
||
| class CourTest < ActiveSupport::TestCase | ||
| # test "the truth" do | ||
| # assert true | ||
| # end | ||
| end |
| @@ -0,0 +1,7 @@ | ||
| require 'test_helper' | ||
|
|
||
| class LeconTest < ActiveSupport::TestCase | ||
| # test "the truth" do | ||
| # assert true | ||
| # end | ||
| end |
| @@ -0,0 +1,10 @@ | ||
| ENV['RAILS_ENV'] ||= 'test' | ||
| require_relative '../config/environment' | ||
| require 'rails/test_help' | ||
|
|
||
| class ActiveSupport::TestCase | ||
| # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order. | ||
| fixtures :all | ||
|
|
||
| # Add more helper methods to be used by all tests here... | ||
| end |