From 4e3009b5c2b069a76b26c9d7b2e60d0ad0937127 Mon Sep 17 00:00:00 2001 From: Ari Timonen Date: Mon, 9 Mar 2020 00:07:12 +0200 Subject: [PATCH] Rails 4 updates --- Gemfile | 1 + Gemfile.lock | 11 ++++ app/controllers/shoutmsgs_controller.rb | 7 +++ app/models/shoutmsg.rb | 10 ++++ app/views/shoutmsgs/index.html.erb | 20 +++++++ config/environments/development.rb | 7 +++ spec/controllers/shoutmsgs_controller_spec.rb | 9 ++++ spec/rails_helper.rb | 52 +++++++++++++++++++ 8 files changed, 117 insertions(+) create mode 100644 app/views/shoutmsgs/index.html.erb create mode 100644 spec/controllers/shoutmsgs_controller_spec.rb create mode 100644 spec/rails_helper.rb diff --git a/Gemfile b/Gemfile index 0400404..2c798dd 100644 --- a/Gemfile +++ b/Gemfile @@ -57,6 +57,7 @@ group :development do gem 'binding_of_caller', '~> 0.7.2' gem 'annotate', '~> 2.6.2' gem 'quiet_assets', '~> 1.0.2' + gem 'web-console' end group :test do diff --git a/Gemfile.lock b/Gemfile.lock index 10835d7..0379660 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -309,8 +309,18 @@ GEM execjs (>= 0.3.0) json (>= 1.8.0) unicode_utils (1.4.0) +<<<<<<< Updated upstream websocket (1.0.7) websocket-driver (0.7.0) +======= + web-console (2.3.0) + activemodel (>= 4.0) + binding_of_caller (>= 0.7.2) + railties (>= 4.0) + sprockets-rails (>= 2.0, < 4.0) + websocket (1.2.8) + websocket-driver (0.7.1) +>>>>>>> Stashed changes websocket-extensions (>= 0.1.0) websocket-extensions (0.1.3) will_paginate (3.0.12) @@ -373,6 +383,7 @@ DEPENDENCIES timecop (~> 0.7.1) tinymce-rails (~> 3.5.9) uglifier (~> 2.5.0) + web-console will_paginate (~> 3.0.5) RUBY VERSION diff --git a/app/controllers/shoutmsgs_controller.rb b/app/controllers/shoutmsgs_controller.rb index 6647daf..9181c3a 100644 --- a/app/controllers/shoutmsgs_controller.rb +++ b/app/controllers/shoutmsgs_controller.rb @@ -1,6 +1,13 @@ class ShoutmsgsController < ApplicationController respond_to :html, :js +<<<<<<< Updated upstream +======= + def index + @shoutmsgs = Shoutmsg.typebox + end + +>>>>>>> Stashed changes def show if params[:id2] @shoutmsgs = Shoutmsg.recent.of_object(params[:id], params[:id2]).reverse diff --git a/app/models/shoutmsg.rb b/app/models/shoutmsg.rb index 60e0d59..2047eeb 100644 --- a/app/models/shoutmsg.rb +++ b/app/models/shoutmsg.rb @@ -39,6 +39,16 @@ class Shoutmsg < ActiveRecord::Base belongs_to :user belongs_to :shoutable, :polymorphic => true +<<<<<<< Updated upstream +======= + scope :recent, -> { includes(:user).order("id DESC").limit(8) } + scope :box, -> { where(shoutable_type: nil, shoutable_id: nil).limit(8) } + scope :typebox, -> { where(shoutable_type: nil, shoutable_id: nil) } + scope :last500, -> { includes(:user).order("id DESC").limit(500) } + scope :of_object, -> (object, id) { where(shoutable_type: object, shoutable_id: id) } + scope :ordered, order("id") + +>>>>>>> Stashed changes def domain self[:shoutable_type] ? "shout_#{shoutable_type}_#{shoutable_id}" : "shoutbox" end diff --git a/app/views/shoutmsgs/index.html.erb b/app/views/shoutmsgs/index.html.erb new file mode 100644 index 0000000..9a984f6 --- /dev/null +++ b/app/views/shoutmsgs/index.html.erb @@ -0,0 +1,20 @@ +

Last 500 Shoutbox Messages

+ + + + + + + + + + <% @shoutmsgs.each do |shoutmsg| %> + + + + + + + <% end %> +
DateTimeUserText
<%= shoutmsg.created_at.strftime("%Y/%m/%d") %><%= shoutmsg.created_at.strftime("%H:%M") %><%= namelink shoutmsg.user %><%= shoutmsg.text %>
+ diff --git a/config/environments/development.rb b/config/environments/development.rb index 16d3963..3180594 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -31,6 +31,13 @@ Ensl::Application.configure do # Use a different cache store config.cache_store = :dalli_store +<<<<<<< Updated upstream # Enable threaded mode # config.threadsafe! +======= + config.eager_load = false + + config.web_console.permissions = '172.18.0.0/16' + config.web_console.whiny_requests = true +>>>>>>> Stashed changes end diff --git a/spec/controllers/shoutmsgs_controller_spec.rb b/spec/controllers/shoutmsgs_controller_spec.rb new file mode 100644 index 0000000..271d523 --- /dev/null +++ b/spec/controllers/shoutmsgs_controller_spec.rb @@ -0,0 +1,9 @@ +require 'rails_helper' + +RSpec.describe ShoutmsgsController, type: :controller do + it "renders the index template" do + get :index + expect(response).to have_http_status(200) + expect(response).to render_template("index") + end +end \ No newline at end of file diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb new file mode 100644 index 0000000..2ad2089 --- /dev/null +++ b/spec/rails_helper.rb @@ -0,0 +1,52 @@ +# This file is copied to spec/ when you run 'rails generate rspec:install' +ENV['RAILS_ENV'] ||= 'test' +require File.expand_path('../../config/environment', __FILE__) +# Prevent database truncation if the environment is production +abort("The Rails environment is running in production mode!") if Rails.env.production? +require 'rails_helper' +require 'rspec/rails' +# Add additional requires below this line. Rails is not loaded until this point! + +# Requires supporting ruby files with custom matchers and macros, etc, in +# spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are +# run as spec files by default. This means that files in spec/support that end +# in _spec.rb will both be required and run as specs, causing the specs to be +# run twice. It is recommended that you do not name files matching this glob to +# end with _spec.rb. You can configure this pattern with the --pattern +# option on the command line or in ~/.rspec, .rspec or `.rspec-local`. +# +# The following line is provided for convenience purposes. It has the downside +# of increasing the boot-up time by auto-requiring all files in the support +# directory. Alternatively, in the individual `*_spec.rb` files, manually +# require only the support files necessary. +# +Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f } + +# Checks for pending migrations before tests are run. +# If you are not using ActiveRecord, you can remove this line. +ActiveRecord::Migration.maintain_test_schema! + +RSpec.configure do |config| + # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures + config.fixture_path = "#{::Rails.root}/spec/fixtures" + + # If you're not using ActiveRecord, or you'd prefer not to run each of your + # examples within a transaction, remove the following line or assign false + # instead of true. + config.use_transactional_fixtures = true + + # RSpec Rails can automatically mix in different behaviours to your tests + # based on their file location, for example enabling you to call `get` and + # `post` in specs under `spec/controllers`. + # + # You can disable this behaviour by removing the line below, and instead + # explicitly tag your specs with their type, e.g.: + # + # RSpec.describe UsersController, :type => :controller do + # # ... + # end + # + # The different available types are documented in the features, such as in + # https://relishapp.com/rspec/rspec-rails/docs + config.infer_spec_type_from_file_location! +end