From f3512a4a6f2128bf7e92b3597979173eb05527d8 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Sat, 19 Nov 2016 20:13:51 +0100 Subject: [PATCH 01/28] tries to speed up build with knapsack --- .travis.yml | 3 ++- Gemfile | 1 + Gemfile.lock | 5 +++++ Rakefile | 1 + spec/spec_helper.rb | 6 +++--- 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index a45f36990..b9c8b622f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,4 +7,5 @@ cache: bundler before_script: - "for i in config/*.example; do cp \"$i\" \"${i/.example}\"; done" - bundle exec rake db:setup -script: bundle exec rake +script: + - "KNAPSACK_GENERATE_REPORT=true bundle exec rspec spec" \ No newline at end of file diff --git a/Gemfile b/Gemfile index 7f2b0a878..181526f7d 100644 --- a/Gemfile +++ b/Gemfile @@ -86,6 +86,7 @@ group :development, :test do gem "bullet" gem "faker" gem 'rubocop', '~> 0.45.0', require: false + gem 'knapsack' end group :test do diff --git a/Gemfile.lock b/Gemfile.lock index 4433d8458..9fd9bab1a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -215,6 +215,9 @@ GEM actionpack (>= 3.0.0) activesupport (>= 3.0.0) kgio (2.10.0) + knapsack (1.13.0) + rake + timecop (>= 0.1.0) launchy (2.4.3) addressable (~> 2.3) letter_opener (1.4.1) @@ -405,6 +408,7 @@ GEM thread (0.2.2) thread_safe (0.3.5) tilt (2.0.5) + timecop (0.8.1) tins (1.11.0) tolk (2.0.0) rails (>= 4.0) @@ -485,6 +489,7 @@ DEPENDENCIES jquery-rails (~> 4.2.1) jquery-ui-rails kaminari + knapsack launchy letter_opener_web (~> 1.3.0) newrelic_rpm (~> 3.17.0.325) diff --git a/Rakefile b/Rakefile index ba6b733dd..ef2c381ff 100644 --- a/Rakefile +++ b/Rakefile @@ -4,3 +4,4 @@ require File.expand_path('../config/application', __FILE__) Rails.application.load_tasks +Knapsack.load_tasks if defined?(Knapsack) \ No newline at end of file diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index b9b01d29e..5b783ff8c 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -2,7 +2,9 @@ require 'factory_girl_rails' require 'database_cleaner' require 'email_spec' require 'devise' +require 'knapsack' Dir["./spec/support/**/*.rb"].sort.each { |f| require f } +Knapsack::Adapters::RSpecAdapter.bind RSpec.configure do |config| config.use_transactional_fixtures = false @@ -101,6 +103,4 @@ RSpec.configure do |config| # test failures related to randomization by passing the same `--seed` value # as the one that triggered the failure. Kernel.srand config.seed - - -end +end \ No newline at end of file From f7ec2ae9c338b2ec4123acd6015e7154cf20cfd5 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Sat, 19 Nov 2016 20:27:39 +0100 Subject: [PATCH 02/28] upgrade to ruby 2.3.2 --- .ruby-version | 2 +- .travis.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.ruby-version b/.ruby-version index a6254504e..e7034819f 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.3.1 \ No newline at end of file +2.3.2 \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index a45f36990..f873cfc34 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,7 @@ language: ruby addons: postgresql: "9.4" rvm: - - "2.2.3" + - "2.3.2" cache: bundler before_script: - "for i in config/*.example; do cp \"$i\" \"${i/.example}\"; done" From e8fcdff90f05d1c021c3596535d4e641de0ec006 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Sun, 20 Nov 2016 11:10:02 +0100 Subject: [PATCH 03/28] adds report on time per spec file --- knapsack_rspec_report.json | 132 +++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 knapsack_rspec_report.json diff --git a/knapsack_rspec_report.json b/knapsack_rspec_report.json new file mode 100644 index 000000000..f31245481 --- /dev/null +++ b/knapsack_rspec_report.json @@ -0,0 +1,132 @@ +{ + "spec/features/admin/debates_spec.rb": 3.196030855178833, + "spec/lib/manager_authenticator_spec.rb": 0.7661557197570801, + "spec/helpers/geozones_helper_spec.rb": 0.3235890865325928, + "spec/features/valuation_spec.rb": 1.5787968635559082, + "spec/features/comments/proposals_spec.rb": 16.83220624923706, + "spec/helpers/verification_helper_spec.rb": 0.2460770606994629, + "spec/features/verification/level_three_verification_spec.rb": 2.016052007675171, + "spec/features/stats_spec.rb": 1.1409127712249756, + "spec/controllers/concerns/has_filters_spec.rb": 0.4043538570404053, + "spec/models/organization_spec.rb": 1.1652114391326904, + "spec/features/admin/users_spec.rb": 1.5635802745819092, + "spec/features/admin/proposals_spec.rb": 2.2328972816467285, + "spec/features/ckeditor_spec.rb": 0.7215390205383301, + "spec/features/users_auth_spec.rb": 5.428045988082886, + "spec/lib/wysiwyg_sanitizer_spec.rb": 0.31694674491882324, + "spec/helpers/orders_helper_spec.rb": 0.22522211074829102, + "spec/features/admin_spec.rb": 1.694303035736084, + "spec/features/admin/comments_spec.rb": 2.8705501556396484, + "spec/lib/tag_sanitizer_spec.rb": 0.3478989601135254, + "spec/features/votes_spec.rb": 13.293350458145142, + "spec/helpers/application_helper_spec.rb": 0.47275686264038086, + "spec/features/management/spending_proposals_spec.rb": 4.437402725219727, + "spec/features/users_spec.rb": 6.648370027542114, + "spec/models/abilities/moderator_spec.rb": 7.65787410736084, + "spec/features/welcome_spec.rb": 1.5993311405181885, + "spec/features/management/email_verifications_spec.rb": 0.3190898895263672, + "spec/features/localization_spec.rb": 0.8935031890869141, + "spec/mailers/mailer_spec.rb": 0.1826329231262207, + "spec/models/valuator_spec.rb": 0.2230076789855957, + "spec/features/organizations_spec.rb": 0.7282412052154541, + "spec/features/moderation/debates_spec.rb": 5.6599204540252686, + "spec/models/verification/management/email_spec.rb": 0.8871691226959229, + "spec/helpers/votes_helper_spec.rb": 0.8153252601623535, + "spec/lib/census_api_spec.rb": 0.8195827007293701, + "spec/lib/cache_spec.rb": 0.16429710388183594, + "spec/features/management/document_verifications_spec.rb": 1.4376773834228516, + "spec/controllers/management/base_controller_spec.rb": 0.3214681148529053, + "spec/features/management/account_spec.rb": 1.284877061843872, + "spec/features/tags_spec.rb": 5.2347259521484375, + "spec/features/management/users_spec.rb": 2.2339844703674316, + "spec/models/abilities/administrator_spec.rb": 4.104190111160278, + "spec/features/proposal_ballots_spec.rb": 1.0345211029052734, + "spec/models/abilities/organization_spec.rb": 1.2938573360443115, + "spec/features/spending_proposals_spec.rb": 3.00465989112854, + "spec/features/direct_messages_spec.rb": 1.7699065208435059, + "spec/features/proposal_notifications_spec.rb": 3.206688642501831, + "spec/features/admin/feature_flags_spec.rb": 0.7250113487243652, + "spec/features/valuation/spending_proposals_spec.rb": 9.08467411994934, + "spec/controllers/management/users_controller_spec.rb": 0.14328908920288086, + "spec/features/debates_spec.rb": 32.769495487213135, + "spec/lib/acts_as_paranoid_aliases_spec.rb": 0.672633171081543, + "spec/lib/acts_as_taggable_on_spec.rb": 0.4580230712890625, + "spec/models/proposal_notification_spec.rb": 0.8798811435699463, + "spec/models/abilities/everyone_spec.rb": 1.4743411540985107, + "spec/controllers/debates_controller_spec.rb": 0.597097635269165, + "spec/features/official_positions_spec.rb": 1.7662339210510254, + "spec/features/verification/verification_path_spec.rb": 1.8311583995819092, + "spec/models/notification_spec.rb": 1.6735141277313232, + "spec/features/tracks_spec.rb": 2.7991549968719482, + "spec/features/management/proposals_spec.rb": 4.453279733657837, + "spec/models/custom/residence_spec.rb": 0.26375889778137207, + "spec/features/admin/stats_spec.rb": 3.427401304244995, + "spec/controllers/management/sessions_controller_spec.rb": 0.6672155857086182, + "spec/features/comments/debates_spec.rb": 17.62152862548828, + "spec/features/admin/activity_spec.rb": 8.008464813232422, + "spec/models/residence_spec.rb": 1.7478408813476562, + "spec/features/moderation/comments_spec.rb": 6.95853328704834, + "spec/models/flag_spec.rb": 1.2313306331634521, + "spec/models/geozone_spec.rb": 0.21416401863098145, + "spec/models/debate_spec.rb": 13.919430494308472, + "spec/mailers/devise_mailer_spec.rb": 0.3003346920013428, + "spec/features/moderation/users_spec.rb": 1.304518222808838, + "spec/features/verification/residence_spec.rb": 2.4076998233795166, + "spec/features/admin/banners_spec.rb": 3.2043681144714355, + "spec/models/user_spec.rb": 8.115702629089355, + "spec/helpers/users_helper_spec.rb": 0.6146798133850098, + "spec/models/lock_spec.rb": 0.5752274990081787, + "spec/features/admin/officials_spec.rb": 1.1229417324066162, + "spec/features/legislation_spec.rb": 2.646373987197876, + "spec/features/management/localization_spec.rb": 1.276548147201538, + "spec/models/abilities/common_spec.rb": 8.870994567871094, + "spec/controllers/concerns/has_orders_spec.rb": 0.5060961246490479, + "spec/models/verification/management/document_spec.rb": 0.55743408203125, + "spec/models/letter_spec.rb": 0.73256516456604, + "spec/features/moderation/proposals_spec.rb": 5.034556865692139, + "spec/features/emails_spec.rb": 9.274869441986084, + "spec/features/verification/verified_user_spec.rb": 1.4910340309143066, + "spec/helpers/proposals_helper_spec.rb": 1.1765329837799072, + "spec/controllers/pages_controller_spec.rb": 1.35672926902771, + "spec/i18n_spec.rb": 27.789604902267456, + "spec/features/verification/sms_spec.rb": 1.5330836772918701, + "spec/lib/email_digests_spec.rb": 1.1210927963256836, + "spec/features/proposals_spec.rb": 43.270474910736084, + "spec/features/verification/level_two_verification_spec.rb": 0.5128798484802246, + "spec/models/comment_spec.rb": 2.6471173763275146, + "spec/models/identity_spec.rb": 0.08924984931945801, + "spec/models/vote_spec.rb": 0.6714668273925781, + "spec/models/spending_proposal_spec.rb": 6.144777774810791, + "spec/features/sessions_spec.rb": 0.6140999794006348, + "spec/features/registration_form_spec.rb": 1.3086371421813965, + "spec/features/admin/tags_spec.rb": 1.2578890323638916, + "spec/customization_engine_spec.rb": 0.9755609035491943, + "spec/features/admin/organizations_spec.rb": 4.552514553070068, + "spec/models/proposal_spec.rb": 14.755258560180664, + "spec/features/moderation_spec.rb": 1.702514410018921, + "spec/helpers/settings_helper_spec.rb": 0.22182989120483398, + "spec/models/tag_cloud_spec.rb": 2.6144700050354004, + "spec/features/user_invites_spec.rb": 0.22390198707580566, + "spec/models/activity_spec.rb": 1.5089714527130127, + "spec/controllers/admin/api/stats_controller_spec.rb": 0.6779742240905762, + "spec/features/management/managed_users_spec.rb": 1.556541919708252, + "spec/models/direct_message_spec.rb": 1.4555466175079346, + "spec/features/admin/spending_proposals_spec.rb": 16.1976478099823, + "spec/controllers/users/registrations_controller_spec.rb": 0.24361419677734375, + "spec/features/admin/moderators_spec.rb": 1.3666069507598877, + "spec/models/sms_spec.rb": 0.352916955947876, + "spec/models/setting_spec.rb": 1.2480311393737793, + "spec/features/verification/email_spec.rb": 0.6614222526550293, + "spec/features/admin/valuators_spec.rb": 0.9944217205047607, + "spec/models/ahoy/data_source_spec.rb": 0.4324939250946045, + "spec/features/account_spec.rb": 2.387765407562256, + "spec/features/notifications_spec.rb": 10.897897958755493, + "spec/features/campaigns_spec.rb": 1.1797480583190918, + "spec/features/home_spec.rb": 1.0699732303619385, + "spec/features/admin/verifications_spec.rb": 1.4650330543518066, + "spec/features/admin/managers_spec.rb": 1.3956513404846191, + "spec/models/abilities/valuator_spec.rb": 0.40586066246032715, + "spec/helpers/comments_helper_spec.rb": 0.7347445487976074, + "spec/features/admin/settings_spec.rb": 0.522209644317627, + "spec/features/verification/letter_spec.rb": 2.5052530765533447 +} \ No newline at end of file From 8595f60206d331f5efbe47a6afd9e1bcbfa5e7f2 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Sun, 20 Nov 2016 11:11:48 +0100 Subject: [PATCH 04/28] adds travis matrix configuration for knapsack --- .travis.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b9c8b622f..f30a68d6c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,4 +8,7 @@ before_script: - "for i in config/*.example; do cp \"$i\" \"${i/.example}\"; done" - bundle exec rake db:setup script: - - "KNAPSACK_GENERATE_REPORT=true bundle exec rspec spec" \ No newline at end of file + - "bundle exec rake knapsack:rspec" +env: + - CI_NODE_TOTAL=2 CI_NODE_INDEX=0 + - CI_NODE_TOTAL=2 CI_NODE_INDEX=1 \ No newline at end of file From a0a4f3c38ea7cf137174b1598f3e5c70b26305b3 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Sun, 20 Nov 2016 11:56:50 +0100 Subject: [PATCH 05/28] removes time offset warning for parallel builds --- spec/spec_helper.rb | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 5b783ff8c..e309192fd 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -4,7 +4,6 @@ require 'email_spec' require 'devise' require 'knapsack' Dir["./spec/support/**/*.rb"].sort.each { |f| require f } -Knapsack::Adapters::RSpecAdapter.bind RSpec.configure do |config| config.use_transactional_fixtures = false @@ -103,4 +102,12 @@ RSpec.configure do |config| # test failures related to randomization by passing the same `--seed` value # as the one that triggered the failure. Kernel.srand config.seed -end \ No newline at end of file +end + +# Parallel build helper configuration for travis +Knapsack.tracker.config({ + enable_time_offset_warning: true, # Enable warning when real build time exceeds expected build time + time_offset_in_seconds: 300 # Time offset between expected build time and real build time +}) + +Knapsack::Adapters::RSpecAdapter.bind \ No newline at end of file From 0939479263b88fec679a904a04c54f433bbb103e Mon Sep 17 00:00:00 2001 From: rgarcia Date: Sun, 20 Nov 2016 11:58:31 +0100 Subject: [PATCH 06/28] removes custom knapsack configuration --- spec/spec_helper.rb | 5 ----- 1 file changed, 5 deletions(-) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index e309192fd..a40934d92 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -105,9 +105,4 @@ RSpec.configure do |config| end # Parallel build helper configuration for travis -Knapsack.tracker.config({ - enable_time_offset_warning: true, # Enable warning when real build time exceeds expected build time - time_offset_in_seconds: 300 # Time offset between expected build time and real build time -}) - Knapsack::Adapters::RSpecAdapter.bind \ No newline at end of file From d720f8c84d773fb802a95f62ec4c253010383795 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Sun, 20 Nov 2016 11:59:08 +0100 Subject: [PATCH 07/28] uses four virtual machines to run travis build --- .travis.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index f30a68d6c..6b67c31dc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,5 +10,7 @@ before_script: script: - "bundle exec rake knapsack:rspec" env: - - CI_NODE_TOTAL=2 CI_NODE_INDEX=0 - - CI_NODE_TOTAL=2 CI_NODE_INDEX=1 \ No newline at end of file + - CI_NODE_TOTAL=4 CI_NODE_INDEX=0 + - CI_NODE_TOTAL=4 CI_NODE_INDEX=1 + - CI_NODE_TOTAL=4 CI_NODE_INDEX=2 + - CI_NODE_TOTAL=4 CI_NODE_INDEX=3 \ No newline at end of file From f8bd13ceb58f58a18320c706196a3b15fb3ce8c8 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Mon, 21 Nov 2016 09:57:23 +0100 Subject: [PATCH 08/28] uses available capacity for open source projects --- .travis.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6b67c31dc..f30a68d6c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,5 @@ before_script: script: - "bundle exec rake knapsack:rspec" env: - - CI_NODE_TOTAL=4 CI_NODE_INDEX=0 - - CI_NODE_TOTAL=4 CI_NODE_INDEX=1 - - CI_NODE_TOTAL=4 CI_NODE_INDEX=2 - - CI_NODE_TOTAL=4 CI_NODE_INDEX=3 \ No newline at end of file + - CI_NODE_TOTAL=2 CI_NODE_INDEX=0 + - CI_NODE_TOTAL=2 CI_NODE_INDEX=1 \ No newline at end of file From a1095089af3c3c2cd4342e039be37bebba051095 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Sun, 20 Nov 2016 16:15:30 +0100 Subject: [PATCH 09/28] configures up to date capistrano rvm gem --- Capfile | 4 ++-- Gemfile | 4 ++-- Gemfile.lock | 14 +++++++------- config/deploy.rb | 4 +++- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/Capfile b/Capfile index 0f53b8e9a..1a33b63f0 100644 --- a/Capfile +++ b/Capfile @@ -4,13 +4,13 @@ require 'capistrano/setup' # Include default deployment tasks require 'capistrano/deploy' -require 'capistrano/rvm' -require 'capistrano/bundler' +require "capistrano/bundler" require 'capistrano/rails/assets' require 'capistrano/rails/migrations' #require 'capistrano/passenger' require 'capistrano/delayed_job' require 'whenever/capistrano' +require 'rvm1/capistrano3' # Load custom tasks from `lib/capistrano/tasks` if you have any defined Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r } diff --git a/Gemfile b/Gemfile index 7f2b0a878..d54731c65 100644 --- a/Gemfile +++ b/Gemfile @@ -79,9 +79,9 @@ group :development, :test do gem 'letter_opener_web', '~> 1.3.0' gem 'i18n-tasks' gem 'capistrano', '3.5.0', require: false - gem "capistrano-bundler", '1.1.4', require: false + gem 'capistrano-bundler', '~> 1.2', require: false gem "capistrano-rails", '1.1.8', require: false - gem "capistrano-rvm", require: false + gem 'rvm1-capistrano3', require: false gem 'capistrano3-delayed-job', '~> 1.0' gem "bullet" gem "faker" diff --git a/Gemfile.lock b/Gemfile.lock index 4433d8458..5d77e18db 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -78,16 +78,13 @@ GEM i18n rake (>= 10.0.0) sshkit (>= 1.9.0) - capistrano-bundler (1.1.4) + capistrano-bundler (1.2.0) capistrano (~> 3.1) sshkit (~> 1.2) capistrano-harrow (0.5.3) capistrano-rails (1.1.8) capistrano (~> 3.1) capistrano-bundler (~> 1.1) - capistrano-rvm (0.1.2) - capistrano (~> 3.0) - sshkit (~> 1.2) capistrano3-delayed-job (1.7.2) capistrano (~> 3.0, >= 3.0.0) capybara (2.7.1) @@ -355,6 +352,9 @@ GEM ruby-progressbar (~> 1.7) unicode-display_width (~> 1.0, >= 1.0.1) ruby-progressbar (1.8.1) + rvm1-capistrano3 (1.4.0) + capistrano (~> 3.0) + sshkit (>= 1.2) safe_yaml (1.0.4) safely_block (0.1.1) errbase @@ -395,7 +395,7 @@ GEM actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) - sshkit (1.11.3) + sshkit (1.11.4) net-scp (>= 1.1.2) net-ssh (>= 2.8.0) term-ansicolor (1.3.2) @@ -457,9 +457,8 @@ DEPENDENCIES byebug cancancan capistrano (= 3.5.0) - capistrano-bundler (= 1.1.4) + capistrano-bundler (~> 1.2) capistrano-rails (= 1.1.8) - capistrano-rvm capistrano3-delayed-job (~> 1.0) capybara ckeditor (~> 4.2.0) @@ -504,6 +503,7 @@ DEPENDENCIES rollbar (~> 2.13.3) rspec-rails (~> 3.5) rubocop (~> 0.45.0) + rvm1-capistrano3 sass-rails (~> 5.0, >= 5.0.4) savon social-share-button diff --git a/config/deploy.rb b/config/deploy.rb index 884d50641..6010d7035 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -53,6 +53,8 @@ namespace :deploy do # before :deploy, "deploy:check_revision" # Run test aund continue only if passed # before :deploy, "deploy:run_tests" + before :starting, 'rvm1:install:rvm' # install/update RVM + before :starting, 'rvm1:install:ruby' # install Ruby and create gemset # Custom compile and rsync of assets - works, but it is very slow #after 'deploy:symlink:shared', 'deploy:compile_assets_locally' @@ -62,4 +64,4 @@ namespace :deploy do after 'deploy:publishing', 'deploy:restart' # Restart Delayed Jobs after 'deploy:published', 'delayed_job:restart' -end +end \ No newline at end of file From c8c5b5581627e74d6a41b505dd3e3572936fb4d1 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Sun, 20 Nov 2016 16:15:52 +0100 Subject: [PATCH 10/28] updates ruby version for capistrano --- config/deploy.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/config/deploy.rb b/config/deploy.rb index 6010d7035..59dd1d863 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -9,6 +9,7 @@ end set :rails_env, fetch(:stage) set :rvm_ruby_version, '2.3.1' set :rvm_type, :user +set :rvm1_ruby_version, '2.3.2' set :application, 'consul' set :full_app_name, deploysecret(:full_app_name) From d24ef1615faa2c4f7dabef1798da13b797af1e4a Mon Sep 17 00:00:00 2001 From: rgarcia Date: Sun, 20 Nov 2016 16:16:21 +0100 Subject: [PATCH 11/28] cleans up deploy.rb --- config/deploy.rb | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/config/deploy.rb b/config/deploy.rb index 59dd1d863..a4c68b728 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -7,16 +7,12 @@ def deploysecret(key) end set :rails_env, fetch(:stage) -set :rvm_ruby_version, '2.3.1' -set :rvm_type, :user set :rvm1_ruby_version, '2.3.2' set :application, 'consul' set :full_app_name, deploysecret(:full_app_name) set :server_name, deploysecret(:server_name) -#set :repo_url, 'git@github.com:consul/consul.git' -# If ssh access is restricted, probably you need to use https access set :repo_url, 'https://github.com/consul/consul.git' set :scm, :git @@ -33,36 +29,23 @@ set :keep_releases, 5 set :local_user, ENV['USER'] -# Run test before deploy -set :tests, ["spec"] - set :delayed_job_workers, 2 -# Config files should be copied by deploy:setup_config set(:config_files, %w( log_rotation database.yml secrets.yml unicorn.rb - sidekiq.yml )) set :whenever_roles, -> { :cron } namespace :deploy do - # Check right version of deploy branch - # before :deploy, "deploy:check_revision" - # Run test aund continue only if passed - # before :deploy, "deploy:run_tests" before :starting, 'rvm1:install:rvm' # install/update RVM before :starting, 'rvm1:install:ruby' # install Ruby and create gemset - # Custom compile and rsync of assets - works, but it is very slow - #after 'deploy:symlink:shared', 'deploy:compile_assets_locally' + after :publishing, 'deploy:restart' + after :published, 'delayed_job:restart' after :finishing, 'deploy:cleanup' - # Restart unicorn - after 'deploy:publishing', 'deploy:restart' - # Restart Delayed Jobs - after 'deploy:published', 'delayed_job:restart' end \ No newline at end of file From cea90fea4701181de56a90a4c3fdf53ee046fa8a Mon Sep 17 00:00:00 2001 From: rgarcia Date: Mon, 21 Nov 2016 09:52:50 +0100 Subject: [PATCH 12/28] installs bundler gem for new ruby versions --- config/deploy.rb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/config/deploy.rb b/config/deploy.rb index a4c68b728..acce83b3c 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -43,9 +43,16 @@ set :whenever_roles, -> { :cron } namespace :deploy do before :starting, 'rvm1:install:rvm' # install/update RVM before :starting, 'rvm1:install:ruby' # install Ruby and create gemset + before :starting, 'install_bundler_gem' # install bundler gem after :publishing, 'deploy:restart' after :published, 'delayed_job:restart' after :finishing, 'deploy:cleanup' +end + +task :install_bundler_gem do + on roles(:app) do + execute "rvm use #{fetch(:rvm1_ruby_version)}; gem install bundler" + end end \ No newline at end of file From 695fc93b677cf83839efa7a91c4a04977c4b65f0 Mon Sep 17 00:00:00 2001 From: kikito Date: Fri, 18 Nov 2016 16:53:55 +0100 Subject: [PATCH 13/28] updates ancestry --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 8840de608..1ce218638 100644 --- a/Gemfile +++ b/Gemfile @@ -32,7 +32,7 @@ gem 'omniauth-facebook', '~> 3.0.0' gem 'omniauth-google-oauth2', '~> 0.4.0' gem 'kaminari' -gem 'ancestry', '~> 2.2.1' +gem 'ancestry', '~> 2.2.2' gem 'acts-as-taggable-on' gem 'responders', '~> 2.3.0' gem 'foundation-rails', '~> 6.2.4.0' diff --git a/Gemfile.lock b/Gemfile.lock index e4afe495a..ead04df73 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -56,7 +56,7 @@ GEM akami (1.3.1) gyoku (>= 0.4.0) nokogiri - ancestry (2.2.1) + ancestry (2.2.2) activerecord (>= 3.0.0) arel (6.0.3) ast (2.3.0) @@ -455,7 +455,7 @@ DEPENDENCIES acts-as-taggable-on acts_as_votable ahoy_matey (~> 1.4.2) - ancestry (~> 2.2.1) + ancestry (~> 2.2.2) browser bullet byebug From dcebcc41cb812e4b201f952f58df8c998f831d5e Mon Sep 17 00:00:00 2001 From: kikito Date: Fri, 18 Nov 2016 17:07:04 +0100 Subject: [PATCH 14/28] Updates browser gem --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index ead04df73..619f8c27a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -65,7 +65,7 @@ GEM babel-source (>= 4.0, < 6) execjs (~> 2.0) bcrypt (3.1.11) - browser (2.2.0) + browser (2.3.0) builder (3.2.2) bullet (5.2.0) activesupport (>= 3.0.0) From 6b24061bdc01b257d595177dde04392ac22c7d09 Mon Sep 17 00:00:00 2001 From: kikito Date: Fri, 18 Nov 2016 17:07:12 +0100 Subject: [PATCH 15/28] updates rack gem --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 619f8c27a..f0a9b8995 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -285,7 +285,7 @@ GEM powerpack (0.1.1) quiet_assets (1.1.0) railties (>= 3.1, < 5.0) - rack (1.6.4) + rack (1.6.5) rack-accept (0.4.5) rack (>= 0.4) rack-attack (5.0.1) From 2050e1411e7852a85ce41911c45b9b931e25c0ef Mon Sep 17 00:00:00 2001 From: kikito Date: Mon, 21 Nov 2016 18:23:23 +0100 Subject: [PATCH 16/28] updates cancancan --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index f0a9b8995..bb77e9956 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -524,4 +524,4 @@ DEPENDENCIES whenever BUNDLED WITH - 1.13.1 + 1.13.3 From a4d840c9c6e5fcf7a0498f52c6175d0c79f8308b Mon Sep 17 00:00:00 2001 From: kikito Date: Mon, 21 Nov 2016 18:30:55 +0100 Subject: [PATCH 17/28] bundle update omniauth --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index bb77e9956..4406d6696 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -180,7 +180,7 @@ GEM activesupport (>= 3) gyoku (1.3.1) builder (>= 2.1.2) - hashie (3.4.3) + hashie (3.4.6) highline (1.7.8) htmlentities (4.3.4) httpi (2.4.1) From 619c77f6157733a5337ff894017d8e5a4a0c5950 Mon Sep 17 00:00:00 2001 From: kikito Date: Tue, 22 Nov 2016 12:43:01 +0100 Subject: [PATCH 18/28] bundle update unicorn --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 4406d6696..398fa4143 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -317,7 +317,7 @@ GEM rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) rainbow (2.1.0) - raindrops (0.16.0) + raindrops (0.17.0) rake (11.3.0) redcarpet (3.3.4) referer-parser (0.3.0) From f0b8cfd4a2d235ce099fba9ab6fa53d20646f8d6 Mon Sep 17 00:00:00 2001 From: kikito Date: Wed, 23 Nov 2016 19:19:19 +0100 Subject: [PATCH 19/28] Time.now -> Time.current --- CUSTOMIZE_ES.md | 46 +++++++++---------- Gemfile.lock | 3 -- app/controllers/debates_controller.rb | 4 +- .../management/users_controller.rb | 4 +- app/controllers/proposals_controller.rb | 4 +- app/controllers/stats_controller.rb | 2 +- .../verification/email_controller.rb | 2 +- .../verification/letter_controller.rb | 4 +- .../verification/sms_controller.rb | 4 +- app/models/banner.rb | 8 ++-- app/models/concerns/flaggable.rb | 2 +- app/models/lock.rb | 4 +- app/models/organization.rb | 4 +- app/models/proposal_notification.rb | 4 +- app/models/spending_proposal.rb | 2 +- app/models/user.rb | 6 +-- app/models/verification/letter.rb | 2 +- .../verification/management/document.rb | 2 +- app/models/verification/management/email.rb | 4 +- app/models/verification/residence.rb | 2 +- app/views/layouts/_footer.html.erb | 2 +- db/dev_seeds.rb | 34 +++++++------- db/seeds.rb | 4 +- lib/acts_as_paranoid_aliases.rb | 4 +- lib/email_digest.rb | 4 +- lib/score_calculator.rb | 2 +- spec/factories.rb | 42 ++++++++--------- spec/features/admin/banners_spec.rb | 34 +++++++------- spec/features/admin/verifications_spec.rb | 4 +- spec/features/comments/debates_spec.rb | 16 +++---- spec/features/comments/proposals_spec.rb | 16 +++---- spec/features/debates_spec.rb | 10 ++-- spec/features/moderation/comments_spec.rb | 6 +-- spec/features/moderation/debates_spec.rb | 6 +-- spec/features/moderation/proposals_spec.rb | 6 +-- spec/features/proposals_spec.rb | 16 +++---- spec/features/users_auth_spec.rb | 10 ++-- spec/features/verification/email_spec.rb | 8 ++-- spec/features/verification/letter_spec.rb | 16 +++---- spec/features/verification/sms_spec.rb | 10 ++-- .../verification/verification_path_spec.rb | 20 ++++---- .../verification/verified_user_spec.rb | 16 +++---- spec/features/votes_spec.rb | 2 +- spec/features/welcome_spec.rb | 4 +- spec/lib/email_digests_spec.rb | 6 +-- spec/models/abilities/common_spec.rb | 4 +- spec/models/debate_spec.rb | 16 +++---- spec/models/organization_spec.rb | 20 ++++---- spec/models/proposal_spec.rb | 20 ++++---- spec/models/user_spec.rb | 10 ++-- spec/support/common_actions.rb | 2 +- spec/support/verifiable.rb | 44 +++++++++--------- 52 files changed, 262 insertions(+), 265 deletions(-) diff --git a/CUSTOMIZE_ES.md b/CUSTOMIZE_ES.md index 71c3701e4..f7af01649 100644 --- a/CUSTOMIZE_ES.md +++ b/CUSTOMIZE_ES.md @@ -1,8 +1,8 @@ # Personalización -Puedes modificar consul y ponerle tu propia imagen, para esto debes primero hacer un fork de https://github.com/consul/consul creando un repositorio nuevo en Github. Puedes usar otro servicio como Gitlab, pero no te olvides de poner el enlace en el footer a tu repositorio en cumplimiento con la licencia de este proyecto (GPL Affero 3). +Puedes modificar consul y ponerle tu propia imagen, para esto debes primero hacer un fork de https://github.com/consul/consul creando un repositorio nuevo en Github. Puedes usar otro servicio como Gitlab, pero no te olvides de poner el enlace en el footer a tu repositorio en cumplimiento con la licencia de este proyecto (GPL Affero 3). -Hemos creado una estructura específica donde puedes sobreescribir y personalizar la aplicación para que puedas actualizar sin que tengas problemas al hacer merge y se sobreescriban por error tus cambios. Intentamos que Consul sea una aplicación Ruby on Rails lo más plain vanilla posible para facilitar el acceso de nuevas desarrolladoras. +Hemos creado una estructura específica donde puedes sobreescribir y personalizar la aplicación para que puedas actualizar sin que tengas problemas al hacer merge y se sobreescriban por error tus cambios. Intentamos que Consul sea una aplicación Ruby on Rails lo más plain vanilla posible para facilitar el acceso de nuevas desarrolladoras. ## Ficheros y directorios especiales @@ -21,16 +21,16 @@ Aparte de estos directorios también cuentas con ciertos ficheros para: * Gemfile_custom * config/application.custom.rb -### Internacionalización +### Internacionalización -Si quieres modificar algún texto de la web deberías encontrarlos en los ficheros formato YML disponibles en *config/locales/*. Puedes leer la [guía de internacionalización](http://guides.rubyonrails.org/i18n.html) de Ruby on Rails sobre como funciona este sistema. +Si quieres modificar algún texto de la web deberías encontrarlos en los ficheros formato YML disponibles en *config/locales/*. Puedes leer la [guía de internacionalización](http://guides.rubyonrails.org/i18n.html) de Ruby on Rails sobre como funciona este sistema. -Las adaptaciones los debes poner en el directorio *config/locales/custom/*, recomendamos poner solo los textos que quieras personalizar. Por ejemplo si quieres personalizar el texto de "Ayuntamiento de Madrid, 2016" que se encuentra en el footer en todas las páginas, primero debemos ubicar en que plantilla se encuentra (app/views/layouts/_footer.html.erb), vemos que en el código pone lo siguiente: +Las adaptaciones los debes poner en el directorio *config/locales/custom/*, recomendamos poner solo los textos que quieras personalizar. Por ejemplo si quieres personalizar el texto de "Ayuntamiento de Madrid, 2016" que se encuentra en el footer en todas las páginas, primero debemos ubicar en que plantilla se encuentra (app/views/layouts/_footer.html.erb), vemos que en el código pone lo siguiente: ``` -<%= t("layouts.footer.copyright", year: Time.now.year) %> +<%= t("layouts.footer.copyright", year: Time.current.year) %> ``` -Y que en el fichero config/locales/es.yml sigue esta estructura (solo ponemos lo relevante para este caso): +Y que en el fichero config/locales/es.yml sigue esta estructura (solo ponemos lo relevante para este caso): ``` es: @@ -40,11 +40,11 @@ es: ``` -Si creamos el fichero config/locales/custom/es.yml y modificamos "Ayuntamiento de Madrid" por el nombre de la organización que se este haciendo la modificación. Recomendamos directamente copiar los ficheros config/locales/ e ir revisando y corrigiendo las que querramos, borrando las líneas que no querramos traducir. +Si creamos el fichero config/locales/custom/es.yml y modificamos "Ayuntamiento de Madrid" por el nombre de la organización que se este haciendo la modificación. Recomendamos directamente copiar los ficheros config/locales/ e ir revisando y corrigiendo las que querramos, borrando las líneas que no querramos traducir. ### Imágenes -Si quieres sobreescribir alguna imagen debes primero fijarte el nombre que tiene, por defecto se encuentran en *app/assets/images*. Por ejemplo si quieres modificar *app/assets/images/logo_header.png* debes poner otra con ese mismo nombre en el directorio app/assets/images/custom. Los iconos que seguramente quieras modificar son: +Si quieres sobreescribir alguna imagen debes primero fijarte el nombre que tiene, por defecto se encuentran en *app/assets/images*. Por ejemplo si quieres modificar *app/assets/images/logo_header.png* debes poner otra con ese mismo nombre en el directorio app/assets/images/custom. Los iconos que seguramente quieras modificar son: * apple-touch-icon-200.png * icon_home.png @@ -59,7 +59,7 @@ Si quieres modificar el HTML de alguna página puedes hacerlo copiando el HTML d ### CSS -Si quieres cambiar algun selector CSS (de las hojas de estilo) puedes hacerlo en el fichero *app/assets/stylesheets/custom.scss*. Por ejemplo si quieres cambiar el color del header (.top-links) puedes hacerlo agregando: +Si quieres cambiar algun selector CSS (de las hojas de estilo) puedes hacerlo en el fichero *app/assets/stylesheets/custom.scss*. Por ejemplo si quieres cambiar el color del header (.top-links) puedes hacerlo agregando: ``` .top-links { @@ -67,11 +67,11 @@ Si quieres cambiar algun selector CSS (de las hojas de estilo) puedes hacerlo en } ``` -Usamos un preprocesador de CSS, [SASS, con la sintaxis SCSS](http://sass-lang.com/guide). +Usamos un preprocesador de CSS, [SASS, con la sintaxis SCSS](http://sass-lang.com/guide). ### Javascript -Si quieres agregar código Javascript puedes hacerlo en el fichero *app/assets/javascripts/custom.js". Por ejemplo si quieres que salga una alerta puedes poner lo siguiente: +Si quieres agregar código Javascript puedes hacerlo en el fichero *app/assets/javascripts/custom.js". Por ejemplo si quieres que salga una alerta puedes poner lo siguiente: ``` $(function(){ @@ -81,9 +81,9 @@ $(function(){ ### Modelos -Si quieres agregar modelos nuevos, o modificar o agregar métodos a uno ya existente puedes hacerlo en *app/models/custom*. En el caso de los modelos antiguos debes primero hacer un require de la dependencia. +Si quieres agregar modelos nuevos, o modificar o agregar métodos a uno ya existente puedes hacerlo en *app/models/custom*. En el caso de los modelos antiguos debes primero hacer un require de la dependencia. -Por ejemplo en el caso del Ayuntamiento de Madrid se requiere comprobar que el código postal durante la verificación sigue un cierto formato (empieza con 280). Esto se realiza creando este fichero en *app/models/custom/verification/residence.rb*: +Por ejemplo en el caso del Ayuntamiento de Madrid se requiere comprobar que el código postal durante la verificación sigue un cierto formato (empieza con 280). Esto se realiza creando este fichero en *app/models/custom/verification/residence.rb*: ``` require_dependency Rails.root.join('app', 'models', 'verification', 'residence').to_s @@ -123,10 +123,10 @@ No olvides poner los tests relevantes en *spec/models/custom*, siguiendo con el require 'rails_helper' describe Verification::Residence do - + let(:residence) { build(:verification_residence, document_number: "12345678Z") } - describe "verification" do + describe "verification" do describe "postal code" do it "should be valid with postal codes starting with 280" do @@ -162,7 +162,7 @@ TODO ### Gemfile -Para agregar librerías (gems) nuevas puedes hacerlo en el fichero *Gemfile_custom*. Por ejemplo si quieres agregar la gema [rails-footnotes](https://github.com/josevalim/rails-footnotes) debes hacerlo agregandole +Para agregar librerías (gems) nuevas puedes hacerlo en el fichero *Gemfile_custom*. Por ejemplo si quieres agregar la gema [rails-footnotes](https://github.com/josevalim/rails-footnotes) debes hacerlo agregandole ``` gem 'rails-footnotes', '~> 4.0' @@ -170,9 +170,9 @@ gem 'rails-footnotes', '~> 4.0' Y siguiendo el flujo clásico en Ruby on Rails (bundle install y seguir con los pasos específicos de la gema en la documentación) -### application.rb +### application.rb -Cuando necesites extender o modificar el *config/application.rb* puedes hacerlo a través del fichero *config/application_custom.rb*. Por ejemplo si quieres modificar el idioma por defecto al inglés pondrías lo siguiente: +Cuando necesites extender o modificar el *config/application.rb* puedes hacerlo a través del fichero *config/application_custom.rb*. Por ejemplo si quieres modificar el idioma por defecto al inglés pondrías lo siguiente: ``` @@ -198,15 +198,15 @@ TODO TODO -## Actualizar +## Actualizar -Te recomendamos que agregues el remote de consul para facilitar este proceso de merge: +Te recomendamos que agregues el remote de consul para facilitar este proceso de merge: ``` -$ git remote add consul https://github.com/consul/consul +$ git remote add consul https://github.com/consul/consul ``` -Con esto puedes actualizarte con +Con esto puedes actualizarte con ``` git checkout -b consul_update diff --git a/Gemfile.lock b/Gemfile.lock index 398fa4143..50ab5bb9d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -522,6 +522,3 @@ DEPENDENCIES unicorn (~> 5.1.0) web-console (= 3.3.0) whenever - -BUNDLED WITH - 1.13.3 diff --git a/app/controllers/debates_controller.rb b/app/controllers/debates_controller.rb index fd10e503c..8262f014a 100644 --- a/app/controllers/debates_controller.rb +++ b/app/controllers/debates_controller.rb @@ -41,7 +41,7 @@ class DebatesController < ApplicationController end def mark_featured - @debate.update_attribute(:featured_at, Time.now) + @debate.update_attribute(:featured_at, Time.current) redirect_to request.query_parameters.merge(action: :index) end @@ -55,4 +55,4 @@ class DebatesController < ApplicationController Debate end -end \ No newline at end of file +end diff --git a/app/controllers/management/users_controller.rb b/app/controllers/management/users_controller.rb index 8ee04cfdf..53004a838 100644 --- a/app/controllers/management/users_controller.rb +++ b/app/controllers/management/users_controller.rb @@ -8,8 +8,8 @@ class Management::UsersController < Management::BaseController @user = User.new(user_params) @user.skip_password_validation = true @user.terms_of_service = '1' - @user.residence_verified_at = Time.now - @user.verified_at = Time.now + @user.residence_verified_at = Time.current + @user.verified_at = Time.current if @user.save then render :show diff --git a/app/controllers/proposals_controller.rb b/app/controllers/proposals_controller.rb index 9523a0df2..d0ff9551e 100644 --- a/app/controllers/proposals_controller.rb +++ b/app/controllers/proposals_controller.rb @@ -38,7 +38,7 @@ class ProposalsController < ApplicationController end def retire - if valid_retired_params? && @proposal.update(retired_params.merge(retired_at: Time.now)) + if valid_retired_params? && @proposal.update(retired_params.merge(retired_at: Time.current)) redirect_to proposal_path(@proposal), notice: t('proposals.notice.retired') else render action: :retire_form @@ -107,4 +107,4 @@ class ProposalsController < ApplicationController @proposal_successfull_exists = Proposal.successfull.exists? end -end \ No newline at end of file +end diff --git a/app/controllers/stats_controller.rb b/app/controllers/stats_controller.rb index d600e2e9c..ab6bedd6e 100644 --- a/app/controllers/stats_controller.rb +++ b/app/controllers/stats_controller.rb @@ -23,6 +23,6 @@ class StatsController < ApplicationController private def daily_cache(key, &block) - Rails.cache.fetch("public_stats/#{Time.now.strftime("%Y-%m-%d")}/#{key}", &block) + Rails.cache.fetch("public_stats/#{Time.current.strftime("%Y-%m-%d")}/#{key}", &block) end end diff --git a/app/controllers/verification/email_controller.rb b/app/controllers/verification/email_controller.rb index 9f8fd9f8a..1774197d9 100644 --- a/app/controllers/verification/email_controller.rb +++ b/app/controllers/verification/email_controller.rb @@ -6,7 +6,7 @@ class Verification::EmailController < ApplicationController def show if Verification::Email.find(current_user, params[:email_verification_token]) - current_user.update(verified_at: Time.now) + current_user.update(verified_at: Time.current) redirect_to account_path, notice: t('verification.email.show.flash.success') else redirect_to verified_user_path, alert: t('verification.email.show.alert.failure') diff --git a/app/controllers/verification/letter_controller.rb b/app/controllers/verification/letter_controller.rb index 998f42766..0e726a683 100644 --- a/app/controllers/verification/letter_controller.rb +++ b/app/controllers/verification/letter_controller.rb @@ -29,7 +29,7 @@ class Verification::LetterController < ApplicationController def update @letter = Verification::Letter.new(letter_params.merge(user: current_user, verify: true)) if @letter.valid? - current_user.update(verified_at: Time.now) + current_user.update(verified_at: Time.current) redirect_to account_path, notice: t('verification.letter.update.flash.success') else Lock.increase_tries(@letter.user) if @letter.user @@ -56,4 +56,4 @@ class Verification::LetterController < ApplicationController end end -end \ No newline at end of file +end diff --git a/app/controllers/verification/sms_controller.rb b/app/controllers/verification/sms_controller.rb index 1cb5b2d8e..f06af5e6a 100644 --- a/app/controllers/verification/sms_controller.rb +++ b/app/controllers/verification/sms_controller.rb @@ -31,7 +31,7 @@ class Verification::SmsController < ApplicationController ahoy.track(:level_2_user, user_id: current_user.id) rescue nil if VerifiedUser.phone?(current_user) - current_user.update(verified_at: Time.now) + current_user.update(verified_at: Time.current) end redirect_to_next_path @@ -69,4 +69,4 @@ class Verification::SmsController < ApplicationController end end -end \ No newline at end of file +end diff --git a/app/models/banner.rb b/app/models/banner.rb index db8f10635..c4f2295e6 100644 --- a/app/models/banner.rb +++ b/app/models/banner.rb @@ -12,9 +12,9 @@ class Banner < ActiveRecord::Base validates :post_started_at, presence: true validates :post_ended_at, presence: true - scope :with_active, -> {where("post_started_at <= ?", Time.now). - where("post_ended_at >= ?", Time.now) } + scope :with_active, -> {where("post_started_at <= ?", Time.current). + where("post_ended_at >= ?", Time.current) } - scope :with_inactive,-> {where("post_started_at > ? or post_ended_at < ?", Time.now, Time.now) } + scope :with_inactive,-> {where("post_started_at > ? or post_ended_at < ?", Time.current, Time.current) } -end \ No newline at end of file +end diff --git a/app/models/concerns/flaggable.rb b/app/models/concerns/flaggable.rb index a111562b3..c3125c440 100644 --- a/app/models/concerns/flaggable.rb +++ b/app/models/concerns/flaggable.rb @@ -13,7 +13,7 @@ module Flaggable end def ignore_flag - update(ignored_flag_at: Time.now) + update(ignored_flag_at: Time.current) end end diff --git a/app/models/lock.rb b/app/models/lock.rb index 3c043de79..c0d5fae39 100644 --- a/app/models/lock.rb +++ b/app/models/lock.rb @@ -4,7 +4,7 @@ class Lock < ActiveRecord::Base before_save :set_locked_until def locked? - locked_until > Time.now + locked_until > Time.current end def set_locked_until @@ -12,7 +12,7 @@ class Lock < ActiveRecord::Base end def lock_time - Time.now + (2**tries).minutes + Time.current + (2**tries).minutes end def too_many_tries? diff --git a/app/models/organization.rb b/app/models/organization.rb index 069afc27f..74fd16111 100644 --- a/app/models/organization.rb +++ b/app/models/organization.rb @@ -14,11 +14,11 @@ class Organization < ActiveRecord::Base scope :rejected, -> { where.not(rejected_at: nil).where("(organizations.verified_at IS NULL or organizations.verified_at < rejected_at)") } def verify - update(verified_at: Time.now) + update(verified_at: Time.current) end def reject - update(rejected_at: Time.now) + update(rejected_at: Time.current) end def verified? diff --git a/app/models/proposal_notification.rb b/app/models/proposal_notification.rb index f73264318..60912d887 100644 --- a/app/models/proposal_notification.rb +++ b/app/models/proposal_notification.rb @@ -9,9 +9,9 @@ class ProposalNotification < ActiveRecord::Base def minimum_interval return true if proposal.try(:notifications).blank? - if proposal.notifications.last.created_at > (Time.now - Setting[:proposal_notification_minimum_interval_in_days].to_i.days).to_datetime + if proposal.notifications.last.created_at > (Time.current - Setting[:proposal_notification_minimum_interval_in_days].to_i.days).to_datetime errors.add(:title, I18n.t('activerecord.errors.models.proposal_notification.attributes.minimum_interval.invalid', interval: Setting[:proposal_notification_minimum_interval_in_days])) end end -end \ No newline at end of file +end diff --git a/app/models/spending_proposal.rb b/app/models/spending_proposal.rb index a2c143336..223e9adfe 100644 --- a/app/models/spending_proposal.rb +++ b/app/models/spending_proposal.rb @@ -114,7 +114,7 @@ class SpendingProposal < ActiveRecord::Base def send_unfeasible_email Mailer.unfeasible_spending_proposal(self).deliver_later - update(unfeasible_email_sent_at: Time.now) + update(unfeasible_email_sent_at: Time.current) end def reason_for_not_being_votable_by(user) diff --git a/app/models/user.rb b/app/models/user.rb index 44250109c..3ca79cedf 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -69,7 +69,7 @@ class User < ActiveRecord::Base oauth_email: oauth_email, password: Devise.friendly_token[0,20], terms_of_service: '1', - confirmed_at: oauth_email_confirmed ? DateTime.now : nil + confirmed_at: oauth_email_confirmed ? DateTime.current : nil ) end @@ -158,7 +158,7 @@ class User < ActiveRecord::Base def erase(erase_reason = nil) self.update( - erased_at: Time.now, + erased_at: Time.current, erase_reason: erase_reason, username: nil, email: nil, @@ -258,4 +258,4 @@ class User < ActiveRecord::Base validator.validate(self) end -end \ No newline at end of file +end diff --git a/app/models/verification/letter.rb b/app/models/verification/letter.rb index 0beb7c8d8..c746e73e4 100644 --- a/app/models/verification/letter.rb +++ b/app/models/verification/letter.rb @@ -17,7 +17,7 @@ class Verification::Letter end def letter_requested! - user.update(letter_requested_at: Time.now, letter_verification_code: generate_verification_code) + user.update(letter_requested_at: Time.current, letter_verification_code: generate_verification_code) end def validate_existing_user diff --git a/app/models/verification/management/document.rb b/app/models/verification/management/document.rb index fcbc19ca4..f01c132bb 100644 --- a/app/models/verification/management/document.rb +++ b/app/models/verification/management/document.rb @@ -40,7 +40,7 @@ class Verification::Management::Document end def verify - user.update(verified_at: Time.now) if user? + user.update(verified_at: Time.current) if user? end end diff --git a/app/models/verification/management/email.rb b/app/models/verification/management/email.rb index 33282b569..de13d1ab4 100644 --- a/app/models/verification/management/email.rb +++ b/app/models/verification/management/email.rb @@ -27,8 +27,8 @@ class Verification::Management::Email user.update(document_type: document_type, document_number: document_number, - residence_verified_at: Time.now, - level_two_verified_at: Time.now, + residence_verified_at: Time.current, + level_two_verified_at: Time.current, email_verification_token: plain_token) Mailer.email_verification(user, email, encrypted_token, document_type, document_number).deliver_later diff --git a/app/models/verification/residence.rb b/app/models/verification/residence.rb index cc24bb7c8..96a36e5cd 100644 --- a/app/models/verification/residence.rb +++ b/app/models/verification/residence.rb @@ -31,7 +31,7 @@ class Verification::Residence geozone: self.geozone, date_of_birth: date_of_birth.to_datetime, gender: gender, - residence_verified_at: Time.now) + residence_verified_at: Time.current) end def allowed_age diff --git a/app/views/layouts/_footer.html.erb b/app/views/layouts/_footer.html.erb index da6074706..324a049af 100644 --- a/app/views/layouts/_footer.html.erb +++ b/app/views/layouts/_footer.html.erb @@ -42,7 +42,7 @@

- <%= t("layouts.footer.copyright", year: Time.now.year) %> |  + <%= t("layouts.footer.copyright", year: Time.current.year) %> |  <%= link_to t("layouts.footer.more_info"), page_path('more_information') %> |  <%= link_to t("layouts.footer.privacy"), page_path('privacy') %> |  <%= link_to t("layouts.footer.conditions"), page_path('conditions') %> |  diff --git a/db/dev_seeds.rb b/db/dev_seeds.rb index 441168667..87dc94a2e 100644 --- a/db/dev_seeds.rb +++ b/db/dev_seeds.rb @@ -41,7 +41,7 @@ puts "Creating Users" def create_user(email, username = Faker::Name.name) pwd = '12345678' puts " #{username}" - User.create!(username: username, email: email, password: pwd, password_confirmation: pwd, confirmed_at: Time.now, terms_of_service: "1") + User.create!(username: username, email: email, password: pwd, password_confirmation: pwd, confirmed_at: Time.current, terms_of_service: "1") end admin = create_user('admin@consul.dev', 'admin') @@ -54,10 +54,10 @@ valuator = create_user('valuator@consul.dev', 'valuator') valuator.create_valuator level_2 = create_user('leveltwo@consul.dev', 'level 2') -level_2.update(residence_verified_at: Time.now, confirmed_phone: Faker::PhoneNumber.phone_number, document_number: "2222222222", document_type: "1" ) +level_2.update(residence_verified_at: Time.current, confirmed_phone: Faker::PhoneNumber.phone_number, document_number: "2222222222", document_type: "1" ) verified = create_user('verified@consul.dev', 'verified') -verified.update(residence_verified_at: Time.now, confirmed_phone: Faker::PhoneNumber.phone_number, document_type: "1", verified_at: Time.now, document_number: "3333333333") +verified.update(residence_verified_at: Time.current, confirmed_phone: Faker::PhoneNumber.phone_number, document_type: "1", verified_at: Time.current, document_number: "3333333333") (1..10).each do |i| org_name = Faker::Company.name @@ -82,10 +82,10 @@ end user = create_user("user#{i}@consul.dev") level = [1, 2, 3].sample if level >= 2 - user.update(residence_verified_at: Time.now, confirmed_phone: Faker::PhoneNumber.phone_number, document_number: Faker::Number.number(10), document_type: "1" ) + user.update(residence_verified_at: Time.current, confirmed_phone: Faker::PhoneNumber.phone_number, document_number: Faker::Number.number(10), document_type: "1" ) end if level == 3 - user.update(verified_at: Time.now, document_number: Faker::Number.number(10) ) + user.update(verified_at: Time.current, document_number: Faker::Number.number(10) ) end end @@ -118,7 +118,7 @@ tags = Faker::Lorem.words(25) description = "

#{Faker::Lorem.paragraphs.join('

')}

" debate = Debate.create!(author: author, title: Faker::Lorem.sentence(3).truncate(60), - created_at: rand((Time.now - 1.week) .. Time.now), + created_at: rand((Time.current - 1.week) .. Time.current), description: description, tag_list: tags.sample(3).join(','), geozone: Geozone.reorder("RANDOM()").first, @@ -133,7 +133,7 @@ tags = ActsAsTaggableOn::Tag.where(kind: 'category') description = "

#{Faker::Lorem.paragraphs.join('

')}

" debate = Debate.create!(author: author, title: Faker::Lorem.sentence(3).truncate(60), - created_at: rand((Time.now - 1.week) .. Time.now), + created_at: rand((Time.current - 1.week) .. Time.current), description: description, tag_list: tags.sample(3).join(','), geozone: Geozone.reorder("RANDOM()").first, @@ -155,7 +155,7 @@ tags = Faker::Lorem.words(25) responsible_name: Faker::Name.name, external_url: Faker::Internet.url, description: description, - created_at: rand((Time.now - 1.week) .. Time.now), + created_at: rand((Time.current - 1.week) .. Time.current), tag_list: tags.sample(3).join(','), geozone: Geozone.reorder("RANDOM()").first, terms_of_service: "1") @@ -175,7 +175,7 @@ tags = Faker::Lorem.words(25) responsible_name: Faker::Name.name, external_url: Faker::Internet.url, description: description, - created_at: rand((Time.now - 1.week) .. Time.now), + created_at: rand((Time.current - 1.week) .. Time.current), tag_list: tags.sample(3).join(','), geozone: Geozone.reorder("RANDOM()").first, terms_of_service: "1", @@ -195,7 +195,7 @@ tags = ActsAsTaggableOn::Tag.where(kind: 'category') responsible_name: Faker::Name.name, external_url: Faker::Internet.url, description: description, - created_at: rand((Time.now - 1.week) .. Time.now), + created_at: rand((Time.current - 1.week) .. Time.current), tag_list: tags.sample(3).join(','), geozone: Geozone.reorder("RANDOM()").first, terms_of_service: "1") @@ -209,7 +209,7 @@ puts "Commenting Debates" author = User.reorder("RANDOM()").first debate = Debate.reorder("RANDOM()").first Comment.create!(user: author, - created_at: rand(debate.created_at .. Time.now), + created_at: rand(debate.created_at .. Time.current), commentable: debate, body: Faker::Lorem.sentence) end @@ -221,7 +221,7 @@ puts "Commenting Proposals" author = User.reorder("RANDOM()").first proposal = Proposal.reorder("RANDOM()").first Comment.create!(user: author, - created_at: rand(proposal.created_at .. Time.now), + created_at: rand(proposal.created_at .. Time.current), commentable: proposal, body: Faker::Lorem.sentence) end @@ -233,7 +233,7 @@ puts "Commenting Comments" author = User.reorder("RANDOM()").first parent = Comment.reorder("RANDOM()").first Comment.create!(user: author, - created_at: rand(parent.created_at .. Time.now), + created_at: rand(parent.created_at .. Time.current), commentable_id: parent.commentable_id, commentable_type: parent.commentable_type, body: Faker::Lorem.sentence, @@ -299,7 +299,7 @@ tags = Faker::Lorem.words(10) title: Faker::Lorem.sentence(3).truncate(60), external_url: Faker::Internet.url, description: description, - created_at: rand((Time.now - 1.week) .. Time.now), + created_at: rand((Time.current - 1.week) .. Time.current), geozone: [geozone, nil].sample, feasible: feasible, feasible_explanation: feasible_explanation, @@ -353,8 +353,8 @@ Proposal.last(3).each do |proposal| image: ["banner-img banner-img-one", "banner-img banner-img-two", "banner-img banner-img-three"].sample, target_url: Rails.application.routes.url_helpers.proposal_path(proposal), - post_started_at: rand((Time.now - 1.week) .. (Time.now - 1.day)), - post_ended_at: rand((Time.now - 1.day) .. (Time.now + 1.week)), - created_at: rand((Time.now - 1.week) .. Time.now)) + post_started_at: rand((Time.current - 1.week) .. (Time.current - 1.day)), + post_ended_at: rand((Time.current - 1.day) .. (Time.current + 1.week)), + created_at: rand((Time.current - 1.week) .. Time.current)) puts " #{banner.title}" end diff --git a/db/seeds.rb b/db/seeds.rb index a5d8537db..1607a0aff 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -1,7 +1,7 @@ # coding: utf-8 # Default admin user (change password after first deploy to a server!) if Administrator.count == 0 && !Rails.env.test? - admin = User.create!(username: 'admin', email: 'admin@consul.dev', password: '12345678', password_confirmation: '12345678', confirmed_at: Time.now, terms_of_service: "1") + admin = User.create!(username: 'admin', email: 'admin@consul.dev', password: '12345678', password_confirmation: '12345678', confirmed_at: Time.current, terms_of_service: "1") admin.create_administrator end @@ -80,4 +80,4 @@ Setting['banner-img.banner-img-three'] = "Banner image 3" # Proposal notifications Setting['proposal_notification_minimum_interval_in_days'] = 3 -Setting['direct_message_max_per_day'] = 3 \ No newline at end of file +Setting['direct_message_max_per_day'] = 3 diff --git a/lib/acts_as_paranoid_aliases.rb b/lib/acts_as_paranoid_aliases.rb index 7f2cfe4bd..4f69ee65a 100644 --- a/lib/acts_as_paranoid_aliases.rb +++ b/lib/acts_as_paranoid_aliases.rb @@ -5,7 +5,7 @@ module ActsAsParanoidAliases def hide return false if hidden? - update_attribute(:hidden_at, Time.now) + update_attribute(:hidden_at, Time.current) after_hide end @@ -21,7 +21,7 @@ module ActsAsParanoidAliases end def confirm_hide - update_attribute(:confirmed_hide_at, Time.now) + update_attribute(:confirmed_hide_at, Time.current) end def restore(opts={}) diff --git a/lib/email_digest.rb b/lib/email_digest.rb index 209014dcc..2936a5db5 100644 --- a/lib/email_digest.rb +++ b/lib/email_digest.rb @@ -21,7 +21,7 @@ class EmailDigest end def mark_as_emailed - notifications.update_all(emailed_at: Time.now) + notifications.update_all(emailed_at: Time.current) end -end \ No newline at end of file +end diff --git a/lib/score_calculator.rb b/lib/score_calculator.rb index 70d3835ec..32086392a 100644 --- a/lib/score_calculator.rb +++ b/lib/score_calculator.rb @@ -11,7 +11,7 @@ module ScoreCalculator score = ups - downs offset = Math.log([score.abs, 1].max, 10) * (ups / [total, 1].max) sign = score <=> 0 - seconds = ((date || Time.now) - EPOC).to_f + seconds = ((date || Time.current) - EPOC).to_f (((offset * sign) + (seconds/TIME_UNIT)) * 10000000).round end diff --git a/spec/factories.rb b/spec/factories.rb index 13371a504..7b446f3a0 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -7,7 +7,7 @@ FactoryGirl.define do password 'judgmentday' terms_of_service '1' - confirmed_at { Time.now } + confirmed_at { Time.current } trait :incomplete_verification do after :create do |user| @@ -16,7 +16,7 @@ FactoryGirl.define do end trait :level_two do - residence_verified_at Time.now + residence_verified_at Time.current unconfirmed_phone "611111111" confirmed_phone "611111111" sms_confirmation_code "1234" @@ -25,17 +25,17 @@ FactoryGirl.define do end trait :level_three do - verified_at Time.now + verified_at Time.current document_type "1" document_number end trait :hidden do - hidden_at Time.now + hidden_at Time.current end trait :with_confirmed_hide do - confirmed_hide_at Time.now + confirmed_hide_at Time.current end end @@ -86,7 +86,7 @@ FactoryGirl.define do factory :lock do user tries 0 - locked_until Time.now + locked_until Time.current end factory :verified_user do @@ -101,15 +101,15 @@ FactoryGirl.define do association :author, factory: :user trait :hidden do - hidden_at Time.now + hidden_at Time.current end trait :with_ignored_flag do - ignored_flag_at Time.now + ignored_flag_at Time.current end trait :with_confirmed_hide do - confirmed_hide_at Time.now + confirmed_hide_at Time.current end trait :flagged do @@ -146,15 +146,15 @@ FactoryGirl.define do association :author, factory: :user trait :hidden do - hidden_at Time.now + hidden_at Time.current end trait :with_ignored_flag do - ignored_flag_at Time.now + ignored_flag_at Time.current end trait :with_confirmed_hide do - confirmed_hide_at Time.now + confirmed_hide_at Time.current end trait :flagged do @@ -212,15 +212,15 @@ FactoryGirl.define do sequence(:body) { |n| "Comment body #{n}" } trait :hidden do - hidden_at Time.now + hidden_at Time.current end trait :with_ignored_flag do - ignored_flag_at Time.now + ignored_flag_at Time.current end trait :with_confirmed_hide do - confirmed_hide_at Time.now + confirmed_hide_at Time.current end trait :flagged do @@ -269,11 +269,11 @@ FactoryGirl.define do sequence(:name) { |n| "org#{n}" } trait :verified do - verified_at Time.now + verified_at Time.current end trait :rejected do - rejected_at Time.now + rejected_at Time.current end end @@ -296,13 +296,13 @@ FactoryGirl.define do factory :ahoy_event, :class => Ahoy::Event do id { SecureRandom.uuid } - time DateTime.now + time DateTime.current sequence(:name) {|n| "Event #{n} type"} end factory :visit do id { SecureRandom.uuid } - started_at DateTime.now + started_at DateTime.current end factory :campaign do @@ -326,8 +326,8 @@ FactoryGirl.define do style {["banner-style-one", "banner-style-two", "banner-style-three"].sample} image {["banner.banner-img-one", "banner.banner-img-two", "banner.banner-img-three"].sample} target_url {["/proposals", "/debates" ].sample} - post_started_at Time.now - 7.days - post_ended_at Time.now + 7.days + post_started_at Time.current - 7.days + post_ended_at Time.current + 7.days end factory :proposal_notification do diff --git a/spec/features/admin/banners_spec.rb b/spec/features/admin/banners_spec.rb index 463bb663e..72814b3c3 100644 --- a/spec/features/admin/banners_spec.rb +++ b/spec/features/admin/banners_spec.rb @@ -13,40 +13,40 @@ feature 'Admin banners magement' do target_url: "http://www.url.com", style: "banner-style.banner-one", image: "banner-img.banner-one", - post_started_at: (Time.now + 4.days), - post_ended_at: (Time.now + 10.days)) + post_started_at: (Time.current + 4.days), + post_ended_at: (Time.current + 10.days)) @banner2 = create(:banner, title: "Banner number two", description: "This is the text of banner number two and is not longer active", target_url: "http://www.url.com", style: "banner-style.banner-two", image: "banner-img.banner-two", - post_started_at: (Time.now - 10.days), - post_ended_at: (Time.now - 3.days)) + post_started_at: (Time.current - 10.days), + post_ended_at: (Time.current - 3.days)) @banner3 = create(:banner, title: "Banner number three", description: "This is the text of banner number three and has style banner-three", target_url: "http://www.url.com", style: "banner-style.banner-three", image: "banner-img.banner-three", - post_started_at: (Time.now - 1.days), - post_ended_at: (Time.now + 10.days)) + post_started_at: (Time.current - 1.days), + post_ended_at: (Time.current + 10.days)) @banner4 = create(:banner, title: "Banner number four", description: "This is the text of banner number four and has style banner-one", target_url: "http://www.url.com", style: "banner-style.banner-one", image: "banner-img.banner-one", - post_started_at: (DateTime.now - 10.days), - post_ended_at: (DateTime.now + 10.days)) + post_started_at: (DateTime.current - 10.days), + post_ended_at: (DateTime.current + 10.days)) @banner5 = create(:banner, title: "Banner number five", description: "This is the text of banner number five and has style banner-two", target_url: "http://www.url.com", style: "banner-style.banner-one", image: "banner-img.banner-one", - post_started_at: (DateTime.now - 10.days), - post_ended_at: (DateTime.now + 10.days)) + post_started_at: (DateTime.current - 10.days), + post_ended_at: (DateTime.current + 10.days)) end scenario 'Index show active banners' do @@ -87,8 +87,8 @@ feature 'Admin banners magement' do fill_in 'banner_title', with: 'Such banner' fill_in 'banner_description', with: 'many text wow link' fill_in 'banner_target_url', with: 'https://www.url.com' - last_week = Time.now - 7.days - next_week = Time.now + 7.days + last_week = Time.current - 7.days + next_week = Time.current + 7.days fill_in 'post_started_at', with: last_week.strftime("%d/%m/%Y") fill_in 'post_ended_at', with: next_week.strftime("%d/%m/%Y") @@ -108,8 +108,8 @@ feature 'Admin banners magement' do target_url: 'http://www.url.com', style: 'banner-style.banner-one', image: 'banner-img.banner-one', - post_started_at: (Time.now + 4.days), - post_ended_at: (Time.now + 10.days)) + post_started_at: (Time.current + 4.days), + post_ended_at: (Time.current + 10.days)) visit admin_root_path @@ -145,8 +145,8 @@ feature 'Admin banners magement' do target_url: 'http://www.url.com', style: 'banner-style.banner-one', image: 'banner-img.banner-one', - post_started_at: (Time.now + 4.days), - post_ended_at: (Time.now + 10.days)) + post_started_at: (Time.current + 4.days), + post_ended_at: (Time.current + 10.days)) visit admin_root_path @@ -162,4 +162,4 @@ feature 'Admin banners magement' do expect(page).to_not have_content 'Ugly banner' end -end \ No newline at end of file +end diff --git a/spec/features/admin/verifications_spec.rb b/spec/features/admin/verifications_spec.rb index 9ecd39314..50ff457a1 100644 --- a/spec/features/admin/verifications_spec.rb +++ b/spec/features/admin/verifications_spec.rb @@ -51,7 +51,7 @@ feature 'Incomplete verifications' do end scenario "Phone not given" do - incompletely_verified_user = create(:user, residence_verified_at: Time.now, unconfirmed_phone: nil) + incompletely_verified_user = create(:user, residence_verified_at: Time.current, unconfirmed_phone: nil) visit admin_verifications_path @@ -61,7 +61,7 @@ feature 'Incomplete verifications' do end scenario "SMS code not confirmed" do - incompletely_verified_user = create(:user, residence_verified_at: Time.now, + incompletely_verified_user = create(:user, residence_verified_at: Time.current, unconfirmed_phone: "611111111", sms_confirmation_code: "1234", confirmed_phone: nil) diff --git a/spec/features/comments/debates_spec.rb b/spec/features/comments/debates_spec.rb index d9e58343a..577ba6fd0 100644 --- a/spec/features/comments/debates_spec.rb +++ b/spec/features/comments/debates_spec.rb @@ -62,9 +62,9 @@ feature 'Commenting debates' do end scenario 'Comment order' do - c1 = create(:comment, :with_confidence_score, commentable: debate, cached_votes_up: 100, cached_votes_total: 120, created_at: Time.now - 2) - c2 = create(:comment, :with_confidence_score, commentable: debate, cached_votes_up: 10, cached_votes_total: 12, created_at: Time.now - 1) - c3 = create(:comment, :with_confidence_score, commentable: debate, cached_votes_up: 1, cached_votes_total: 2, created_at: Time.now) + c1 = create(:comment, :with_confidence_score, commentable: debate, cached_votes_up: 100, cached_votes_total: 120, created_at: Time.current - 2) + c2 = create(:comment, :with_confidence_score, commentable: debate, cached_votes_up: 10, cached_votes_total: 12, created_at: Time.current - 1) + c3 = create(:comment, :with_confidence_score, commentable: debate, cached_votes_up: 1, cached_votes_total: 2, created_at: Time.current) visit debate_path(debate, order: :most_voted) @@ -83,10 +83,10 @@ feature 'Commenting debates' do end scenario 'Creation date works differently in roots and in child comments, even when sorting by confidence_score' do - old_root = create(:comment, commentable: debate, created_at: Time.now - 10) - new_root = create(:comment, commentable: debate, created_at: Time.now) - old_child = create(:comment, commentable: debate, parent_id: new_root.id, created_at: Time.now - 10) - new_child = create(:comment, commentable: debate, parent_id: new_root.id, created_at: Time.now) + old_root = create(:comment, commentable: debate, created_at: Time.current - 10) + new_root = create(:comment, commentable: debate, created_at: Time.current) + old_child = create(:comment, commentable: debate, parent_id: new_root.id, created_at: Time.current - 10) + new_child = create(:comment, commentable: debate, parent_id: new_root.id, created_at: Time.current) visit debate_path(debate, order: :most_voted) @@ -418,7 +418,7 @@ feature 'Commenting debates' do feature 'Voting comments' do background do - @manuela = create(:user, verified_at: Time.now) + @manuela = create(:user, verified_at: Time.current) @pablo = create(:user) @debate = create(:debate) @comment = create(:comment, commentable: @debate) diff --git a/spec/features/comments/proposals_spec.rb b/spec/features/comments/proposals_spec.rb index a861615b7..9f3d22966 100644 --- a/spec/features/comments/proposals_spec.rb +++ b/spec/features/comments/proposals_spec.rb @@ -62,9 +62,9 @@ feature 'Commenting proposals' do end scenario 'Comment order' do - c1 = create(:comment, :with_confidence_score, commentable: proposal, cached_votes_up: 100, cached_votes_total: 120, created_at: Time.now - 2) - c2 = create(:comment, :with_confidence_score, commentable: proposal, cached_votes_up: 10, cached_votes_total: 12, created_at: Time.now - 1) - c3 = create(:comment, :with_confidence_score, commentable: proposal, cached_votes_up: 1, cached_votes_total: 2, created_at: Time.now) + c1 = create(:comment, :with_confidence_score, commentable: proposal, cached_votes_up: 100, cached_votes_total: 120, created_at: Time.current - 2) + c2 = create(:comment, :with_confidence_score, commentable: proposal, cached_votes_up: 10, cached_votes_total: 12, created_at: Time.current - 1) + c3 = create(:comment, :with_confidence_score, commentable: proposal, cached_votes_up: 1, cached_votes_total: 2, created_at: Time.current) visit proposal_path(proposal, order: :most_voted) @@ -83,10 +83,10 @@ feature 'Commenting proposals' do end scenario 'Creation date works differently in roots and in child comments, when sorting by confidence_score' do - old_root = create(:comment, commentable: proposal, created_at: Time.now - 10) - new_root = create(:comment, commentable: proposal, created_at: Time.now) - old_child = create(:comment, commentable: proposal, parent_id: new_root.id, created_at: Time.now - 10) - new_child = create(:comment, commentable: proposal, parent_id: new_root.id, created_at: Time.now) + old_root = create(:comment, commentable: proposal, created_at: Time.current - 10) + new_root = create(:comment, commentable: proposal, created_at: Time.current) + old_child = create(:comment, commentable: proposal, parent_id: new_root.id, created_at: Time.current - 10) + new_child = create(:comment, commentable: proposal, parent_id: new_root.id, created_at: Time.current) visit proposal_path(proposal, order: :most_voted) @@ -407,7 +407,7 @@ feature 'Commenting proposals' do feature 'Voting comments' do background do - @manuela = create(:user, verified_at: Time.now) + @manuela = create(:user, verified_at: Time.current) @pablo = create(:user) @proposal = create(:proposal) @comment = create(:comment, commentable: @proposal) diff --git a/spec/features/debates_spec.rb b/spec/features/debates_spec.rb index 5dfd8dd0b..b60d8aa59 100644 --- a/spec/features/debates_spec.rb +++ b/spec/features/debates_spec.rb @@ -422,9 +422,9 @@ feature 'Debates' do end scenario 'Debates are ordered by newest', :js do - create(:debate, title: 'Best', created_at: Time.now) - create(:debate, title: 'Medium', created_at: Time.now - 1.hour) - create(:debate, title: 'Worst', created_at: Time.now - 1.day) + create(:debate, title: 'Best', created_at: Time.current) + create(:debate, title: 'Medium', created_at: Time.current - 1.hour) + create(:debate, title: 'Worst', created_at: Time.current - 1.day) visit debates_path click_link 'newest' @@ -808,7 +808,7 @@ feature 'Debates' do scenario "Reorder results maintaing search", :js do debate1 = create(:debate, title: "Show you got", cached_votes_up: 10, created_at: 1.week.ago) debate2 = create(:debate, title: "Show what you got", cached_votes_up: 1, created_at: 1.month.ago) - debate3 = create(:debate, title: "Show you got", cached_votes_up: 100, created_at: Time.now) + debate3 = create(:debate, title: "Show you got", cached_votes_up: 100, created_at: Time.current) debate4 = create(:debate, title: "Do not display", cached_votes_up: 1, created_at: 1.week.ago) visit debates_path @@ -1032,7 +1032,7 @@ feature 'Debates' do admin = create(:administrator) login_as(admin.user) - debate1 = create(:debate, featured_at: Time.now) + debate1 = create(:debate, featured_at: Time.current) debate2 = create(:debate) visit debates_path diff --git a/spec/features/moderation/comments_spec.rb b/spec/features/moderation/comments_spec.rb index faffef79b..dc3604c3a 100644 --- a/spec/features/moderation/comments_spec.rb +++ b/spec/features/moderation/comments_spec.rb @@ -170,9 +170,9 @@ feature 'Moderate comments' do end scenario "sorting comments" do - create(:comment, body: "Flagged comment", created_at: Time.now - 1.day, flags_count: 5) - create(:comment, body: "Flagged newer comment", created_at: Time.now - 12.hours, flags_count: 3) - create(:comment, body: "Newer comment", created_at: Time.now) + create(:comment, body: "Flagged comment", created_at: Time.current - 1.day, flags_count: 5) + create(:comment, body: "Flagged newer comment", created_at: Time.current - 12.hours, flags_count: 3) + create(:comment, body: "Newer comment", created_at: Time.current) visit moderation_comments_path(order: 'newest') diff --git a/spec/features/moderation/debates_spec.rb b/spec/features/moderation/debates_spec.rb index 9d48123f2..78aca9b7e 100644 --- a/spec/features/moderation/debates_spec.rb +++ b/spec/features/moderation/debates_spec.rb @@ -177,9 +177,9 @@ feature 'Moderate debates' do end scenario "sorting debates" do - create(:debate, title: "Flagged debate", created_at: Time.now - 1.day, flags_count: 5) - create(:debate, title: "Flagged newer debate", created_at: Time.now - 12.hours, flags_count: 3) - create(:debate, title: "Newer debate", created_at: Time.now) + create(:debate, title: "Flagged debate", created_at: Time.current - 1.day, flags_count: 5) + create(:debate, title: "Flagged newer debate", created_at: Time.current - 12.hours, flags_count: 3) + create(:debate, title: "Newer debate", created_at: Time.current) visit moderation_debates_path(order: 'created_at') diff --git a/spec/features/moderation/proposals_spec.rb b/spec/features/moderation/proposals_spec.rb index 956ca611c..ab8da4764 100644 --- a/spec/features/moderation/proposals_spec.rb +++ b/spec/features/moderation/proposals_spec.rb @@ -169,9 +169,9 @@ feature 'Moderate proposals' do end scenario "sorting proposals" do - create(:proposal, title: "Flagged proposal", created_at: Time.now - 1.day, flags_count: 5) - create(:proposal, title: "Flagged newer proposal", created_at: Time.now - 12.hours, flags_count: 3) - create(:proposal, title: "Newer proposal", created_at: Time.now) + create(:proposal, title: "Flagged proposal", created_at: Time.current - 1.day, flags_count: 5) + create(:proposal, title: "Flagged newer proposal", created_at: Time.current - 12.hours, flags_count: 3) + create(:proposal, title: "Newer proposal", created_at: Time.current) visit moderation_proposals_path(order: 'created_at') diff --git a/spec/features/proposals_spec.rb b/spec/features/proposals_spec.rb index b0a1c7d60..aaf7d9dd9 100644 --- a/spec/features/proposals_spec.rb +++ b/spec/features/proposals_spec.rb @@ -480,7 +480,7 @@ feature 'Proposals' do scenario 'Index do not list retired proposals by default' do create_featured_proposals not_retired = create(:proposal) - retired = create(:proposal, retired_at: Time.now) + retired = create(:proposal, retired_at: Time.current) visit proposals_path @@ -494,7 +494,7 @@ feature 'Proposals' do scenario 'Index has a link to retired proposals list' do create_featured_proposals not_retired = create(:proposal) - retired = create(:proposal, retired_at: Time.now) + retired = create(:proposal, retired_at: Time.current) visit proposals_path @@ -514,8 +514,8 @@ feature 'Proposals' do end scenario 'Retired proposals index has links to filter by retired_reason' do - unfeasible = create(:proposal, retired_at: Time.now, retired_reason: 'unfeasible') - duplicated = create(:proposal, retired_at: Time.now, retired_reason: 'duplicated') + unfeasible = create(:proposal, retired_at: Time.current, retired_reason: 'unfeasible') + duplicated = create(:proposal, retired_at: Time.current, retired_reason: 'duplicated') visit proposals_path(retired: 'all') @@ -660,9 +660,9 @@ feature 'Proposals' do scenario 'Proposals are ordered by newest', :js do create_featured_proposals - create(:proposal, title: 'Best proposal', created_at: Time.now) - create(:proposal, title: 'Medium proposal', created_at: Time.now - 1.hour) - create(:proposal, title: 'Worst proposal', created_at: Time.now - 1.day) + create(:proposal, title: 'Best proposal', created_at: Time.current) + create(:proposal, title: 'Medium proposal', created_at: Time.current - 1.hour) + create(:proposal, title: 'Worst proposal', created_at: Time.current - 1.day) visit proposals_path click_link 'newest' @@ -1172,7 +1172,7 @@ feature 'Proposals' do scenario "Reorder results maintaing search", :js do proposal1 = create(:proposal, title: "Show you got", cached_votes_up: 10, created_at: 1.week.ago) proposal2 = create(:proposal, title: "Show what you got", cached_votes_up: 1, created_at: 1.month.ago) - proposal3 = create(:proposal, title: "Show you got", cached_votes_up: 100, created_at: Time.now) + proposal3 = create(:proposal, title: "Show you got", cached_votes_up: 100, created_at: Time.current) proposal4 = create(:proposal, title: "Do not display", cached_votes_up: 1, created_at: 1.week.ago) visit proposals_path diff --git a/spec/features/users_auth_spec.rb b/spec/features/users_auth_spec.rb index 631ef57ba..e978e7bd2 100644 --- a/spec/features/users_auth_spec.rb +++ b/spec/features/users_auth_spec.rb @@ -286,7 +286,7 @@ feature 'Users' do end scenario 'Sign in, admin with password expired' do - user = create(:user, password_changed_at: Time.now - 1.year) + user = create(:user, password_changed_at: Time.current - 1.year) admin = create(:administrator, user: user) login_as(admin.user) @@ -304,7 +304,7 @@ feature 'Users' do end scenario 'Sign in, admin without password expired' do - user = create(:user, password_changed_at: Time.now - 360.days) + user = create(:user, password_changed_at: Time.current - 360.days) admin = create(:administrator, user: user) login_as(admin.user) @@ -314,7 +314,7 @@ feature 'Users' do end scenario 'Sign in, user with password expired' do - user = create(:user, password_changed_at: Time.now - 1.year) + user = create(:user, password_changed_at: Time.current - 1.year) login_as(user) visit root_path @@ -323,7 +323,7 @@ feature 'Users' do end scenario 'Admin with password expired trying to use same password' do - user = create(:user, password_changed_at: Time.now - 1.year, password: '123456789') + user = create(:user, password_changed_at: Time.current - 1.year, password: '123456789') admin = create(:administrator, user: user) login_as(admin.user) @@ -339,4 +339,4 @@ feature 'Users' do expect(page).to have_content "must be different than the current password." end -end \ No newline at end of file +end diff --git a/spec/features/verification/email_spec.rb b/spec/features/verification/email_spec.rb index 58a3f71fb..bf1ff9b37 100644 --- a/spec/features/verification/email_spec.rb +++ b/spec/features/verification/email_spec.rb @@ -4,7 +4,7 @@ feature 'Verify email' do scenario 'Verify' do user = create(:user, - residence_verified_at: Time.now, + residence_verified_at: Time.current, document_number: '12345678Z', document_type: 'dni') @@ -34,7 +34,7 @@ feature 'Verify email' do end scenario "Errors on token verification" do - user = create(:user, residence_verified_at: Time.now) + user = create(:user, residence_verified_at: Time.current) login_as(user) visit email_path(email_verification_token: "1234") @@ -44,7 +44,7 @@ feature 'Verify email' do scenario "Errors on sending confirmation email" do user = create(:user, - residence_verified_at: Time.now, + residence_verified_at: Time.current, document_number: '12345678Z', document_type: 'dni') @@ -62,4 +62,4 @@ feature 'Verify email' do expect(page).to have_content "There was a problem with sending an email to your account" end -end \ No newline at end of file +end diff --git a/spec/features/verification/letter_spec.rb b/spec/features/verification/letter_spec.rb index 9a9b2500b..3d5d14fd3 100644 --- a/spec/features/verification/letter_spec.rb +++ b/spec/features/verification/letter_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' feature 'Verify Letter' do scenario 'Request a letter' do - user = create(:user, residence_verified_at: Time.now, + user = create(:user, residence_verified_at: Time.current, confirmed_phone: "611111111") login_as(user) @@ -20,7 +20,7 @@ feature 'Verify Letter' do end scenario 'Go to office instead of send letter' do - user = create(:user, residence_verified_at: Time.now, + user = create(:user, residence_verified_at: Time.current, confirmed_phone: "611111111") login_as(user) @@ -40,7 +40,7 @@ feature 'Verify Letter' do end scenario "Deny access unless verified phone/email" do - user = create(:user, residence_verified_at: Time.now) + user = create(:user, residence_verified_at: Time.current) login_as(user) visit new_letter_path @@ -52,7 +52,7 @@ feature 'Verify Letter' do context "Code verification" do scenario "Valid verification user logged in" do - user = create(:user, residence_verified_at: Time.now, + user = create(:user, residence_verified_at: Time.current, confirmed_phone: "611111111", letter_verification_code: "123456") @@ -69,7 +69,7 @@ feature 'Verify Letter' do end scenario "Valid verification of user failing to add trailing zeros" do - user = create(:user, residence_verified_at: Time.now, + user = create(:user, residence_verified_at: Time.current, confirmed_phone: "611111111", letter_verification_code: "012345") @@ -86,7 +86,7 @@ feature 'Verify Letter' do end scenario "Valid verification user not logged in" do - user = create(:user, residence_verified_at: Time.now, + user = create(:user, residence_verified_at: Time.current, confirmed_phone: "611111111", letter_verification_code: "123456") @@ -110,7 +110,7 @@ feature 'Verify Letter' do end scenario "Error messages on verification" do - user = create(:user, residence_verified_at: Time.now, + user = create(:user, residence_verified_at: Time.current, confirmed_phone: "611111111") visit edit_letter_path @@ -122,7 +122,7 @@ feature 'Verify Letter' do end scenario '6 tries allowed' do - user = create(:user, residence_verified_at: Time.now, + user = create(:user, residence_verified_at: Time.current, confirmed_phone: "611111111", letter_verification_code: "123456") diff --git a/spec/features/verification/sms_spec.rb b/spec/features/verification/sms_spec.rb index 3bcc2ff68..f582079a6 100644 --- a/spec/features/verification/sms_spec.rb +++ b/spec/features/verification/sms_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' feature 'SMS Verification' do scenario 'Verify' do - user = create(:user, residence_verified_at: Time.now) + user = create(:user, residence_verified_at: Time.current) login_as(user) visit new_sms_path @@ -21,7 +21,7 @@ feature 'SMS Verification' do end scenario 'Errors on phone number' do - user = create(:user, residence_verified_at: Time.now) + user = create(:user, residence_verified_at: Time.current) login_as(user) visit new_sms_path @@ -32,7 +32,7 @@ feature 'SMS Verification' do end scenario 'Errors on verification code' do - user = create(:user, residence_verified_at: Time.now) + user = create(:user, residence_verified_at: Time.current) login_as(user) visit new_sms_path @@ -58,7 +58,7 @@ feature 'SMS Verification' do end scenario '5 tries allowed' do - user = create(:user, residence_verified_at: Time.now) + user = create(:user, residence_verified_at: Time.current) login_as(user) visit new_sms_path @@ -77,4 +77,4 @@ feature 'SMS Verification' do expect(current_path).to eq(account_path) end -end \ No newline at end of file +end diff --git a/spec/features/verification/verification_path_spec.rb b/spec/features/verification/verification_path_spec.rb index 6ed9397bb..bc5d60317 100644 --- a/spec/features/verification/verification_path_spec.rb +++ b/spec/features/verification/verification_path_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' feature 'Verification path' do scenario "User is an organization" do - user = create(:user, verified_at: Time.now) + user = create(:user, verified_at: Time.current) create(:organization, user: user) login_as(user) @@ -13,7 +13,7 @@ feature 'Verification path' do end scenario "User is verified" do - user = create(:user, verified_at: Time.now) + user = create(:user, verified_at: Time.current) login_as(user) visit verification_path @@ -23,8 +23,8 @@ feature 'Verification path' do end scenario "User requested a letter" do - user = create(:user, confirmed_phone: "623456789", residence_verified_at: Time.now, - letter_requested_at: Time.now, letter_verification_code: "666") + user = create(:user, confirmed_phone: "623456789", residence_verified_at: Time.current, + letter_requested_at: Time.current, letter_verification_code: "666") login_as(user) visit verification_path @@ -33,7 +33,7 @@ feature 'Verification path' do end scenario "User is level two verified" do - user = create(:user, residence_verified_at: Time.now, confirmed_phone: "666666666") + user = create(:user, residence_verified_at: Time.current, confirmed_phone: "666666666") login_as(user) visit verification_path @@ -42,7 +42,7 @@ feature 'Verification path' do end scenario "User received a verification sms" do - user = create(:user, residence_verified_at: Time.now, unconfirmed_phone: "666666666", sms_confirmation_code: "666") + user = create(:user, residence_verified_at: Time.current, unconfirmed_phone: "666666666", sms_confirmation_code: "666") login_as(user) visit verification_path @@ -51,7 +51,7 @@ feature 'Verification path' do end scenario "User received verification email" do - user = create(:user, residence_verified_at: Time.now, email_verification_token: "1234") + user = create(:user, residence_verified_at: Time.current, email_verification_token: "1234") login_as(user) visit verification_path @@ -64,7 +64,7 @@ feature 'Verification path' do end scenario "User has verified residence" do - user = create(:user, residence_verified_at: Time.now) + user = create(:user, residence_verified_at: Time.current) login_as(user) visit verification_path @@ -86,7 +86,7 @@ feature 'Verification path' do end scenario "A verified user can not access verification pages" do - user = create(:user, verified_at: Time.now) + user = create(:user, verified_at: Time.current) login_as(user) @@ -99,4 +99,4 @@ feature 'Verification path' do end end -end \ No newline at end of file +end diff --git a/spec/features/verification/verified_user_spec.rb b/spec/features/verification/verified_user_spec.rb index 38097004e..451ea03e5 100644 --- a/spec/features/verification/verified_user_spec.rb +++ b/spec/features/verification/verified_user_spec.rb @@ -4,7 +4,7 @@ feature 'Verified users' do scenario "Verified emails" do user = create(:user, - residence_verified_at: Time.now, + residence_verified_at: Time.current, document_number: '12345678Z') create(:verified_user, @@ -29,7 +29,7 @@ feature 'Verified users' do scenario "Verified phones" do user = create(:user, - residence_verified_at: Time.now, + residence_verified_at: Time.current, document_number: '12345678Z') create(:verified_user, @@ -54,7 +54,7 @@ feature 'Verified users' do scenario "No emails or phones" do user = create(:user, - residence_verified_at: Time.now, + residence_verified_at: Time.current, document_number: '12345678Z') create(:verified_user, @@ -72,7 +72,7 @@ feature 'Verified users' do scenario "Select a verified email" do user = create(:user, - residence_verified_at: Time.now, + residence_verified_at: Time.current, document_number: '12345678Z') verified_user = create(:verified_user, @@ -92,7 +92,7 @@ feature 'Verified users' do scenario "Select a verified phone" do user = create(:user, - residence_verified_at: Time.now, + residence_verified_at: Time.current, document_number: '12345678Z') verified_user = create(:verified_user, @@ -111,7 +111,7 @@ feature 'Verified users' do scenario "Continue without selecting any verified information" do user = create(:user, - residence_verified_at: Time.now, + residence_verified_at: Time.current, document_number: '12345678Z') create(:verified_user, @@ -127,7 +127,7 @@ feature 'Verified users' do end scenario "No verified information" do - user = create(:user, residence_verified_at: Time.now) + user = create(:user, residence_verified_at: Time.current) login_as(user) visit verified_user_path @@ -135,4 +135,4 @@ feature 'Verified users' do expect(current_path).to eq(new_sms_path) end -end \ No newline at end of file +end diff --git a/spec/features/votes_spec.rb b/spec/features/votes_spec.rb index 2ae64effe..8b242deb2 100644 --- a/spec/features/votes_spec.rb +++ b/spec/features/votes_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' feature 'Votes' do background do - @manuela = create(:user, verified_at: Time.now) + @manuela = create(:user, verified_at: Time.current) @pablo = create(:user) end diff --git a/spec/features/welcome_spec.rb b/spec/features/welcome_spec.rb index a98ff6e43..73cd65f5c 100644 --- a/spec/features/welcome_spec.rb +++ b/spec/features/welcome_spec.rb @@ -45,7 +45,7 @@ feature "Welcome screen" do end scenario 'it is not shown to level-2 users' do - user = create(:user, residence_verified_at: Time.now, confirmed_phone: "123") + user = create(:user, residence_verified_at: Time.current, confirmed_phone: "123") login_through_form_as(user) @@ -53,7 +53,7 @@ feature "Welcome screen" do end scenario 'it is not shown to level-3 users' do - user = create(:user, verified_at: Time.now) + user = create(:user, verified_at: Time.current) login_through_form_as(user) diff --git a/spec/lib/email_digests_spec.rb b/spec/lib/email_digests_spec.rb index 27df17399..76efffe2e 100644 --- a/spec/lib/email_digests_spec.rb +++ b/spec/lib/email_digests_spec.rb @@ -51,7 +51,7 @@ describe EmailDigest do user = create(:user) proposal_notification = create(:proposal_notification) - notification = create(:notification, notifiable: proposal_notification, user: user, emailed_at: Time.now) + notification = create(:notification, notifiable: proposal_notification, user: user, emailed_at: Time.current) email_digest = EmailDigest.new(user) expect(email_digest.pending_notifications?).to_not be @@ -85,7 +85,7 @@ describe EmailDigest do user = create(:user) proposal_notification = create(:proposal_notification) - create(:notification, notifiable: proposal_notification, user: user, emailed_at: Time.now) + create(:notification, notifiable: proposal_notification, user: user, emailed_at: Time.current) reset_mailer email_digest = EmailDigest.new(user) @@ -124,4 +124,4 @@ describe EmailDigest do end -end \ No newline at end of file +end diff --git a/spec/models/abilities/common_spec.rb b/spec/models/abilities/common_spec.rb index ab14c01bd..b22c91396 100644 --- a/spec/models/abilities/common_spec.rb +++ b/spec/models/abilities/common_spec.rb @@ -90,7 +90,7 @@ describe "Abilities::Common" do describe "when level 2 verified" do let(:own_spending_proposal) { create(:spending_proposal, author: user) } let(:own_direct_message) { create(:direct_message, sender: user) } - before{ user.update(residence_verified_at: Time.now, confirmed_phone: "1") } + before{ user.update(residence_verified_at: Time.current, confirmed_phone: "1") } it { should be_able_to(:vote, Proposal) } it { should be_able_to(:vote_featured, Proposal) } @@ -108,7 +108,7 @@ describe "Abilities::Common" do describe "when level 3 verified" do let(:own_spending_proposal) { create(:spending_proposal, author: user) } let(:own_direct_message) { create(:direct_message, sender: user) } - before{ user.update(verified_at: Time.now) } + before{ user.update(verified_at: Time.current) } it { should be_able_to(:vote, Proposal) } it { should be_able_to(:vote_featured, Proposal) } diff --git a/spec/models/debate_spec.rb b/spec/models/debate_spec.rb index 7e6d851fe..1b94393d1 100644 --- a/spec/models/debate_spec.rb +++ b/spec/models/debate_spec.rb @@ -129,12 +129,12 @@ describe Debate do end it "should be true for level two verified users" do - user = create(:user, residence_verified_at: Time.now, confirmed_phone: "666333111") + user = create(:user, residence_verified_at: Time.current, confirmed_phone: "666333111") expect(debate.votable_by?(user)).to be true end it "should be true for level three verified users" do - user = create(:user, verified_at: Time.now) + user = create(:user, verified_at: Time.current) expect(debate.votable_by?(user)).to be true end @@ -166,24 +166,24 @@ describe Debate do describe "from level two verified users" do it "should register vote" do - user = create(:user, residence_verified_at: Time.now, confirmed_phone: "666333111") + user = create(:user, residence_verified_at: Time.current, confirmed_phone: "666333111") expect {debate.register_vote(user, 'yes')}.to change{debate.reload.votes_for.size}.by(1) end it "should not increase anonymous votes counter " do - user = create(:user, residence_verified_at: Time.now, confirmed_phone: "666333111") + user = create(:user, residence_verified_at: Time.current, confirmed_phone: "666333111") expect {debate.register_vote(user, 'yes')}.to_not change{debate.reload.cached_anonymous_votes_total} end end describe "from level three verified users" do it "should register vote" do - user = create(:user, verified_at: Time.now) + user = create(:user, verified_at: Time.current) expect {debate.register_vote(user, 'yes')}.to change{debate.reload.votes_for.size}.by(1) end it "should not increase anonymous votes counter " do - user = create(:user, verified_at: Time.now) + user = create(:user, verified_at: Time.current) expect {debate.register_vote(user, 'yes')}.to_not change{debate.reload.cached_anonymous_votes_total} end end @@ -225,7 +225,7 @@ describe Debate do end describe '#hot_score' do - let(:now) { Time.now } + let(:now) { Time.current } it "increases for newer debates" do old = create(:debate, :with_hot_score, created_at: now - 1.day) @@ -611,7 +611,7 @@ describe Debate do it "should be able to reorder by created_at after searching" do recent = create(:debate, title: 'stop corruption', cached_votes_up: 1, created_at: 1.week.ago) - newest = create(:debate, title: 'stop corruption', cached_votes_up: 2, created_at: Time.now) + newest = create(:debate, title: 'stop corruption', cached_votes_up: 2, created_at: Time.current) oldest = create(:debate, title: 'stop corruption', cached_votes_up: 3, created_at: 1.month.ago) results = Debate.search('stop corruption') diff --git a/spec/models/organization_spec.rb b/spec/models/organization_spec.rb index c755413c1..402c0d092 100644 --- a/spec/models/organization_spec.rb +++ b/spec/models/organization_spec.rb @@ -9,17 +9,17 @@ describe Organization do expect(subject.verified?).to be false end it "is true when verified_at? exists" do - subject.verified_at = Time.now + subject.verified_at = Time.current expect(subject.verified?).to be true end it "is false when the organization was verified and then rejected" do - subject.verified_at = Time.now - subject.rejected_at = Time.now + 1 + subject.verified_at = Time.current + subject.rejected_at = Time.current + 1 expect(subject.verified?).to be false end it "is true when the organization was rejected and then verified" do - subject.rejected_at = Time.now - subject.verified_at = Time.now + 1 + subject.rejected_at = Time.current + subject.verified_at = Time.current + 1 expect(subject.verified?).to be true end end @@ -29,17 +29,17 @@ describe Organization do expect(subject.rejected?).to be false end it "is true when rejected_at? exists" do - subject.rejected_at = Time.now + subject.rejected_at = Time.current expect(subject.rejected?).to be true end it "is true when the organization was verified and then rejected" do - subject.verified_at = Time.now - subject.rejected_at = Time.now + 1 + subject.verified_at = Time.current + subject.rejected_at = Time.current + 1 expect(subject.rejected?).to be true end it "is false when the organization was rejected and then verified" do - subject.rejected_at = Time.now - subject.verified_at = Time.now + 1 + subject.rejected_at = Time.current + subject.verified_at = Time.current + 1 expect(subject.rejected?).to be false end end diff --git a/spec/models/proposal_spec.rb b/spec/models/proposal_spec.rb index de144c10a..9a9e9e9bc 100644 --- a/spec/models/proposal_spec.rb +++ b/spec/models/proposal_spec.rb @@ -166,12 +166,12 @@ describe Proposal do let(:proposal) { create(:proposal) } it "should be true for level two verified users" do - user = create(:user, residence_verified_at: Time.now, confirmed_phone: "666333111") + user = create(:user, residence_verified_at: Time.current, confirmed_phone: "666333111") expect(proposal.votable_by?(user)).to be true end it "should be true for level three verified users" do - user = create(:user, verified_at: Time.now) + user = create(:user, verified_at: Time.current) expect(proposal.votable_by?(user)).to be true end @@ -186,14 +186,14 @@ describe Proposal do describe "from level two verified users" do it "should register vote" do - user = create(:user, residence_verified_at: Time.now, confirmed_phone: "666333111") + user = create(:user, residence_verified_at: Time.current, confirmed_phone: "666333111") expect {proposal.register_vote(user, 'yes')}.to change{proposal.reload.votes_for.size}.by(1) end end describe "from level three verified users" do it "should register vote" do - user = create(:user, verified_at: Time.now) + user = create(:user, verified_at: Time.current) expect {proposal.register_vote(user, 'yes')}.to change{proposal.reload.votes_for.size}.by(1) end end @@ -206,7 +206,7 @@ describe Proposal do end it "should not register vote for archived proposals" do - user = create(:user, verified_at: Time.now) + user = create(:user, verified_at: Time.current) archived_proposal = create(:proposal, :archived) expect {archived_proposal.register_vote(user, 'yes')}.to change{proposal.reload.votes_for.size}.by(0) @@ -230,7 +230,7 @@ describe Proposal do end describe '#hot_score' do - let(:now) { Time.now } + let(:now) { Time.current } it "increases for newer proposals" do old = create(:proposal, :with_hot_score, created_at: now - 1.day) @@ -267,7 +267,7 @@ describe Proposal do it "increases with votes" do previous = proposal.hot_score - 5.times { proposal.register_vote(create(:user, verified_at: Time.now), true) } + 5.times { proposal.register_vote(create(:user, verified_at: Time.current), true) } expect(previous).to be < proposal.reload.hot_score end @@ -317,7 +317,7 @@ describe Proposal do it "increases with like" do previous = proposal.confidence_score - 5.times { proposal.register_vote(create(:user, verified_at: Time.now), true) } + 5.times { proposal.register_vote(create(:user, verified_at: Time.current), true) } expect(previous).to be < proposal.confidence_score end end @@ -612,7 +612,7 @@ describe Proposal do it "should be able to reorder by created_at after searching" do recent = create(:proposal, title: 'stop corruption', cached_votes_up: 1, created_at: 1.week.ago) - newest = create(:proposal, title: 'stop corruption', cached_votes_up: 2, created_at: Time.now) + newest = create(:proposal, title: 'stop corruption', cached_votes_up: 2, created_at: Time.current) oldest = create(:proposal, title: 'stop corruption', cached_votes_up: 3, created_at: 1.month.ago) results = Proposal.search('stop corruption') @@ -794,7 +794,7 @@ describe Proposal do describe "retired" do let!(:proposal1) { create(:proposal) } - let!(:proposal2) { create(:proposal, retired_at: Time.now) } + let!(:proposal2) { create(:proposal, retired_at: Time.current) } it "retired? is true" do expect(proposal1.retired?).to eq false diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index b6084a971..d7235dc86 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -274,10 +274,10 @@ describe User do # Subdomains are also accepted Setting['email_domain_for_officials'] = 'officials.madrid.es' - user1 = create(:user, email: "john@officials.madrid.es", confirmed_at: Time.now) - user2 = create(:user, email: "john@yes.officials.madrid.es", confirmed_at: Time.now) - user3 = create(:user, email: "john@unofficials.madrid.es", confirmed_at: Time.now) - user4 = create(:user, email: "john@example.org", confirmed_at: Time.now) + user1 = create(:user, email: "john@officials.madrid.es", confirmed_at: Time.current) + user2 = create(:user, email: "john@yes.officials.madrid.es", confirmed_at: Time.current) + user3 = create(:user, email: "john@unofficials.madrid.es", confirmed_at: Time.current) + user4 = create(:user, email: "john@example.org", confirmed_at: Time.current) expect(user1.has_official_email?).to eq(true) expect(user2.has_official_email?).to eq(true) @@ -332,7 +332,7 @@ describe User do it "returns users that have not been erased" do user1 = create(:user, erased_at: nil) user2 = create(:user, erased_at: nil) - user3 = create(:user, erased_at: Time.now) + user3 = create(:user, erased_at: Time.current) expect(User.active).to include(user1) expect(User.active).to include(user2) diff --git a/spec/support/common_actions.rb b/spec/support/common_actions.rb index a0f32957d..00f59fa75 100644 --- a/spec/support/common_actions.rb +++ b/spec/support/common_actions.rb @@ -25,7 +25,7 @@ module CommonActions end def login_as_authenticated_manager - login, user_key, date = "JJB042", "31415926", Time.now.strftime("%Y%m%d%H%M%S") + login, user_key, date = "JJB042", "31415926", Time.current.strftime("%Y%m%d%H%M%S") allow_any_instance_of(ManagerAuthenticator).to receive(:auth).and_return({login: login, user_key: user_key, date: date}.with_indifferent_access) visit management_sign_in_path(login: login, clave_usuario: user_key, fecha_conexion: date) end diff --git a/spec/support/verifiable.rb b/spec/support/verifiable.rb index 762a22df8..53c5931cc 100644 --- a/spec/support/verifiable.rb +++ b/spec/support/verifiable.rb @@ -4,7 +4,7 @@ shared_examples_for "verifiable" do describe "#scopes" do describe "#level_three_verified" do it "returns level three verified users" do - user1 = create(:user, verified_at: Time.now) + user1 = create(:user, verified_at: Time.current) user2 = create(:user, verified_at: nil) expect(model.level_three_verified).to include(user1) @@ -14,10 +14,10 @@ shared_examples_for "verifiable" do describe "#level_two_verified" do it "returns level two verified users" do - user1 = create(:user, confirmed_phone: "123456789", residence_verified_at: Time.now) + user1 = create(:user, confirmed_phone: "123456789", residence_verified_at: Time.current) user2 = create(:user, confirmed_phone: "123456789", residence_verified_at: nil) - user3 = create(:user, confirmed_phone: nil, residence_verified_at: Time.now) - user4 = create(:user, level_two_verified_at: Time.now) + user3 = create(:user, confirmed_phone: nil, residence_verified_at: Time.current) + user4 = create(:user, level_two_verified_at: Time.current) expect(model.level_two_verified).to include(user1) expect(model.level_two_verified).to_not include(user2) @@ -28,11 +28,11 @@ shared_examples_for "verifiable" do describe "#level_two_or_three_verified" do it "returns level two or three verified users" do - user1 = create(:user, confirmed_phone: "123456789", residence_verified_at: Time.now) - user2 = create(:user, verified_at: Time.now) + user1 = create(:user, confirmed_phone: "123456789", residence_verified_at: Time.current) + user2 = create(:user, verified_at: Time.current) user3 = create(:user, confirmed_phone: "123456789", residence_verified_at: nil) - user4 = create(:user, confirmed_phone: nil, residence_verified_at: Time.now) - user5 = create(:user, level_two_verified_at: Time.now) + user4 = create(:user, confirmed_phone: nil, residence_verified_at: Time.current) + user5 = create(:user, level_two_verified_at: Time.current) expect(model.level_two_or_three_verified).to include(user1) expect(model.level_two_or_three_verified).to include(user2) @@ -46,9 +46,9 @@ shared_examples_for "verifiable" do it "returns unverified users" do user1 = create(:user, verified_at: nil, confirmed_phone: nil) user2 = create(:user, verified_at: nil, residence_verified_at: nil, confirmed_phone: "123456789") - user3 = create(:user, verified_at: nil, residence_verified_at: Time.now, confirmed_phone: nil) - user4 = create(:user, verified_at: Time.now, residence_verified_at: Time.now, confirmed_phone: "123456789") - user5 = create(:user, level_two_verified_at: Time.now) + user3 = create(:user, verified_at: nil, residence_verified_at: Time.current, confirmed_phone: nil) + user4 = create(:user, verified_at: Time.current, residence_verified_at: Time.current, confirmed_phone: "123456789") + user5 = create(:user, level_two_verified_at: Time.current) expect(model.unverified).to include(user1) expect(model.unverified).to include(user2) @@ -63,9 +63,9 @@ shared_examples_for "verifiable" do user1 = create(:user, verified_at: nil, confirmed_phone: nil) create(:failed_census_call, user: user1) - user2 = create(:user, verified_at: nil, residence_verified_at: Time.now, unconfirmed_phone: nil) + user2 = create(:user, verified_at: nil, residence_verified_at: Time.current, unconfirmed_phone: nil) user3 = create(:user, verified_at: nil, confirmed_phone: nil) - user4 = create(:user, verified_at: Time.now, residence_verified_at: Time.now, unconfirmed_phone: "123456789", confirmed_phone: "123456789") + user4 = create(:user, verified_at: Time.current, residence_verified_at: Time.current, unconfirmed_phone: "123456789", confirmed_phone: "123456789") expect(model.incomplete_verification).to include(user1) @@ -78,7 +78,7 @@ shared_examples_for "verifiable" do describe "#methods" do it "residence_verified? is true only if residence_verified_at" do - user = create(:user, residence_verified_at: Time.now) + user = create(:user, residence_verified_at: Time.current) expect(user.residence_verified?).to eq(true) user = create(:user, residence_verified_at: nil) @@ -94,13 +94,13 @@ shared_examples_for "verifiable" do end it "level_two_verified? is true if manually set, or if residence_verified_at and confirmed_phone" do - user = create(:user, level_two_verified_at: Time.now) + user = create(:user, level_two_verified_at: Time.current) expect(user.level_two_verified?).to eq(true) - user = create(:user, confirmed_phone: "123456789", residence_verified_at: Time.now) + user = create(:user, confirmed_phone: "123456789", residence_verified_at: Time.current) expect(user.level_two_verified?).to eq(true) - user = create(:user, confirmed_phone: nil, residence_verified_at: Time.now) + user = create(:user, confirmed_phone: nil, residence_verified_at: Time.current) expect(user.level_two_verified?).to eq(false) user = create(:user, confirmed_phone: "123456789", residence_verified_at: nil) @@ -108,7 +108,7 @@ shared_examples_for "verifiable" do end it "level_three_verified? is true only if verified_at" do - user = create(:user, verified_at: Time.now) + user = create(:user, verified_at: Time.current) expect(user.level_three_verified?).to eq(true) user = create(:user, verified_at: nil) @@ -119,7 +119,7 @@ shared_examples_for "verifiable" do user = create(:user, verified_at: nil, confirmed_phone: nil) expect(user.unverified?).to eq(true) - user = create(:user, verified_at: Time.now, confirmed_phone: "123456789", residence_verified_at: Time.now) + user = create(:user, verified_at: Time.current, confirmed_phone: "123456789", residence_verified_at: Time.current) expect(user.unverified?).to eq(false) end @@ -146,13 +146,13 @@ shared_examples_for "verifiable" do end it "verification_letter_sent? is true only if user has letter_requested_at and letter_verification_code" do - user = create(:user, letter_requested_at: Time.now, letter_verification_code: "666") + user = create(:user, letter_requested_at: Time.current, letter_verification_code: "666") expect(user.verification_letter_sent?).to eq(true) user = create(:user, letter_requested_at: nil, letter_verification_code: "666") expect(user.verification_letter_sent?).to eq(false) - user = create(:user, letter_requested_at: Time.now, letter_verification_code: nil) + user = create(:user, letter_requested_at: Time.current, letter_verification_code: nil) expect(user.verification_letter_sent?).to eq(false) user = create(:user, letter_requested_at: nil, letter_verification_code: nil) @@ -160,4 +160,4 @@ shared_examples_for "verifiable" do end end -end \ No newline at end of file +end From a3b0fdb14d3b2a1eb1b8a984177ca493d3b3ed9c Mon Sep 17 00:00:00 2001 From: rgarcia Date: Fri, 25 Nov 2016 10:39:54 +0100 Subject: [PATCH 20/28] updates ruby version in configuration instructions --- README.md | 2 +- README_ES.md | 2 +- doc/en/dev_test_setup_osx.md | 2 +- doc/es/dev_test_setup_osx.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index b6c10b878..8c95f3648 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Frontend tools used include [SCSS](http://sass-lang.com/) over [Foundation](http **NOTE**: For more detailed instructions check the [docs](https://github.com/consul/consul/tree/master/doc/en/dev_test_setup.md) -Prerequisites: install git, Ruby 2.2.3, bundler gem, ghostscript and PostgreSQL (>=9.4). +Prerequisites: install git, Ruby 2.3.2, bundler gem, ghostscript and PostgreSQL (>=9.4). ``` git clone https://github.com/consul/consul.git diff --git a/README_ES.md b/README_ES.md index 6f0f413ec..a18b7d241 100644 --- a/README_ES.md +++ b/README_ES.md @@ -25,7 +25,7 @@ Las herramientas utilizadas para el frontend no están cerradas aún. Los estilo **NOTA**: para unas instrucciones más detalladas consulta la [documentación](https://github.com/consul/consul/tree/master/doc/es/dev_test_setup.md) -Prerequisitos: tener instalado git, Ruby 2.2.3, la gema `bundler`, ghostscript y PostgreSQL (9.4 o superior). +Prerequisitos: tener instalado git, Ruby 2.3.2, la gema `bundler`, ghostscript y PostgreSQL (9.4 o superior). ``` diff --git a/doc/en/dev_test_setup_osx.md b/doc/en/dev_test_setup_osx.md index 088082261..67845510f 100644 --- a/doc/en/dev_test_setup_osx.md +++ b/doc/en/dev_test_setup_osx.md @@ -16,7 +16,7 @@ You can download git from: [git-scm.com/download/mac](https://git-scm.com/downlo ## Ruby y rbenv -OS X already comes with a preinstalled Ruby version, but it's quite old and we need a newer one (2.2.3). One of the multiple ways of installing Ruby in OS X is through *rbenv*. The installation instructions are in its GitHub repository and are pretty straight-forward: +OS X already comes with a preinstalled Ruby version, but it's quite old and we need a newer one (2.3.2). One of the multiple ways of installing Ruby in OS X is through *rbenv*. The installation instructions are in its GitHub repository and are pretty straight-forward: [github.com/rbenv/rbenv](https://github.com/rbenv/rbenv) diff --git a/doc/es/dev_test_setup_osx.md b/doc/es/dev_test_setup_osx.md index 840f15976..01ad29a2b 100644 --- a/doc/es/dev_test_setup_osx.md +++ b/doc/es/dev_test_setup_osx.md @@ -20,7 +20,7 @@ OS X ya viene con una versión preinstalada de ruby, pero es bastante vieja y en [github.com/rbenv/rbenv](https://github.com/rbenv/rbenv) -Después instala la versión de Ruby 2.2.3 +Después instala la versión de Ruby 2.3.2 ## Bundler From a2fa65a5bc4bd65a9c4d0a4bcfda29233557e3b8 Mon Sep 17 00:00:00 2001 From: kikito Date: Fri, 25 Nov 2016 13:39:59 +0100 Subject: [PATCH 21/28] adds .rubocop.yml + .rubocop_todo.yml --- .rubocop.yml | 56 ++++ .rubocop_todo.yml | 838 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 894 insertions(+) create mode 100644 .rubocop.yml create mode 100644 .rubocop_todo.yml diff --git a/.rubocop.yml b/.rubocop.yml new file mode 100644 index 000000000..be2d522a4 --- /dev/null +++ b/.rubocop.yml @@ -0,0 +1,56 @@ +inherit_from: .rubocop_todo.yml + +AllCops: + Include: + - '**/Rakefile' + - '**/config.ru' + Exclude: + - 'db/**/*' + - 'config/**/*' + - 'script/**/*' + TargetRubyVersion: 2.3 + +Rails: + Enabled: true + +Documentation: + Enabled: false + +Metrics/LineLength: + Max: 140 + +Style/IndentationConsistency: + EnforcedStyle: rails + +Style/StringLiterals: + Enabled: false + +Style/FrozenStringLiteralComment: + Enabled: false + +Style/PercentLiteralDelimiters: + Enabled: false + +Style/EmptyLinesAroundClassBody: + Enabled: false + +Style/EmptyLinesAroundBlockBody: + Enabled: false + +Style/EmptyLinesAroundModuleBody: + Enabled: false + +Style/SpaceBeforeBlockBraces: + Enabled: false + +Style/SpaceInsideBrackets: + Enabled: false + +Style/SpaceInsideHashLiteralBraces: + Enabled: false + +Style/SpaceInsideBlockBraces: + Enabled: false + +Style/TrailingBlankLines: + Enabled: false diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml new file mode 100644 index 000000000..443782795 --- /dev/null +++ b/.rubocop_todo.yml @@ -0,0 +1,838 @@ +# This configuration was generated by +# `rubocop --auto-gen-config` +# on 2016-11-25 13:34:56 +0100 using RuboCop version 0.45.0. +# The point is for the user to remove these configuration records +# one by one as the offenses are removed from the code base. +# Note that changes in the inspected code, or installation of new +# versions of RuboCop, may require this file to be generated again. + +# Offense count: 3 +Lint/AmbiguousRegexpLiteral: + Exclude: + - 'app/helpers/verification_helper.rb' + - 'spec/features/verification/residence_spec.rb' + +# Offense count: 3 +# Configuration parameters: AllowSafeAssignment. +Lint/AssignmentInCondition: + Exclude: + - 'app/controllers/management/sessions_controller.rb' + - 'app/models/notification.rb' + - 'lib/capistrano/template.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: AlignWith, SupportedStyles. +# SupportedStyles: either, start_of_block, start_of_line +Lint/BlockAlignment: + Exclude: + - 'spec/features/tracks_spec.rb' + - 'spec/models/proposal_spec.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: AlignWith, SupportedStyles, AutoCorrect. +# SupportedStyles: start_of_line, def +Lint/DefEndAlignment: + Exclude: + - 'app/controllers/comments_controller.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: runtime_error, standard_error +Lint/InheritException: + Exclude: + - 'app/controllers/concerns/feature_flags.rb' + +# Offense count: 7 +Lint/NestedMethodDefinition: + Exclude: + - 'lib/acts_as_paranoid_aliases.rb' + +# Offense count: 13 +Lint/ParenthesesAsGroupedExpression: + Exclude: + - 'spec/features/admin/organizations_spec.rb' + - 'spec/features/debates_spec.rb' + - 'spec/features/proposals_spec.rb' + - 'spec/models/debate_spec.rb' + +# Offense count: 1 +Lint/UnderscorePrefixedVariableName: + Exclude: + - 'lib/manager_authenticator.rb' + +# Offense count: 4 +# Cop supports --auto-correct. +# Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments. +Lint/UnusedBlockArgument: + Exclude: + - 'app/controllers/admin/spending_proposals_controller.rb' + - 'app/models/ahoy/data_source.rb' + - 'spec/spec_helper.rb' + +# Offense count: 5 +# Cop supports --auto-correct. +# Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods. +Lint/UnusedMethodArgument: + Exclude: + - 'app/controllers/organizations/registrations_controller.rb' + - 'app/controllers/users/omniauth_callbacks_controller.rb' + - 'app/controllers/users/registrations_controller.rb' + - 'app/models/abilities/everyone.rb' + - 'app/models/abilities/valuator.rb' + +# Offense count: 135 +Lint/UselessAssignment: + Enabled: false + +# Offense count: 41 +Metrics/AbcSize: + Max: 44 + +# Offense count: 4 +# Configuration parameters: CountComments. +Metrics/ClassLength: + Max: 205 + +# Offense count: 5 +Metrics/CyclomaticComplexity: + Max: 8 + +# Offense count: 52 +# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives. +# URISchemes: http, https +Metrics/LineLength: + Max: 307 + +# Offense count: 28 +# Configuration parameters: CountComments. +Metrics/MethodLength: + Max: 38 + +# Offense count: 2 +# Configuration parameters: CountComments. +Metrics/ModuleLength: + Max: 193 + +# Offense count: 3 +Metrics/PerceivedComplexity: + Max: 11 + +# Offense count: 1 +# Cop supports --auto-correct. +Performance/RedundantBlockCall: + Exclude: + - 'app/mailers/mailer.rb' + +# Offense count: 4 +# Cop supports --auto-correct. +Performance/RedundantMatch: + Exclude: + - 'app/controllers/valuation/spending_proposals_controller.rb' + - 'app/helpers/embed_videos_helper.rb' + +# Offense count: 2 +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: strict, flexible +Rails/Date: + Exclude: + - 'app/controllers/concerns/commentable_actions.rb' + - 'app/models/direct_message.rb' + +# Offense count: 4 +# Cop supports --auto-correct. +# Configuration parameters: Whitelist. +# Whitelist: find_by_sql +Rails/DynamicFindBy: + Exclude: + - 'app/controllers/users/confirmations_controller.rb' + - 'app/controllers/users/registrations_controller.rb' + - 'spec/features/management/users_spec.rb' + +# Offense count: 4 +# Cop supports --auto-correct. +# Configuration parameters: Include. +# Include: app/models/**/*.rb +Rails/FindBy: + Exclude: + - 'app/models/setting.rb' + - 'app/models/verification/email.rb' + - 'app/models/verification/management/email.rb' + - 'app/models/verification/residence.rb' + +# Offense count: 24 +# Cop supports --auto-correct. +# Configuration parameters: Include. +# Include: spec/**/*, test/**/* +Rails/HttpPositionalArguments: + Exclude: + - 'spec/controllers/admin/api/stats_controller_spec.rb' + - 'spec/controllers/concerns/has_filters_spec.rb' + - 'spec/controllers/concerns/has_orders_spec.rb' + - 'spec/controllers/debates_controller_spec.rb' + - 'spec/controllers/management/sessions_controller_spec.rb' + - 'spec/controllers/pages_controller_spec.rb' + - 'spec/controllers/users/registrations_controller_spec.rb' + +# Offense count: 12 +Rails/OutputSafety: + Exclude: + - 'app/controllers/spending_proposals_controller.rb' + - 'app/helpers/application_helper.rb' + - 'app/helpers/text_with_links_helper.rb' + - 'app/helpers/users_helper.rb' + - 'app/helpers/valuation_helper.rb' + +# Offense count: 6 +# Cop supports --auto-correct. +Rails/PluralizationGrammar: + Exclude: + - 'spec/features/admin/banners_spec.rb' + - 'spec/features/debates_spec.rb' + - 'spec/features/proposals_spec.rb' + - 'spec/models/residence_spec.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: referer, referrer +Rails/RequestReferer: + Exclude: + - 'app/controllers/users/sessions_controller.rb' + +# Offense count: 11 +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: strict, flexible +Rails/TimeZone: + Exclude: + - 'lib/score_calculator.rb' + - 'spec/controllers/admin/api/stats_controller_spec.rb' + - 'spec/models/ahoy/data_source_spec.rb' + +# Offense count: 7 +# Cop supports --auto-correct. +# Configuration parameters: Include. +# Include: app/models/**/*.rb +Rails/Validation: + Exclude: + - 'app/models/comment.rb' + - 'app/models/spending_proposal.rb' + - 'app/models/verification/residence.rb' + - 'app/models/verification/sms.rb' + +# Offense count: 9 +Style/AccessorMethodName: + Exclude: + - 'app/controllers/application_controller.rb' + - 'app/controllers/concerns/commentable_actions.rb' + - 'app/controllers/management/proposals_controller.rb' + - 'app/controllers/management/spending_proposals_controller.rb' + - 'app/controllers/proposals_controller.rb' + +# Offense count: 30 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle, SupportedLastArgumentHashStyles. +# SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit +Style/AlignHash: + Exclude: + - 'spec/features/admin/banners_spec.rb' + +# Offense count: 21 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth. +# SupportedStyles: with_first_parameter, with_fixed_indentation +Style/AlignParameters: + Exclude: + - 'app/helpers/search_helper.rb' + - 'app/models/verification/management/email.rb' + - 'bin/rspec' + - 'bin/spring' + - 'spec/features/admin/spending_proposals_spec.rb' + - 'spec/features/spending_proposals_spec.rb' + - 'spec/features/valuation/spending_proposals_spec.rb' + - 'spec/features/verification/verified_user_spec.rb' + - 'spec/i18n_spec.rb' + - 'spec/models/user_spec.rb' + - 'spec/rails_helper.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: always, conditionals +Style/AndOr: + Exclude: + - 'app/helpers/embed_videos_helper.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, ProceduralMethods, FunctionalMethods, IgnoredMethods. +# SupportedStyles: line_count_based, semantic, braces_for_chaining +# ProceduralMethods: benchmark, bm, bmbm, create, each_with_object, measure, new, realtime, tap, with_object +# FunctionalMethods: let, let!, subject, watch +# IgnoredMethods: lambda, proc, it +Style/BlockDelimiters: + Exclude: + - 'spec/features/users_auth_spec.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +Style/BlockEndNewline: + Exclude: + - 'app/models/banner.rb' + - 'spec/features/users_auth_spec.rb' + +# Offense count: 19 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: braces, no_braces, context_dependent +Style/BracesAroundHashParameters: + Exclude: + - 'app/controllers/valuation/spending_proposals_controller.rb' + - 'app/models/concerns/searchable.rb' + - 'app/models/verification/residence.rb' + - 'lib/manager_authenticator.rb' + - 'spec/controllers/management/users_controller_spec.rb' + - 'spec/features/admin/spending_proposals_spec.rb' + - 'spec/lib/manager_authenticator_spec.rb' + - 'spec/models/residence_spec.rb' + - 'spec/models/user_spec.rb' + +# Offense count: 57 +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: nested, compact +Style/ClassAndModuleChildren: + Enabled: false + +# Offense count: 5 +Style/ClassVars: + Exclude: + - 'app/models/concerns/measurable.rb' + - 'app/models/organization.rb' + - 'app/models/user.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +Style/ClosingParenthesisIndentation: + Exclude: + - 'spec/rails_helper.rb' + +# Offense count: 4 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, SingleLineConditionsOnly. +# SupportedStyles: assign_to_condition, assign_inside_condition +Style/ConditionalAssignment: + Exclude: + - 'app/controllers/comments_controller.rb' + - 'app/controllers/management/spending_proposals_controller.rb' + - 'app/controllers/spending_proposals_controller.rb' + - 'app/controllers/verification/sms_controller.rb' + +# Offense count: 6 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: leading, trailing +Style/DotPosition: + Exclude: + - 'app/models/banner.rb' + - 'app/models/tag_cloud.rb' + - 'app/models/verification/management/managed_user.rb' + +# Offense count: 1 +Style/DoubleNegation: + Exclude: + - 'app/models/flag.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +Style/EmptyCaseCondition: + Exclude: + - 'app/models/concerns/verification.rb' + +# Offense count: 9 +# Cop supports --auto-correct. +Style/EmptyLines: + Exclude: + - 'app/models/concerns/search_cache.rb' + - 'app/models/notification.rb' + - 'spec/features/admin/spending_proposals_spec.rb' + - 'spec/features/admin/verifications_spec.rb' + - 'spec/features/debates_spec.rb' + - 'spec/features/registration_form_spec.rb' + - 'spec/features/users_auth_spec.rb' + - 'spec/features/verification/verified_user_spec.rb' + - 'spec/support/verifiable.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +Style/EmptyLinesAroundAccessModifier: + Exclude: + - 'app/controllers/users_controller.rb' + +# Offense count: 29 +# Cop supports --auto-correct. +# Configuration parameters: AllowForAlignment, ForceEqualSignAlignment. +Style/ExtraSpacing: + Enabled: false + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth. +# SupportedStyles: consistent, special_for_inner_method_call, special_for_inner_method_call_in_parentheses +Style/FirstParameterIndentation: + Exclude: + - 'app/controllers/users_controller.rb' + +# Offense count: 32 +# Configuration parameters: MinBodyLength. +Style/GuardClause: + Enabled: false + +# Offense count: 10 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols. +# SupportedStyles: ruby19, hash_rockets, no_mixed_keys, ruby19_no_mixed_keys +Style/HashSyntax: + Exclude: + - 'lib/sms_api.rb' + - 'spec/factories.rb' + +# Offense count: 6 +# Cop supports --auto-correct. +# Configuration parameters: MaxLineLength. +Style/IfUnlessModifier: + Exclude: + - 'app/controllers/annotations_controller.rb' + - 'app/controllers/verification/letter_controller.rb' + - 'app/controllers/welcome_controller.rb' + - 'app/helpers/embed_videos_helper.rb' + - 'app/models/proposal.rb' + - 'app/models/spending_proposal.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: SupportedStyles, IndentationWidth. +# SupportedStyles: special_inside_parentheses, consistent, align_brackets +Style/IndentArray: + EnforcedStyle: consistent + +# Offense count: 4 +# Cop supports --auto-correct. +# Configuration parameters: SupportedStyles, IndentationWidth. +# SupportedStyles: special_inside_parentheses, consistent, align_braces +Style/IndentHash: + EnforcedStyle: consistent + +# Offense count: 3 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: normal, rails +Style/IndentationConsistency: + Exclude: + - 'spec/features/tracks_spec.rb' + - 'spec/models/proposal_spec.rb' + +# Offense count: 11 +# Cop supports --auto-correct. +# Configuration parameters: Width. +Style/IndentationWidth: + Exclude: + - 'app/controllers/annotations_controller.rb' + - 'app/helpers/flags_helper.rb' + - 'app/mailers/devise_mailer.rb' + - 'app/mailers/mailer.rb' + - 'app/models/ahoy/data_source.rb' + - 'app/models/comment_notifier.rb' + - 'app/models/concerns/search_cache.rb' + - 'spec/features/comments/proposals_spec.rb' + - 'spec/features/moderation/users_spec.rb' + - 'spec/features/tracks_spec.rb' + - 'spec/features/verification/verified_user_spec.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: line_count_dependent, lambda, literal +Style/Lambda: + Exclude: + - 'app/models/banner.rb' + - 'app/models/direct_message.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +Style/MethodCallParentheses: + Exclude: + - 'app/controllers/management/document_verifications_controller.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: require_parentheses, require_no_parentheses, require_no_parentheses_except_multiline +Style/MethodDefParentheses: + Exclude: + - 'spec/helpers/comments_helper_spec.rb' + +# Offense count: 3 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: symmetrical, new_line, same_line +Style/MultilineArrayBraceLayout: + Exclude: + - 'app/controllers/valuation/spending_proposals_controller.rb' + - 'app/helpers/search_helper.rb' + +# Offense count: 1 +Style/MultilineBlockChain: + Exclude: + - 'app/controllers/valuation/spending_proposals_controller.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +Style/MultilineBlockLayout: + Exclude: + - 'app/models/banner.rb' + - 'spec/features/users_auth_spec.rb' + +# Offense count: 6 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: symmetrical, new_line, same_line +Style/MultilineHashBraceLayout: + Exclude: + - 'app/controllers/valuation/spending_proposals_controller.rb' + - 'app/models/debate.rb' + - 'app/models/proposal.rb' + - 'app/models/spending_proposal.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +Style/MultilineIfThen: + Exclude: + - 'app/controllers/management/users_controller.rb' + - 'lib/census_api.rb' + +# Offense count: 6 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: symmetrical, new_line, same_line +Style/MultilineMethodCallBraceLayout: + Exclude: + - 'app/controllers/users_controller.rb' + - 'app/models/comment.rb' + - 'app/models/organization.rb' + - 'app/models/user.rb' + - 'spec/rails_helper.rb' + +# Offense count: 33 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth. +# SupportedStyles: aligned, indented, indented_relative_to_receiver +Style/MultilineMethodCallIndentation: + Exclude: + - 'app/models/banner.rb' + - 'app/models/tag_cloud.rb' + - 'app/models/verification/management/managed_user.rb' + - 'spec/models/comment_spec.rb' + - 'spec/models/debate_spec.rb' + - 'spec/models/proposal_spec.rb' + - 'spec/models/user_spec.rb' + +# Offense count: 5 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth. +# SupportedStyles: aligned, indented +Style/MultilineOperationIndentation: + Exclude: + - 'app/helpers/users_helper.rb' + - 'app/helpers/valuation_helper.rb' + - 'app/models/verification/letter.rb' + +# Offense count: 5 +# Cop supports --auto-correct. +Style/MutableConstant: + Exclude: + - 'app/models/activity.rb' + - 'app/models/proposal.rb' + - 'lib/tag_sanitizer.rb' + - 'lib/wysiwyg_sanitizer.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +Style/NegatedIf: + Exclude: + - 'spec/spec_helper.rb' + +# Offense count: 17 +# Cop supports --auto-correct. +Style/NestedParenthesizedCalls: + Exclude: + - 'spec/features/debates_spec.rb' + - 'spec/features/valuation/spending_proposals_spec.rb' + - 'spec/helpers/settings_helper_spec.rb' + - 'spec/helpers/verification_helper_spec.rb' + +# Offense count: 12 +# Cop supports --auto-correct. +Style/NumericLiterals: + MinDigits: 9 + +# Offense count: 19 +# Cop supports --auto-correct. +# Configuration parameters: AutoCorrect, EnforcedStyle, SupportedStyles. +# SupportedStyles: predicate, comparison +Style/NumericPredicate: + Exclude: + - 'spec/**/*' + - 'app/controllers/users_controller.rb' + - 'app/controllers/valuation/spending_proposals_controller.rb' + - 'app/helpers/banners_helper.rb' + - 'app/helpers/debates_helper.rb' + - 'app/helpers/votes_helper.rb' + - 'app/models/concerns/conflictable.rb' + - 'app/models/concerns/taggable.rb' + - 'app/models/concerns/verification.rb' + - 'app/models/debate.rb' + - 'app/models/lock.rb' + - 'app/models/user.rb' + - 'app/models/verification/management/email.rb' + - 'lib/score_calculator.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +Style/ParallelAssignment: + Exclude: + - 'lib/active_model/dates.rb' + - 'spec/support/common_actions.rb' + +# Offense count: 3 +# Cop supports --auto-correct. +# Configuration parameters: AllowSafeAssignment. +Style/ParenthesesAroundCondition: + Exclude: + - 'app/controllers/proposals_controller.rb' + - 'app/models/debate.rb' + - 'app/models/proposal.rb' + +# Offense count: 6 +# Configuration parameters: NamePrefix, NamePrefixBlacklist, NameWhitelist. +# NamePrefix: is_, has_, have_ +# NamePrefixBlacklist: is_, has_, have_ +# NameWhitelist: is_a? +Style/PredicateName: + Exclude: + - 'spec/**/*' + - 'app/controllers/concerns/has_filters.rb' + - 'app/controllers/concerns/has_orders.rb' + - 'app/helpers/banners_helper.rb' + - 'app/helpers/debates_helper.rb' + - 'app/models/user.rb' + - 'lib/census_api.rb' + +# Offense count: 3 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: compact, exploded +Style/RaiseArgs: + Exclude: + - 'app/controllers/management/base_controller.rb' + - 'app/controllers/users/omniauth_callbacks_controller.rb' + - 'app/controllers/valuation/spending_proposals_controller.rb' + +# Offense count: 16 +# Cop supports --auto-correct. +Style/RedundantParentheses: + Exclude: + - 'app/controllers/admin/settings_controller.rb' + - 'app/helpers/proposals_helper.rb' + - 'spec/features/admin/organizations_spec.rb' + - 'spec/features/debates_spec.rb' + - 'spec/features/proposals_spec.rb' + - 'spec/models/debate_spec.rb' + +# Offense count: 5 +# Cop supports --auto-correct. +# Configuration parameters: AllowMultipleReturnValues. +Style/RedundantReturn: + Exclude: + - 'app/models/ahoy/data_source.rb' + - 'app/models/verification/management/document.rb' + - 'lib/capistrano/template.rb' + - 'lib/census_api.rb' + +# Offense count: 49 +# Cop supports --auto-correct. +Style/RedundantSelf: + Enabled: false + +# Offense count: 3 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, AllowInnerSlashes. +# SupportedStyles: slashes, percent_r, mixed +Style/RegexpLiteral: + Exclude: + - 'app/helpers/embed_videos_helper.rb' + - 'spec/customization_engine_spec.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +Style/RescueModifier: + Exclude: + - 'app/controllers/concerns/commentable_actions.rb' + - 'app/controllers/verification/sms_controller.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +Style/SpaceAfterColon: + Exclude: + - 'spec/models/user_spec.rb' + +# Offense count: 14 +# Cop supports --auto-correct. +Style/SpaceAfterComma: + Exclude: + - 'app/models/ahoy/data_source.rb' + - 'app/models/banner.rb' + - 'app/models/concerns/search_cache.rb' + - 'app/models/concerns/taggable.rb' + - 'app/models/spending_proposal.rb' + - 'app/models/user.rb' + - 'spec/features/valuation/spending_proposals_spec.rb' + - 'spec/lib/census_api_spec.rb' + - 'spec/models/abilities/moderator_spec.rb' + - 'spec/models/verification/management/email_spec.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +Style/SpaceAfterNot: + Exclude: + - 'app/models/flag.rb' + +# Offense count: 20 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: space, no_space +Style/SpaceAroundEqualsInParameterDefault: + Exclude: + - 'app/helpers/cache_keys_helper.rb' + - 'app/helpers/proposals_helper.rb' + - 'app/helpers/spending_proposals_helper.rb' + - 'app/helpers/stats_helper.rb' + - 'app/helpers/tracks_helper.rb' + - 'app/helpers/valuation_helper.rb' + - 'app/mailers/devise_mailer.rb' + - 'app/models/comment.rb' + - 'app/models/tag_cloud.rb' + - 'app/models/verification/residence.rb' + - 'lib/acts_as_paranoid_aliases.rb' + - 'lib/capistrano/template.rb' + - 'lib/census_api.rb' + - 'lib/manager_authenticator.rb' + - 'spec/support/common_actions.rb' + +# Offense count: 66 +# Cop supports --auto-correct. +# Configuration parameters: AllowForAlignment. +Style/SpaceAroundOperators: + Enabled: false + +# Offense count: 6 +# Cop supports --auto-correct. +Style/SpaceBeforeComma: + Exclude: + - 'app/models/proposal.rb' + - 'spec/controllers/management/sessions_controller_spec.rb' + - 'spec/controllers/management/users_controller_spec.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: AllowForAlignment. +Style/SpaceBeforeFirstArg: + Exclude: + - 'spec/factories.rb' + +# Offense count: 9 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: require_no_space, require_space +Style/SpaceInLambdaLiteral: + Exclude: + - 'app/models/concerns/filterable.rb' + - 'app/models/spending_proposal.rb' + - 'app/models/user.rb' + - 'app/models/verified_user.rb' + +# Offense count: 8 +# Cop supports --auto-correct. +Style/SpaceInsideParens: + Exclude: + - 'app/models/user.rb' + - 'lib/manager_authenticator.rb' + - 'spec/features/proposals_spec.rb' + - 'spec/models/abilities/moderator_spec.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +Style/SpaceInsidePercentLiteralDelimiters: + Exclude: + - 'app/models/activity.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: single_quotes, double_quotes +Style/StringLiteralsInInterpolation: + Exclude: + - 'app/controllers/stats_controller.rb' + - 'app/models/proposal.rb' + +# Offense count: 9 +# Cop supports --auto-correct. +# Configuration parameters: IgnoredMethods. +# IgnoredMethods: respond_to, define_method +Style/SymbolProc: + Exclude: + - 'app/controllers/admin/settings_controller.rb' + - 'app/controllers/notifications_controller.rb' + - 'app/controllers/organizations/registrations_controller.rb' + - 'lib/manager_authenticator.rb' + - 'spec/factories.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +Style/TrailingWhitespace: + Exclude: + - 'app/controllers/admin/api/stats_controller.rb' + +# Offense count: 31 +# Cop supports --auto-correct. +Style/UnneededInterpolation: + Exclude: + - 'app/controllers/users/omniauth_callbacks_controller.rb' + - 'spec/factories.rb' + - 'spec/features/campaigns_spec.rb' + - 'spec/features/management/managed_users_spec.rb' + - 'spec/features/management/proposals_spec.rb' + - 'spec/features/management/spending_proposals_spec.rb' + - 'spec/models/residence_spec.rb' + - 'spec/models/spending_proposal_spec.rb' + +# Offense count: 13 +# Configuration parameters: SupportedStyles. +# SupportedStyles: snake_case, normalcase, non_integer +Style/VariableNumber: + EnforcedStyle: normalcase + +# Offense count: 9 +# Cop supports --auto-correct. +# Configuration parameters: SupportedStyles, WordRegex. +# SupportedStyles: percent, brackets +Style/WordArray: + EnforcedStyle: percent + MinSize: 3 + +# Offense count: 1 +# Cop supports --auto-correct. +Style/ZeroLengthPredicate: + Exclude: + - 'app/models/concerns/verification.rb' From 9f4688a08a5fac7efdf8db81ca5e294e557d657d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Miedes=20Garc=C3=A9s?= Date: Tue, 29 Nov 2016 23:45:21 +0100 Subject: [PATCH 22/28] Styled docs with markdown syntax --- CUSTOMIZE_ES.md | 65 +++++++++++++++++++++++++------------------------ 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/CUSTOMIZE_ES.md b/CUSTOMIZE_ES.md index f7af01649..09fdfe62c 100644 --- a/CUSTOMIZE_ES.md +++ b/CUSTOMIZE_ES.md @@ -1,6 +1,6 @@ # Personalización -Puedes modificar consul y ponerle tu propia imagen, para esto debes primero hacer un fork de https://github.com/consul/consul creando un repositorio nuevo en Github. Puedes usar otro servicio como Gitlab, pero no te olvides de poner el enlace en el footer a tu repositorio en cumplimiento con la licencia de este proyecto (GPL Affero 3). +Puedes modificar consul y ponerle tu propia imagen, para esto debes primero hacer un fork de [https://github.com/consul/consul](https://github.com/consul/consul) creando un repositorio nuevo en Github. Puedes usar otro servicio como Gitlab, pero no te olvides de poner el enlace en el footer a tu repositorio en cumplimiento con la licencia de este proyecto (GPL Affero 3). Hemos creado una estructura específica donde puedes sobreescribir y personalizar la aplicación para que puedas actualizar sin que tengas problemas al hacer merge y se sobreescriban por error tus cambios. Intentamos que Consul sea una aplicación Ruby on Rails lo más plain vanilla posible para facilitar el acceso de nuevas desarrolladoras. @@ -8,31 +8,32 @@ Hemos creado una estructura específica donde puedes sobreescribir y personaliza Para adaptarlo puedes hacerlo a través de los directorios que están en custom dentro de: -* config/locales/custom/ -* app/assets/images/custom/ -* app/views/custom/ -* app/controllers/custom/ -* app/models/custom/ +* `config/locales/custom/` +* `app/assets/images/custom/` +* `app/views/custom/` +* `app/controllers/custom/` +* `app/models/custom/` Aparte de estos directorios también cuentas con ciertos ficheros para: -* app/assets/stylesheets/custom.css -* app/assets/javascripts/custom.js -* Gemfile_custom -* config/application.custom.rb +* `app/assets/stylesheets/custom.css` +* `app/assets/javascripts/custom.js` +* `Gemfile_custom` +* `config/application.custom.rb` ### Internacionalización -Si quieres modificar algún texto de la web deberías encontrarlos en los ficheros formato YML disponibles en *config/locales/*. Puedes leer la [guía de internacionalización](http://guides.rubyonrails.org/i18n.html) de Ruby on Rails sobre como funciona este sistema. +Si quieres modificar algún texto de la web deberías encontrarlos en los ficheros formato YML disponibles en `config/locales/`. Puedes leer la [guía de internacionalización](http://guides.rubyonrails.org/i18n.html) de Ruby on Rails sobre como funciona este sistema. -Las adaptaciones los debes poner en el directorio *config/locales/custom/*, recomendamos poner solo los textos que quieras personalizar. Por ejemplo si quieres personalizar el texto de "Ayuntamiento de Madrid, 2016" que se encuentra en el footer en todas las páginas, primero debemos ubicar en que plantilla se encuentra (app/views/layouts/_footer.html.erb), vemos que en el código pone lo siguiente: -``` +Las adaptaciones los debes poner en el directorio `config/locales/custom/`, recomendamos poner solo los textos que quieras personalizar. Por ejemplo si quieres personalizar el texto de "Ayuntamiento de Madrid, 2016" que se encuentra en el footer en todas las páginas, primero debemos ubicar en que plantilla se encuentra (`app/views/layouts/_footer.html.erb`), vemos que en el código pone lo siguiente: + +```ruby <%= t("layouts.footer.copyright", year: Time.current.year) %> ``` -Y que en el fichero config/locales/es.yml sigue esta estructura (solo ponemos lo relevante para este caso): +Y que en el fichero `config/locales/es.yml` sigue esta estructura (solo ponemos lo relevante para este caso): -``` +```yml es: layouts: footer: @@ -40,11 +41,11 @@ es: ``` -Si creamos el fichero config/locales/custom/es.yml y modificamos "Ayuntamiento de Madrid" por el nombre de la organización que se este haciendo la modificación. Recomendamos directamente copiar los ficheros config/locales/ e ir revisando y corrigiendo las que querramos, borrando las líneas que no querramos traducir. +Si creamos el fichero `config/locales/custom/es.yml` y modificamos "Ayuntamiento de Madrid" por el nombre de la organización que se este haciendo la modificación. Recomendamos directamente copiar los ficheros `config/locales/` e ir revisando y corrigiendo las que querramos, borrando las líneas que no querramos traducir. ### Imágenes -Si quieres sobreescribir alguna imagen debes primero fijarte el nombre que tiene, por defecto se encuentran en *app/assets/images*. Por ejemplo si quieres modificar *app/assets/images/logo_header.png* debes poner otra con ese mismo nombre en el directorio app/assets/images/custom. Los iconos que seguramente quieras modificar son: +Si quieres sobreescribir alguna imagen debes primero fijarte el nombre que tiene, por defecto se encuentran en `app/assets/images`. Por ejemplo si quieres modificar `app/assets/images/logo_header.png` debes poner otra con ese mismo nombre en el directorio `app/assets/images/custom`. Los iconos que seguramente quieras modificar son: * apple-touch-icon-200.png * icon_home.png @@ -55,13 +56,13 @@ Si quieres sobreescribir alguna imagen debes primero fijarte el nombre que tiene ### Vistas (HTML) -Si quieres modificar el HTML de alguna página puedes hacerlo copiando el HTML de *app/views* y poniendolo en *app/views/custom* respetando los subdirectorios que encuentres ahí. Por ejemplo si quieres modificar *app/views/pages/conditions.html* debes copiarlo y modificarla en app/views/custom/pages/conditions.html.erb +Si quieres modificar el HTML de alguna página puedes hacerlo copiando el HTML de `app/views` y poniendolo en `app/views/custom` respetando los subdirectorios que encuentres ahí. Por ejemplo si quieres modificar `app/views/pages/conditions.html` debes copiarlo y modificarla en `app/views/custom/pages/conditions.html.erb` ### CSS -Si quieres cambiar algun selector CSS (de las hojas de estilo) puedes hacerlo en el fichero *app/assets/stylesheets/custom.scss*. Por ejemplo si quieres cambiar el color del header (.top-links) puedes hacerlo agregando: +Si quieres cambiar algun selector CSS (de las hojas de estilo) puedes hacerlo en el fichero `app/assets/stylesheets/custom.scss`. Por ejemplo si quieres cambiar el color del header (`.top-links`) puedes hacerlo agregando: -``` +```css .top-links { background: red; } @@ -71,9 +72,9 @@ Usamos un preprocesador de CSS, [SASS, con la sintaxis SCSS](http://sass-lang.co ### Javascript -Si quieres agregar código Javascript puedes hacerlo en el fichero *app/assets/javascripts/custom.js". Por ejemplo si quieres que salga una alerta puedes poner lo siguiente: +Si quieres agregar código Javascript puedes hacerlo en el fichero `app/assets/javascripts/custom.js`. Por ejemplo si quieres que salga una alerta puedes poner lo siguiente: -``` +```js $(function(){ alert('foobar'); }); @@ -81,11 +82,11 @@ $(function(){ ### Modelos -Si quieres agregar modelos nuevos, o modificar o agregar métodos a uno ya existente puedes hacerlo en *app/models/custom*. En el caso de los modelos antiguos debes primero hacer un require de la dependencia. +Si quieres agregar modelos nuevos, o modificar o agregar métodos a uno ya existente puedes hacerlo en `app/models/custom`. En el caso de los modelos antiguos debes primero hacer un require de la dependencia. -Por ejemplo en el caso del Ayuntamiento de Madrid se requiere comprobar que el código postal durante la verificación sigue un cierto formato (empieza con 280). Esto se realiza creando este fichero en *app/models/custom/verification/residence.rb*: +Por ejemplo en el caso del Ayuntamiento de Madrid se requiere comprobar que el código postal durante la verificación sigue un cierto formato (empieza con 280). Esto se realiza creando este fichero en `app/models/custom/verification/residence.rb`: -``` +```ruby require_dependency Rails.root.join('app', 'models', 'verification', 'residence').to_s class Verification::Residence @@ -116,10 +117,10 @@ class Verification::Residence end ``` -No olvides poner los tests relevantes en *spec/models/custom*, siguiendo con el ejemplo pondriamos lo siguiente en *spec/models/custom/residence_spec.rb*: +No olvides poner los tests relevantes en `spec/models/custom`, siguiendo con el ejemplo pondriamos lo siguiente en `spec/models/custom/residence_spec.rb`: -``` +```ruby require 'rails_helper' describe Verification::Residence do @@ -162,20 +163,20 @@ TODO ### Gemfile -Para agregar librerías (gems) nuevas puedes hacerlo en el fichero *Gemfile_custom*. Por ejemplo si quieres agregar la gema [rails-footnotes](https://github.com/josevalim/rails-footnotes) debes hacerlo agregandole +Para agregar librerías (gems) nuevas puedes hacerlo en el fichero `Gemfile_custom`. Por ejemplo si quieres agregar la gema [rails-footnotes](https://github.com/josevalim/rails-footnotes) debes hacerlo agregandole -``` +```ruby gem 'rails-footnotes', '~> 4.0' ``` -Y siguiendo el flujo clásico en Ruby on Rails (bundle install y seguir con los pasos específicos de la gema en la documentación) +Y siguiendo el flujo clásico en Ruby on Rails (`bundle install` y seguir con los pasos específicos de la gema en la documentación) ### application.rb -Cuando necesites extender o modificar el *config/application.rb* puedes hacerlo a través del fichero *config/application_custom.rb*. Por ejemplo si quieres modificar el idioma por defecto al inglés pondrías lo siguiente: +Cuando necesites extender o modificar el `config/application.rb` puedes hacerlo a través del fichero `config/application_custom.rb`. Por ejemplo si quieres modificar el idioma por defecto al inglés pondrías lo siguiente: -``` +```ruby module Consul class Application < Rails::Application config.i18n.default_locale = :en From a175b5bc9bb6bccaf2ca83a4cd4221f54ac8cd74 Mon Sep 17 00:00:00 2001 From: Julian Herrero Date: Fri, 2 Dec 2016 11:26:46 +0100 Subject: [PATCH 23/28] add gem sitemap_generator --- Gemfile | 1 + Gemfile.lock | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/Gemfile b/Gemfile index 1ce218638..b50540b5f 100644 --- a/Gemfile +++ b/Gemfile @@ -55,6 +55,7 @@ gem 'devise-async' gem 'newrelic_rpm', '~> 3.17.0.325' gem 'whenever', require: false gem 'pg_search' +gem 'sitemap_generator' gem 'ahoy_matey', '~> 1.4.2' gem 'groupdate', '~> 3.1.0' # group temporary data diff --git a/Gemfile.lock b/Gemfile.lock index 50ab5bb9d..d787b4a81 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -381,6 +381,8 @@ GEM json (>= 1.8, < 3) simplecov-html (~> 0.10.0) simplecov-html (0.10.0) + sitemap_generator (5.2.0) + builder (~> 3.0) social-share-button (0.3.1) coffee-rails sass-rails @@ -511,6 +513,7 @@ DEPENDENCIES rvm1-capistrano3 sass-rails (~> 5.0, >= 5.0.4) savon + sitemap_generator social-share-button spring spring-commands-rspec @@ -522,3 +525,6 @@ DEPENDENCIES unicorn (~> 5.1.0) web-console (= 3.3.0) whenever + +BUNDLED WITH + 1.13.6 From bb61d73c04998ba0fefee35bc2f924ff7e16a10d Mon Sep 17 00:00:00 2001 From: Julian Herrero Date: Fri, 2 Dec 2016 11:28:39 +0100 Subject: [PATCH 24/28] add sitemap generator --- config/sitemap.rb | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 config/sitemap.rb diff --git a/config/sitemap.rb b/config/sitemap.rb new file mode 100644 index 000000000..73990620c --- /dev/null +++ b/config/sitemap.rb @@ -0,0 +1,30 @@ +# default host +SitemapGenerator::Sitemap.default_host = "https://decide.madrid.es" + +# sitemap generator +SitemapGenerator::Sitemap.create do + pages = Dir.entries(File.join(Rails.root,"app","views","pages")) + pages.each do |page| + page_name = page.split(".").first + add page_name if page_name.present? + end + + add "help_translate" + + add debates_path, priority: 0.7, changefreq: "daily" + Debate.find_each do |debate| + add debate_path(debate), lastmod: debate.updated_at + end + + add proposals_path, priority: 0.7, changefreq: "daily" + Proposal.find_each do |proposal| + add proposal_path(proposal), lastmod: proposal.updated_at + end + + add proposal_ballots_path + + add spending_proposals_path, priority: 0.7, changefreq: "daily" + SpendingProposal.find_each do |spending_proposal| + add spending_proposal_path(spending_proposal), lastmod: spending_proposal.updated_at + end +end From 39401656424bf9f1d5e2ca9ef7405fb3e818b971 Mon Sep 17 00:00:00 2001 From: Julian Herrero Date: Fri, 2 Dec 2016 11:29:35 +0100 Subject: [PATCH 25/28] don't compress the sitemap --- config/sitemap.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/config/sitemap.rb b/config/sitemap.rb index 73990620c..9e60f483f 100644 --- a/config/sitemap.rb +++ b/config/sitemap.rb @@ -1,3 +1,9 @@ +# not use compression +class SitemapGenerator::FileAdapter + def gzip(stream, data); stream.write(data); stream.close end +end +SitemapGenerator::Sitemap.namer = SitemapGenerator::SimpleNamer.new(:sitemap, extension: '.xml') + # default host SitemapGenerator::Sitemap.default_host = "https://decide.madrid.es" From fec84c47103d56e8b41d7fc8c9151b3a6562d0a6 Mon Sep 17 00:00:00 2001 From: Julian Herrero Date: Fri, 2 Dec 2016 11:30:12 +0100 Subject: [PATCH 26/28] include public/sitemap to gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index f4b9c99fb..35f5651a4 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,5 @@ # Mac finder artifacts .DS_Store .ruby-gemset + +public/sitemap.xml \ No newline at end of file From 0c09d1016c06504bcb0670a9e81181b6eb54ac8d Mon Sep 17 00:00:00 2001 From: Julian Herrero Date: Fri, 2 Dec 2016 11:30:57 +0100 Subject: [PATCH 27/28] generate a new sitemap everyday at 5:00am --- config/schedule.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/config/schedule.rb b/config/schedule.rb index 308cdc69c..f4c03fd61 100644 --- a/config/schedule.rb +++ b/config/schedule.rb @@ -22,3 +22,7 @@ every 1.minute do command "date > ~/cron-test.txt" end + +every 1.day, at: '5:00 am' do + rake "-s sitemap:refresh" +end From 9a2b049ec88626aa0a91a6f0a2346b2eee5c7e50 Mon Sep 17 00:00:00 2001 From: Julian Herrero Date: Sat, 3 Dec 2016 12:19:58 +0100 Subject: [PATCH 28/28] take default host from settings --- config/sitemap.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/sitemap.rb b/config/sitemap.rb index 9e60f483f..11ec9fb09 100644 --- a/config/sitemap.rb +++ b/config/sitemap.rb @@ -5,7 +5,7 @@ end SitemapGenerator::Sitemap.namer = SitemapGenerator::SimpleNamer.new(:sitemap, extension: '.xml') # default host -SitemapGenerator::Sitemap.default_host = "https://decide.madrid.es" +SitemapGenerator::Sitemap.default_host = Setting["url"] # sitemap generator SitemapGenerator::Sitemap.create do