Merge pull request #1094 from Br3nda/bw/useless-assignments

Useless assignments fixed, and rails 4 stuff.
This commit is contained in:
Shiny
2016-12-05 10:06:03 +13:00
committed by GitHub
44 changed files with 142 additions and 446 deletions

View File

@@ -8,6 +8,9 @@ AllCops:
- 'db/schema.rb'
- 'vendor/**/*'
Rails:
Enabled: true
Style/FileName:
Exclude:
- 'Gemfile'
@@ -66,3 +69,10 @@ Style/Documentation:
Style/FrozenStringLiteralComment:
Enabled: false
# Configuration parameters: Include.
# Include: app/**/*.rb, config/**/*.rb, db/**/*.rb, lib/**/*.rb
Rails/Output:
Exclude:
- 'config/unicorn.rb'
- 'db/seeds.rb'

View File

@@ -69,28 +69,6 @@ Lint/UnusedMethodArgument:
- 'app/validators/approved_validator.rb'
- 'spec/views/plantings/show.html.haml_spec.rb'
# Offense count: 52
Lint/UselessAssignment:
Exclude:
- 'app/controllers/crops_controller.rb'
- 'app/models/crop.rb'
- 'app/models/member.rb'
- 'config.rb'
- 'config/compass.rb'
- 'config/setup_load_paths.rb'
- 'db/seeds.rb'
- 'lib/tasks/growstuff.rake'
- 'spec/controllers/admin/orders_controller_spec.rb'
- 'spec/features/signin_spec.rb'
- 'spec/features/unsubscribing_spec.rb'
- 'spec/helpers/gardens_helper_spec.rb'
- 'spec/helpers/notifications_helper_spec.rb'
- 'spec/helpers/seeds_helper_spec.rb'
- 'spec/models/crop_spec.rb'
- 'spec/models/garden_spec.rb'
- 'spec/models/member_spec.rb'
- 'spec/support/controller_macros.rb'
# Offense count: 5
Lint/Void:
Exclude:
@@ -108,33 +86,6 @@ Performance/StringReplacement:
- 'app/models/seed.rb'
- 'spec/rails_helper.rb'
# Offense count: 21
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles, Include.
# SupportedStyles: action, filter
# Include: app/controllers/**/*.rb
Rails/ActionFilter:
Exclude:
- 'app/controllers/account_types_controller.rb'
- 'app/controllers/accounts_controller.rb'
- 'app/controllers/alternate_names_controller.rb'
- 'app/controllers/application_controller.rb'
- 'app/controllers/authentications_controller.rb'
- 'app/controllers/comments_controller.rb'
- 'app/controllers/crops_controller.rb'
- 'app/controllers/follows_controller.rb'
- 'app/controllers/gardens_controller.rb'
- 'app/controllers/harvests_controller.rb'
- 'app/controllers/notifications_controller.rb'
- 'app/controllers/order_items_controller.rb'
- 'app/controllers/orders_controller.rb'
- 'app/controllers/plantings_controller.rb'
- 'app/controllers/posts_controller.rb'
- 'app/controllers/products_controller.rb'
- 'app/controllers/roles_controller.rb'
- 'app/controllers/scientific_names_controller.rb'
- 'app/controllers/seeds_controller.rb'
# Offense count: 10
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: strict, flexible
@@ -149,39 +100,6 @@ Rails/Date:
- 'spec/features/plantings/planting_a_crop_spec.rb'
- 'spec/features/shared_examples/append_date.rb'
# Offense count: 42
# Cop supports --auto-correct.
# Configuration parameters: Whitelist.
# Whitelist: find_by_sql
Rails/DynamicFindBy:
Exclude:
- 'app/controllers/alternate_names_controller.rb'
- 'app/controllers/comments_controller.rb'
- 'app/controllers/gardens_controller.rb'
- 'app/controllers/harvests_controller.rb'
- 'app/controllers/notifications_controller.rb'
- 'app/controllers/plantings_controller.rb'
- 'app/controllers/posts_controller.rb'
- 'app/controllers/scientific_names_controller.rb'
- 'app/controllers/seeds_controller.rb'
- 'app/models/crop.rb'
- 'app/models/member.rb'
- 'app/models/order.rb'
- 'db/seeds.rb'
- 'lib/tasks/growstuff.rake'
- 'spec/controllers/roles_controller_spec.rb'
- 'spec/models/crop_spec.rb'
- 'spec/models/scientific_name_spec.rb'
# Offense count: 7
# Cop supports --auto-correct.
# Configuration parameters: Include.
# Include: app/models/**/*.rb
Rails/FindBy:
Exclude:
- 'app/models/member.rb'
- 'app/models/post.rb'
# Offense count: 11
# Configuration parameters: Include.
# Include: app/models/**/*.rb
@@ -197,36 +115,6 @@ Rails/HasAndBelongsToMany:
- 'app/models/product.rb'
- 'app/models/role.rb'
# Offense count: 89
# Cop supports --auto-correct.
# Configuration parameters: Include.
# Include: spec/**/*, test/**/*
Rails/HttpPositionalArguments:
Exclude:
- 'spec/controllers/admin/orders_controller_spec.rb'
- 'spec/controllers/comments_controller_spec.rb'
- 'spec/controllers/crops_controller_spec.rb'
- 'spec/controllers/harvests_controller_spec.rb'
- 'spec/controllers/member_controller_spec.rb'
- 'spec/controllers/notifications_controller_spec.rb'
- 'spec/controllers/order_items_controller_spec.rb'
- 'spec/controllers/orders_controller_spec.rb'
- 'spec/controllers/places_controller_spec.rb'
- 'spec/controllers/plantings_controller_spec.rb'
- 'spec/controllers/posts_controller_spec.rb'
- 'spec/controllers/roles_controller_spec.rb'
- 'spec/controllers/scientific_names_controller_spec.rb'
- 'spec/controllers/seeds_controller_spec.rb'
- 'spec/controllers/shop_controller_spec.rb'
# Offense count: 15
# Configuration parameters: Include.
# Include: app/**/*.rb, config/**/*.rb, db/**/*.rb, lib/**/*.rb
Rails/Output:
Exclude:
- 'config/unicorn.rb'
- 'db/seeds.rb'
# Offense count: 3
Rails/OutputSafety:
Exclude:
@@ -234,21 +122,6 @@ Rails/OutputSafety:
- 'app/helpers/auto_suggest_helper.rb'
- 'app/helpers/gardens_helper.rb'
# Offense count: 2
# Cop supports --auto-correct.
Rails/PluralizationGrammar:
Exclude:
- 'spec/features/plantings/planting_a_crop_spec.rb'
- 'spec/models/member_spec.rb'
# Offense count: 1
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: referer, referrer
Rails/RequestReferer:
Exclude:
- 'app/controllers/application_controller.rb'
# Offense count: 9
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: strict, flexible
@@ -402,188 +275,6 @@ Style/DefWithParentheses:
Exclude:
- 'spec/views/posts/_single.html.haml_spec.rb'
# Offense count: 178
Style/Documentation:
Exclude:
- 'spec/**/*'
- 'test/**/*'
- 'app/controllers/account_types_controller.rb'
- 'app/controllers/accounts_controller.rb'
- 'app/controllers/admin/orders_controller.rb'
- 'app/controllers/admin_controller.rb'
- 'app/controllers/alternate_names_controller.rb'
- 'app/controllers/application_controller.rb'
- 'app/controllers/authentications_controller.rb'
- 'app/controllers/comments_controller.rb'
- 'app/controllers/crops_controller.rb'
- 'app/controllers/follows_controller.rb'
- 'app/controllers/forums_controller.rb'
- 'app/controllers/gardens_controller.rb'
- 'app/controllers/harvests_controller.rb'
- 'app/controllers/home_controller.rb'
- 'app/controllers/members_controller.rb'
- 'app/controllers/notifications_controller.rb'
- 'app/controllers/order_items_controller.rb'
- 'app/controllers/orders_controller.rb'
- 'app/controllers/pages_controller.rb'
- 'app/controllers/passwords_controller.rb'
- 'app/controllers/photos_controller.rb'
- 'app/controllers/places_controller.rb'
- 'app/controllers/plant_parts_controller.rb'
- 'app/controllers/plantings_controller.rb'
- 'app/controllers/posts_controller.rb'
- 'app/controllers/products_controller.rb'
- 'app/controllers/registrations_controller.rb'
- 'app/controllers/robots_controller.rb'
- 'app/controllers/roles_controller.rb'
- 'app/controllers/scientific_names_controller.rb'
- 'app/controllers/seeds_controller.rb'
- 'app/controllers/sessions_controller.rb'
- 'app/controllers/shop_controller.rb'
- 'app/helpers/application_helper.rb'
- 'app/helpers/auto_suggest_helper.rb'
- 'app/helpers/crops_helper.rb'
- 'app/helpers/gardens_helper.rb'
- 'app/helpers/harvests_helper.rb'
- 'app/helpers/notifications_helper.rb'
- 'app/helpers/plantings_helper.rb'
- 'app/helpers/seeds_helper.rb'
- 'app/mailers/notifier.rb'
- 'app/models/ability.rb'
- 'app/models/account.rb'
- 'app/models/account_type.rb'
- 'app/models/alternate_name.rb'
- 'app/models/authentication.rb'
- 'app/models/comment.rb'
- 'app/models/crop.rb'
- 'app/models/follow.rb'
- 'app/models/forum.rb'
- 'app/models/garden.rb'
- 'app/models/harvest.rb'
- 'app/models/member.rb'
- 'app/models/notification.rb'
- 'app/models/order.rb'
- 'app/models/order_item.rb'
- 'app/models/photo.rb'
- 'app/models/plant_part.rb'
- 'app/models/planting.rb'
- 'app/models/post.rb'
- 'app/models/product.rb'
- 'app/models/role.rb'
- 'app/models/scientific_name.rb'
- 'app/models/seed.rb'
- 'app/validators/approved_validator.rb'
- 'config/application.rb'
- 'config/initializers/comfortable_mexican_sofa.rb'
- 'db/migrate/20120903092956_devise_create_users.rb'
- 'db/migrate/20120903112806_add_username_to_users.rb'
- 'db/migrate/20121001212604_create_crops.rb'
- 'db/migrate/20121003190731_require_system_name_for_crops.rb'
- 'db/migrate/20121027035231_add_slug_to_crops.rb'
- 'db/migrate/20121105032913_create_gardens.rb'
- 'db/migrate/20121106101718_add_slug_to_users.rb'
- 'db/migrate/20121107012827_create_scientific_names.rb'
- 'db/migrate/20121108105440_create_updates.rb'
- 'db/migrate/20121109130033_add_creation_index_to_updates.rb'
- 'db/migrate/20121203034745_add_tos_agreement_to_users.rb'
- 'db/migrate/20121214224227_add_slug_to_updates.rb'
- 'db/migrate/20121219022554_create_plantings.rb'
- 'db/migrate/20130113045802_rename_updates_to_posts.rb'
- 'db/migrate/20130113060852_rename_users_to_members.rb'
- 'db/migrate/20130113081521_rename_post_member_to_author.rb'
- 'db/migrate/20130113095802_rename_garden_member_to_owner.rb'
- 'db/migrate/20130118031942_add_description_to_gardens.rb'
- 'db/migrate/20130118043431_add_slug_to_plantings.rb'
- 'db/migrate/20130206033956_create_comments.rb'
- 'db/migrate/20130206051328_add_show_email_to_member.rb'
- 'db/migrate/20130208034248_require_fields_for_comments.rb'
- 'db/migrate/20130212001748_add_geo_to_members.rb'
- 'db/migrate/20130212123628_create_notifications.rb'
- 'db/migrate/20130213014511_create_forums.rb'
- 'db/migrate/20130213015708_add_forum_to_posts.rb'
- 'db/migrate/20130214024117_create_roles.rb'
- 'db/migrate/20130214034838_add_members_roles_table.rb'
- 'db/migrate/20130215131921_rename_notification_fields.rb'
- 'db/migrate/20130220044605_add_slug_to_forums.rb'
- 'db/migrate/20130220044642_add_slug_to_roles.rb'
- 'db/migrate/20130222060730_default_read_to_false.rb'
- 'db/migrate/20130326092227_change_planted_at_to_date.rb'
- 'db/migrate/20130327120024_add_send_email_to_member.rb'
- 'db/migrate/20130329045744_add_sunniness_to_planting.rb'
- 'db/migrate/20130404174459_create_authentications.rb'
- 'db/migrate/20130409103549_make_post_subject_non_null.rb'
- 'db/migrate/20130409162140_add_name_to_authentications.rb'
- 'db/migrate/20130507105357_create_products.rb'
- 'db/migrate/20130507110411_create_orders.rb'
- 'db/migrate/20130507113915_add_orders_products_table.rb'
- 'db/migrate/20130508050711_add_completed_to_order.rb'
- 'db/migrate/20130508104506_create_photos.rb'
- 'db/migrate/20130509123711_add_metadata_to_photos.rb'
- 'db/migrate/20130514124515_add_parent_to_crop.rb'
- 'db/migrate/20130515033842_create_order_items.rb'
- 'db/migrate/20130515054017_change_order_member_id_to_integer.rb'
- 'db/migrate/20130515122301_change_prices_to_integers.rb'
- 'db/migrate/20130517015920_create_account_details.rb'
- 'db/migrate/20130517051922_create_account_types.rb'
- 'db/migrate/20130517234458_require_account_type_name.rb'
- 'db/migrate/20130518000339_add_columns_to_product.rb'
- 'db/migrate/20130518002942_rename_account_detail_to_account.rb'
- 'db/migrate/20130529032813_add_express_token_to_orders.rb'
- 'db/migrate/20130531110729_add_photos_plantings_table.rb'
- 'db/migrate/20130601011725_change_flickr_photo_id_to_string.rb'
- 'db/migrate/20130606230333_change_product_description_to_text.rb'
- 'db/migrate/20130606233733_add_recommended_price_to_product.rb'
- 'db/migrate/20130705104238_add_planted_from_to_planting.rb'
- 'db/migrate/20130715110134_create_seeds.rb'
- 'db/migrate/20130718005600_change_use_by_to_plant_before_on_seed.rb'
- 'db/migrate/20130718011247_add_trading_to_seeds.rb'
- 'db/migrate/20130722050836_remove_tradable_from_seeds.rb'
- 'db/migrate/20130723103128_set_default_tradable_to_on_seed.rb'
- 'db/migrate/20130723110702_add_slug_to_seed.rb'
- 'db/migrate/20130809012511_add_bio_to_members.rb'
- 'db/migrate/20130819004549_add_planting_count_to_crop.rb'
- 'db/migrate/20130821011352_add_creator_to_crops.rb'
- 'db/migrate/20130821073736_add_creator_to_scientific_name.rb'
- 'db/migrate/20130826012139_add_owner_to_planting.rb'
- 'db/migrate/20130826023159_add_plantings_count_to_member.rb'
- 'db/migrate/20130827105823_add_newsletter_to_member.rb'
- 'db/migrate/20130913015118_add_referral_code_to_order.rb'
- 'db/migrate/20130917053547_create_harvests.rb'
- 'db/migrate/20130917060257_change_harvest_notes_to_description.rb'
- 'db/migrate/20130917071545_change_harvest_units_to_unit.rb'
- 'db/migrate/20130917075803_add_slug_to_harvests.rb'
- 'db/migrate/20130925050304_add_weight_to_harvests.rb'
- 'db/migrate/20131018101204_rename_system_name_to_name.rb'
- 'db/migrate/20131025104228_add_fields_to_gardens.rb'
- 'db/migrate/20131029053113_add_plant_part_to_harvests.rb'
- 'db/migrate/20131030230908_create_plant_parts.rb'
- 'db/migrate/20131030231202_change_plant_part_to_plant_part_id.rb'
- 'db/migrate/20131031000655_add_slug_to_plant_part.rb'
- 'db/migrate/20140718075753_default_plantings_count_to_zero.rb'
- 'db/migrate/20140829230600_add_finished_to_planting.rb'
- 'db/migrate/20140905001730_add_harvests_photos_table.rb'
- 'db/migrate/20140928044231_add_crops_posts_table.rb'
- 'db/migrate/20140928085713_add_send_planting_reminder_to_member.rb'
- 'db/migrate/20141002022459_create_index_harvest_photos.rb'
- 'db/migrate/20141018111015_create_alternate_names.rb'
- 'db/migrate/20141111130849_create_follows.rb'
- 'db/migrate/20141119130555_change_follows_member_id_to_follower_id.rb'
- 'db/migrate/20150124110540_add_properties_to_seeds.rb'
- 'db/migrate/20150127043022_add_gardens_photos_table.rb'
- 'db/migrate/20150129034206_add_si_weight_to_harvest.rb'
- 'db/migrate/20150130224814_add_requester_to_crops.rb'
- 'db/migrate/20150201052245_create_cms.rb'
- 'db/migrate/20150201053200_add_approval_status_to_crops.rb'
- 'db/migrate/20150201062506_add_reason_for_rejection_to_crops.rb'
- 'db/migrate/20150201064502_add_request_notes_to_crops.rb'
- 'db/migrate/20150209105410_add_rejection_notes_to_crops.rb'
- 'db/migrate/20150625224805_add_days_before_maturity_to_plantings.rb'
- 'db/migrate/20150824145414_add_member_preferred_image.rb'
- 'lib/actions/oauth_signup_action.rb'
- 'lib/geocodable.rb'
- 'lib/haml/filters/escaped_markdown.rb'
- 'lib/haml/filters/growstuff_markdown.rb'
# Offense count: 10
# Cop supports --auto-correct.
Style/EachForSimpleLoop:

View File

@@ -1,5 +1,5 @@
class AccountTypesController < ApplicationController
before_filter :authenticate_member!
before_action :authenticate_member!
load_and_authorize_resource
# GET /account_types

View File

@@ -1,5 +1,5 @@
class AccountsController < ApplicationController
before_filter :authenticate_member!
before_action :authenticate_member!
load_and_authorize_resource
# GET /accounts

View File

@@ -1,5 +1,5 @@
class AlternateNamesController < ApplicationController
before_filter :authenticate_member!, except: [:index, :show]
before_action :authenticate_member!, except: [:index, :show]
load_and_authorize_resource
# GET /alternate_names
@@ -17,7 +17,7 @@ class AlternateNamesController < ApplicationController
# GET /alternate_names/new.json
def new
@alternate_name = AlternateName.new
@crop = Crop.find_by_id(params[:crop_id]) || Crop.new
@crop = Crop.find_or_initialize_by(id: params[:crop_id])
respond_to do |format|
format.html # new.html.haml

View File

@@ -3,8 +3,8 @@ class ApplicationController < ActionController::Base
include ApplicationHelper
after_filter :store_location
before_filter :set_locale
after_action :store_location
before_action :set_locale
def store_location
if (request.path != "/members/sign_in" &&
@@ -23,7 +23,7 @@ class ApplicationController < ActionController::Base
end
def after_sign_out_path_for(resource_or_scope)
request.referrer
request.referer
end
# tweak CanCan defaults because we don't have a "current_user" method

View File

@@ -1,5 +1,5 @@
class AuthenticationsController < ApplicationController
before_filter :authenticate_member!
before_action :authenticate_member!
load_and_authorize_resource
# POST /authentications

View File

@@ -1,5 +1,5 @@
class CommentsController < ApplicationController
before_filter :authenticate_member!, except: [:index, :show]
before_action :authenticate_member!, except: [:index, :show]
load_and_authorize_resource
# GET /comments
@@ -18,7 +18,7 @@ class CommentsController < ApplicationController
# GET /comments/new.json
def new
@comment = Comment.new
@post = Post.find_by_id(params[:post_id])
@post = Post.find_by(id: params[:post_id])
if @post
@comments = @post.comments

View File

@@ -1,7 +1,7 @@
require 'will_paginate/array'
class CropsController < ApplicationController
before_filter :authenticate_member!, except: [:index, :hierarchy, :search, :show]
before_action :authenticate_member!, except: [:index, :hierarchy, :search, :show]
load_and_authorize_resource
skip_authorize_resource only: [:hierarchy, :search]

View File

@@ -1,5 +1,5 @@
class FollowsController < ApplicationController
before_filter :authenticate_member!
before_action :authenticate_member!
load_and_authorize_resource
skip_load_resource only: :create

View File

@@ -1,12 +1,12 @@
class GardensController < ApplicationController
before_filter :authenticate_member!, except: [:index, :show]
before_action :authenticate_member!, except: [:index, :show]
load_and_authorize_resource
# GET /gardens
# GET /gardens.json
def index
@gardens = Garden.paginate(page: params[:page])
@owner = Member.find_by_slug(params[:owner])
@owner = Member.find_by(slug: params[:owner])
if @owner
@gardens = @owner.gardens.paginate(page: params[:page])
end

View File

@@ -1,12 +1,12 @@
class HarvestsController < ApplicationController
before_filter :authenticate_member!, except: [:index, :show]
before_action :authenticate_member!, except: [:index, :show]
load_and_authorize_resource
# GET /harvests
# GET /harvests.json
def index
@owner = Member.find_by_slug(params[:owner])
@crop = Crop.find_by_slug(params[:crop])
@owner = Member.find_by(slug: params[:owner])
@crop = Crop.find_by(slug: params[:crop])
@harvests = if @owner
@owner.harvests.includes(:owner, :crop)
elsif @crop
@@ -32,7 +32,7 @@ class HarvestsController < ApplicationController
@harvest = Harvest.new('harvested_at' => Date.today)
# using find_by_id here because it returns nil, unlike find
@crop = Crop.find_by_id(params[:crop_id]) || Crop.new
@crop = Crop.find_or_initialize_by(id: params[:crop_id])
respond_to do |format|
format.html # new.html.erb

View File

@@ -1,6 +1,6 @@
class NotificationsController < ApplicationController
include NotificationsHelper
before_filter :authenticate_member!
before_action :authenticate_member!
load_and_authorize_resource
# GET /notifications
@@ -28,7 +28,7 @@ class NotificationsController < ApplicationController
def new
@notification = Notification.new
@recipient = Member.find_by_id(params[:recipient_id])
@recipient = Member.find_by(id: params[:recipient_id])
@subject = params[:subject] || ""
respond_to do |format|
@@ -66,7 +66,7 @@ class NotificationsController < ApplicationController
def create
params[:notification][:sender_id] = current_member.id
@notification = Notification.new(notification_params)
@recipient = Member.find_by_id(params[:notification][:recipient_id])
@recipient = Member.find_by(id: params[:notification][:recipient_id])
respond_to do |format|
if @notification.save

View File

@@ -1,5 +1,5 @@
class OrderItemsController < ApplicationController
before_filter :authenticate_member!
before_action :authenticate_member!
load_and_authorize_resource
# POST /order_items

View File

@@ -1,5 +1,5 @@
class OrdersController < ApplicationController
before_filter :authenticate_member!
before_action :authenticate_member!
load_and_authorize_resource
# GET /orders

View File

@@ -1,12 +1,12 @@
class PlantingsController < ApplicationController
before_filter :authenticate_member!, except: [:index, :show]
before_action :authenticate_member!, except: [:index, :show]
load_and_authorize_resource
# GET /plantings
# GET /plantings.json
def index
@owner = Member.find_by_slug(params[:owner])
@crop = Crop.find_by_slug(params[:crop])
@owner = Member.find_by(slug: params[:owner])
@crop = Crop.find_by(slug: params[:crop])
@plantings = if @owner
@owner.plantings.includes(:owner, :crop, :garden).paginate(page: params[:page])
elsif @crop
@@ -44,8 +44,8 @@ class PlantingsController < ApplicationController
@planting = Planting.new('planted_at' => Date.today)
# using find_by_id here because it returns nil, unlike find
@crop = Crop.find_by_id(params[:crop_id]) || Crop.new
@garden = Garden.find_by_id(params[:garden_id]) || Garden.new
@crop = Crop.find_by(id: params[:crop_id]) || Crop.new
@garden = Garden.find_by(id: params[:garden_id]) || Garden.new
respond_to do |format|
format.html # new.html.erb

View File

@@ -1,12 +1,12 @@
class PostsController < ApplicationController
before_filter :authenticate_member!, except: [:index, :show]
before_action :authenticate_member!, except: [:index, :show]
load_and_authorize_resource
# GET /posts
# GET /posts.json
def index
@author = Member.find_by_slug(params[:author])
@author = Member.find_by(slug: params[:author])
@posts = if @author
@author.posts.includes(:author, { comments: :author }).paginate(page: params[:page])
else
@@ -39,7 +39,7 @@ class PostsController < ApplicationController
# GET /posts/new.json
def new
@post = Post.new
@forum = Forum.find_by_id(params[:forum_id])
@forum = Forum.find_by(id: params[:forum_id])
respond_to do |format|
format.html # new.html.haml

View File

@@ -1,5 +1,5 @@
class ProductsController < ApplicationController
before_filter :authenticate_member!
before_action :authenticate_member!
load_and_authorize_resource
# GET /products

View File

@@ -1,5 +1,5 @@
class RolesController < ApplicationController
before_filter :authenticate_member!
before_action :authenticate_member!
load_and_authorize_resource
# GET /roles

View File

@@ -1,5 +1,5 @@
class ScientificNamesController < ApplicationController
before_filter :authenticate_member!, except: [:index, :show]
before_action :authenticate_member!, except: [:index, :show]
load_and_authorize_resource
# GET /scientific_names
@@ -28,7 +28,7 @@ class ScientificNamesController < ApplicationController
# GET /scientific_names/new.json
def new
@scientific_name = ScientificName.new
@crop = Crop.find_by_id(params[:crop_id]) || Crop.new
@crop = Crop.find_or_initialize_by(id: params[:crop_id])
respond_to do |format|
format.html # new.html.haml

View File

@@ -1,12 +1,12 @@
class SeedsController < ApplicationController
before_filter :authenticate_member!, except: [:index, :show]
before_action :authenticate_member!, except: [:index, :show]
load_and_authorize_resource
# GET /seeds
# GET /seeds.json
def index
@owner = Member.find_by_slug(params[:owner])
@crop = Crop.find_by_slug(params[:crop])
@owner = Member.find_by(slug: params[:owner])
@crop = Crop.find_by(slug: params[:crop])
@seeds = if @owner
@owner.seeds.includes(:owner, :crop).paginate(page: params[:page])
elsif @crop
@@ -49,7 +49,7 @@ class SeedsController < ApplicationController
@seed = Seed.new
# using find_by_id here because it returns nil, unlike find
@crop = Crop.find_by_id(params[:crop_id]) || Crop.new
@crop = Crop.find_or_initialize_by(id: params[:crop_id])
respond_to do |format|
format.html # new.html.erb

View File

@@ -227,7 +227,7 @@ class Crop < ActiveRecord::Base # rubocop:disable Metrics/ClassLength
def Crop.create_from_csv(row)
name, en_wikipedia_url, parent, scientific_names, alternate_names = row
cropbot = Member.find_by_login_name('cropbot')
cropbot = Member.find_by(login_name: 'cropbot')
raise "cropbot account not found: run rake db:seed" unless cropbot
crop = Crop.find_or_create_by(name: name)
@@ -237,7 +237,7 @@ class Crop < ActiveRecord::Base # rubocop:disable Metrics/ClassLength
)
if parent
parent = Crop.find_by_name(parent)
parent = Crop.find_by(name: parent)
if parent
crop.update_attributes(parent_id: parent.id)
else
@@ -259,7 +259,7 @@ class Crop < ActiveRecord::Base # rubocop:disable Metrics/ClassLength
logger.warn("Warning: no scientific name (not even on parent crop) for #{self}")
end
cropbot = Member.find_by_login_name('cropbot')
cropbot = Member.find_by(login_name: 'cropbot')
if names_to_add.size > 0
raise "cropbot account not found: run rake db:seed" unless cropbot
@@ -269,9 +269,7 @@ class Crop < ActiveRecord::Base # rubocop:disable Metrics/ClassLength
end
def add_alternate_names_from_csv(alternate_names)
cropbot = Member.find_by_login_name('cropbot')
names_to_add = []
cropbot = Member.find_by(login_name: 'cropbot')
if !alternate_names.blank? # i.e. we actually passed something in, which isn't a given
raise "cropbot account not found: run rake db:seed" unless cropbot
@@ -322,7 +320,7 @@ class Crop < ActiveRecord::Base # rubocop:disable Metrics/ClassLength
# we want to make sure that exact matches come first, even if not
# using elasticsearch (eg. in development)
exact_match = Crop.approved.find_by_name(query)
exact_match = Crop.approved.find_by(name: query)
if exact_match
matches.delete(exact_match)
matches.unshift(exact_match)
@@ -332,6 +330,10 @@ class Crop < ActiveRecord::Base # rubocop:disable Metrics/ClassLength
end
end
def Crop.case_insensitive_name(name)
where(["lower(name) = :value", { value: name.downcase }])
end
private
def add_names_to_list(names_to_add, list_name)
@@ -345,7 +347,7 @@ class Crop < ActiveRecord::Base # rubocop:disable Metrics/ClassLength
end
def create_crop_in_list(list_name, name)
cropbot = Member.find_by_login_name('cropbot')
cropbot = Member.find_by(login_name: 'cropbot')
create_hash = {
creator_id: "#{cropbot.id}",
name: name

View File

@@ -92,9 +92,9 @@ class Member < ActiveRecord::Base
def self.find_first_by_auth_conditions(warden_conditions)
conditions = warden_conditions.dup
if login = conditions.delete(:login)
where(conditions).where(["lower(login_name) = :value OR lower(email) = :value", { value: login.downcase }]).first
where(conditions).login_name_or_email(login).first
else
where(conditions).first
find_by(conditions)
end
end
@@ -107,7 +107,7 @@ class Member < ActiveRecord::Base
end
def current_order
orders.where(completed_at: nil).first
orders.find_by(completed_at: nil)
end
# when purchasing a product that gives you a paid account, this method
@@ -137,7 +137,7 @@ class Member < ActiveRecord::Base
end
def auth(provider)
return authentications.find_by_provider(provider)
return authentications.find_by(provider: provider)
end
# Authenticates against Flickr and returns an object we can use for subsequent api calls
@@ -159,7 +159,6 @@ class Member < ActiveRecord::Base
# Returns a [[page of photos], total] pair.
# Total is needed for pagination.
def flickr_photos(page_num = 1, set = nil)
result = false
result = if set
flickr.photosets.getPhotos(
photoset_id: set,
@@ -197,6 +196,14 @@ class Member < ActiveRecord::Base
return false
end
def Member.login_name_or_email(login)
where(["lower(login_name) = :value OR lower(email) = :value", { value: login.downcase }])
end
def Member.case_insensitive_login_name(login)
where(["lower(login_name) = :value", { value: login.downcase }])
end
def Member.interesting
howmany = 12 # max number to find
interesting_members = []
@@ -237,21 +244,21 @@ class Member < ActiveRecord::Base
def newsletter_subscribe(testing = false)
return true if (Rails.env.test? && !testing)
gb = Gibbon::API.new
res = gb.lists.subscribe({
id: Growstuff::Application.config.newsletter_list_id,
email: { email: email },
merge_vars: { login_name: login_name },
double_optin: false # they already confirmed their email with us
})
gb.lists.subscribe({
id: Growstuff::Application.config.newsletter_list_id,
email: { email: email },
merge_vars: { login_name: login_name },
double_optin: false # they already confirmed their email with us
})
end
def newsletter_unsubscribe(testing = false)
return true if (Rails.env.test? && !testing)
gb = Gibbon::API.new
res = gb.lists.unsubscribe({
id: Growstuff::Application.config.newsletter_list_id,
email: { email: email }
})
gb.lists.unsubscribe({
id: Growstuff::Application.config.newsletter_list_id,
email: { email: email }
})
end
def already_following?(member)
@@ -259,6 +266,6 @@ class Member < ActiveRecord::Base
end
def get_follow(member)
self.follows.where(followed_id: member.id).first if already_following?(member)
self.follows.find_by(followed_id: member.id) if already_following?(member)
end
end

View File

@@ -68,22 +68,22 @@ class Order < ActiveRecord::Base
if args[:for]
case args[:by]
when "member"
member = Member.find_by_login_name(args[:for])
member = Member.find_by(login_name: args[:for])
if member
return member.orders
end
when "order_id"
order = Order.find_by_id(args[:for])
order = Order.find_by(id: args[:for])
if order
return [order]
end
when "paypal_token"
order = Order.find_by_paypal_express_token(args[:for])
order = Order.find_by(paypal_express_token: args[:for])
if order
return [order]
end
when "paypal_payer_id"
order = Order.find_by_paypal_express_payer_id(args[:for])
order = Order.find_by(paypal_express_payer_id: args[:for])
if order
return [order]
end

View File

@@ -15,12 +15,12 @@ class Post < ActiveRecord::Base
sender = self.author.id
self.body.scan(Haml::Filters::GrowstuffMarkdown::MEMBER_REGEX) do |m|
# find member case-insensitively and add to list of recipients
member = Member.where('lower(login_name) = ?', $1.downcase).first
member = Member.case_insensitive_login_name($1).first
recipients << member if member && !recipients.include?(member)
end
self.body.scan(Haml::Filters::GrowstuffMarkdown::MEMBER_AT_REGEX) do |m|
# find member case-insensitively and add to list of recipients
member = Member.where('lower(login_name) = ?', $1[1..-1].downcase).first
member = Member.case_insensitive_login_name($1[1..-1]).first
recipients << member if member && !recipients.include?(member)
end
# don't send notifications to yourself
@@ -75,7 +75,7 @@ class Post < ActiveRecord::Base
# look for crops mentioned in the post. eg. [tomato](crop)
self.body.scan(Haml::Filters::GrowstuffMarkdown::CROP_REGEX) do |m|
# find crop case-insensitively
crop = Crop.where('lower(name) = ?', $1.downcase).first
crop = Crop.case_insensitive_name($1).first
# create association
self.crops << crop if crop && !self.crops.include?(crop)
end

View File

@@ -1,5 +1,5 @@
# Require any additional compass plugins here.
# rubocop:disable Lint/UselessAssignment
# Set this to the root of your project when deployed:
http_path = "/"
css_dir = "app/assets/stylesheets"

View File

@@ -1,2 +1,3 @@
# Require any additional compass plugins here.
# rubocop:disable Lint/UselessAssignment
project_type = :rails

View File

@@ -1,7 +1,5 @@
if ENV['MY_RUBY_HOME'] && ENV['MY_RUBY_HOME'].include?('rvm')
begin
rvm_path = File.dirname(File.dirname(ENV['MY_RUBY_HOME']))
rvm_lib_path = File.join(rvm_path, 'lib')
require 'rvm'
RVM.use_from_path! File.dirname(File.dirname(__FILE__))
rescue LoadError

View File

@@ -87,7 +87,7 @@ def load_test_users
suburb_file.pos = 0 if suburb_file.eof?
row = CSV.parse(suburb_file.readline)
suburb, country, state, latitude, longitude = row[0]
suburb, _country, _state, latitude, longitude = row[0]
# Using 'update_column' method instead of 'update' so that
# it avoids accessing Geocoding service for faster processing
@user.gardens.first.update_columns(location: suburb, latitude: latitude, longitude: longitude)
@@ -141,7 +141,7 @@ def create_cropbot
@cropbot_user.skip_confirmation!
@cropbot_user.roles << @wrangler
@cropbot_user.save!
@cropbot_user.account.account_type = AccountType.find_by_name("Staff")
@cropbot_user.account.account_type = AccountType.find_by(name: "Staff")
@cropbot_user.account.save
end

View File

@@ -26,7 +26,7 @@ module Haml::Filters
expanded = expanded.gsub(MEMBER_REGEX) do |m|
member_str = $1
# find member case-insensitively
member = Member.where('lower(login_name) = ?', member_str.downcase).first
member = Member.case_insensitive_login_name(member_str).first
if member
url = Rails.application.routes.url_helpers.member_url(member, only_path: true)
"[#{member_str}](#{url})"
@@ -39,7 +39,7 @@ module Haml::Filters
expanded = expanded.gsub(MEMBER_AT_REGEX) do |m|
member_str = $1
# find member case-insensitively
member = Member.where('lower(login_name) = ?', member_str[1..-1].downcase).first
member = Member.case_insensitive_login_name(member_str[1..-1]).first
if member
url = Rails.application.routes.url_helpers.member_url(member, only_path: true)
"[#{member_str}](#{url})"

View File

@@ -146,7 +146,7 @@ namespace :growstuff do
end
puts "Making Skud a staff account..."
@skud = Member.find_by_login_name('Skud')
@skud = Member.find_by(login_name: 'Skud')
if @skud
@skud.account.account_type = @staff_account
@skud.account.save
@@ -157,7 +157,7 @@ namespace :growstuff do
desc "June 2013: replace nil account_types with free accounts"
task nil_account_type: :environment do
free = AccountType.find_by_name("Free")
free = AccountType.find_by(name: "Free")
raise "Free account type not found: run rake growstuff:oneoff:setup_shop"\
unless free
Account.all.each do |a|
@@ -187,9 +187,9 @@ namespace :growstuff do
desc "August 2013: set default creator on existing crops"
task set_default_crop_creator: :environment do
cropbot = Member.find_by_login_name("cropbot")
cropbot = Member.find_by(login_name: "cropbot")
raise "cropbot not found: create cropbot member on site or run rake db:seed" unless cropbot
cropbot.account.account_type = AccountType.find_by_name("Staff") # set this just because it's nice
cropbot.account.account_type = AccountType.find_by(name: "Staff") # set this just because it's nice
cropbot.account.save
Crop.find_each do |crop|
unless crop.creator
@@ -294,13 +294,11 @@ namespace :growstuff do
require 'csv'
file = "db/seeds/alternate_names_201410.csv"
puts "Loading alternate names from #{file}..."
cropbot = Member.find_by_login_name("cropbot")
cropbot = Member.find_by(login_name: "cropbot")
CSV.foreach(file) do |row|
crop_id, crop_name, alternate_names = row
if alternate_names.blank? then
next
end
crop = Crop.find_by_name(crop_name)
_crop_id, crop_name, alternate_names = row
next if alternate_names.blank?
crop = Crop.find_by(name: crop_name)
if crop
alternate_names.split(/,\s*/).each do |an|
AlternateName.where(

View File

@@ -23,7 +23,6 @@ describe Admin::OrdersController do
end
it "sets an error message if nothing found" do
order = FactoryGirl.create(:order)
get :search, { search_by: 'order_id', search_text: 'foo' }
flash[:alert].should match /Couldn't find order with/
end

View File

@@ -24,7 +24,7 @@ describe RolesController do
role = Role.create! valid_attributes
get :index, {}
# note that admin role exists because of login_admin_member
assigns(:roles).should eq([Role.find_by_name('admin'), role])
assigns(:roles).should eq([Role.find_by(name: 'admin'), role])
end
end
end

View File

@@ -59,7 +59,7 @@ feature "Planting a crop", :js do
@a_past_date = 15.days.ago.strftime("%Y-%m-%d")
@right_now = Date.today.strftime("%Y-%m-%d")
@a_future_date = 1.years.from_now.strftime("%Y-%m-%d")
@a_future_date = 1.year.from_now.strftime("%Y-%m-%d")
end
it "should show that it is not planted yet" do

View File

@@ -66,7 +66,7 @@ feature "signin", js: true do
# Ordinarily done by database_cleaner
Member.where(login_name: 'tdawg').delete_all
member = create :member, login_name: 'tdawg', email: 'example.oauth.facebook@example.com'
create :member, login_name: 'tdawg', email: 'example.oauth.facebook@example.com'
# Start the test
visit root_path

View File

@@ -52,7 +52,6 @@ feature "unsubscribe" do
# visit /members/unsubscribe/somestring ie.parameter to the URL is a random string
visit unsubscribe_member_url("type=send_planting_reminder&member_id=#{member.id}")
expect(page).to have_content "We're sorry, there was an error"
updated_member = Member.find(member.id) # reload the member
expect(member.send_planting_reminder).to eq(true)
expect(member.send_notification_email).to eq(true)
end

View File

@@ -23,7 +23,6 @@ describe GardensHelper do
description: 'a' * 130
)
result = helper.display_garden_description(garden)
link = link_to("Read more", garden_path(garden))
expect(result).to eq 'a' * 130
end
@@ -38,17 +37,13 @@ describe GardensHelper do
describe "garden plantings" do
it "is missing" do
garden = FactoryGirl.create(:garden)
plantings = nil
result = helper.display_garden_plantings(plantings)
result = helper.display_garden_plantings(nil)
expect(result).to eq "None"
end
it "has 1 planting" do
garden = FactoryGirl.create(:garden)
plantings = []
crop = FactoryGirl.create(:crop)
plantings << FactoryGirl.create(:planting, quantity: 10, crop: crop)
plantings = [FactoryGirl.create(:planting, quantity: 10, crop: crop)]
result = helper.display_garden_plantings(plantings)
output = "<li>"
@@ -59,7 +54,6 @@ describe GardensHelper do
end
it "has 2 plantings" do
garden = FactoryGirl.create(:garden)
plantings = []
crop1 = FactoryGirl.create(:crop)
@@ -82,7 +76,6 @@ describe GardensHelper do
end
it "has 3 plantings" do
garden = FactoryGirl.create(:garden)
plantings = []
crop1 = FactoryGirl.create(:crop)

View File

@@ -6,8 +6,6 @@ describe NotificationsHelper do
it "replies to PMs with PMs" do
notification = FactoryGirl.create(:notification, recipient_id: member.id, post_id: nil)
subject = "Re: " + notification.subject
link = helper.reply_link(notification)
link.should_not be_nil
link.should eq reply_notification_url(notification)

View File

@@ -23,7 +23,6 @@ describe SeedsHelper do
description: 'a' * 130
)
result = helper.display_seed_description(seed)
link = link_to("Read more", seed_path(seed))
expect(result).to eq 'a' * 130
end

View File

@@ -10,7 +10,7 @@ describe Crop do
it 'should be fetchable from the database' do
crop.save
@crop2 = Crop.find_by_name('tomato')
@crop2 = Crop.find_by(name: 'tomato')
@crop2.en_wikipedia_url.should == "http://en.wikipedia.org/wiki/Tomato"
@crop2.slug.should == "tomato"
end
@@ -189,25 +189,25 @@ describe Crop do
let(:crop) { FactoryGirl.create(:tomato) }
it 'returns a hash of sunniness values' do
planting1 = FactoryGirl.create(:sunny_planting, crop: crop)
planting2 = FactoryGirl.create(:sunny_planting, crop: crop)
planting3 = FactoryGirl.create(:semi_shady_planting, crop: crop)
planting4 = FactoryGirl.create(:shady_planting, crop: crop)
FactoryGirl.create(:sunny_planting, crop: crop)
FactoryGirl.create(:sunny_planting, crop: crop)
FactoryGirl.create(:semi_shady_planting, crop: crop)
FactoryGirl.create(:shady_planting, crop: crop)
crop.sunniness.should be_an_instance_of Hash
end
it 'counts each sunniness value' do
planting1 = FactoryGirl.create(:sunny_planting, crop: crop)
planting2 = FactoryGirl.create(:sunny_planting, crop: crop)
planting3 = FactoryGirl.create(:semi_shady_planting, crop: crop)
planting4 = FactoryGirl.create(:shady_planting, crop: crop)
FactoryGirl.create(:sunny_planting, crop: crop)
FactoryGirl.create(:sunny_planting, crop: crop)
FactoryGirl.create(:semi_shady_planting, crop: crop)
FactoryGirl.create(:shady_planting, crop: crop)
crop.sunniness.should == { 'sun' => 2, 'shade' => 1, 'semi-shade' => 1 }
end
it 'ignores unused sunniness values' do
planting1 = FactoryGirl.create(:sunny_planting, crop: crop)
planting2 = FactoryGirl.create(:sunny_planting, crop: crop)
planting3 = FactoryGirl.create(:semi_shady_planting, crop: crop)
FactoryGirl.create(:sunny_planting, crop: crop)
FactoryGirl.create(:sunny_planting, crop: crop)
FactoryGirl.create(:semi_shady_planting, crop: crop)
crop.sunniness.should == { 'sun' => 2, 'semi-shade' => 1 }
end
end
@@ -216,25 +216,25 @@ describe Crop do
let(:crop) { FactoryGirl.create(:tomato) }
it 'returns a hash of sunniness values' do
planting1 = FactoryGirl.create(:seed_planting, crop: crop)
planting2 = FactoryGirl.create(:seed_planting, crop: crop)
planting3 = FactoryGirl.create(:seedling_planting, crop: crop)
planting4 = FactoryGirl.create(:cutting_planting, crop: crop)
FactoryGirl.create(:seed_planting, crop: crop)
FactoryGirl.create(:seed_planting, crop: crop)
FactoryGirl.create(:seedling_planting, crop: crop)
FactoryGirl.create(:cutting_planting, crop: crop)
crop.planted_from.should be_an_instance_of Hash
end
it 'counts each planted_from value' do
planting1 = FactoryGirl.create(:seed_planting, crop: crop)
planting2 = FactoryGirl.create(:seed_planting, crop: crop)
planting3 = FactoryGirl.create(:seedling_planting, crop: crop)
planting4 = FactoryGirl.create(:cutting_planting, crop: crop)
FactoryGirl.create(:seed_planting, crop: crop)
FactoryGirl.create(:seed_planting, crop: crop)
FactoryGirl.create(:seedling_planting, crop: crop)
FactoryGirl.create(:cutting_planting, crop: crop)
crop.planted_from.should == { 'seed' => 2, 'seedling' => 1, 'cutting' => 1 }
end
it 'ignores unused planted_from values' do
planting1 = FactoryGirl.create(:seed_planting, crop: crop)
planting2 = FactoryGirl.create(:seed_planting, crop: crop)
planting3 = FactoryGirl.create(:seedling_planting, crop: crop)
FactoryGirl.create(:seed_planting, crop: crop)
FactoryGirl.create(:seed_planting, crop: crop)
FactoryGirl.create(:seedling_planting, crop: crop)
crop.planted_from.should == { 'seed' => 2, 'seedling' => 1 }
end
end

View File

@@ -90,7 +90,7 @@ describe Garden do
context 'ordering' do
it "should be sorted alphabetically" do
z = FactoryGirl.create(:garden_z)
FactoryGirl.create(:garden_z)
a = FactoryGirl.create(:garden_a)
Garden.first.should == a
end

View File

@@ -126,17 +126,18 @@ describe 'member' do
context 'case sensitivity' do
it 'preserves case of login name' do
member = FactoryGirl.create(:member, login_name: "BOB")
check = Member.find('bob')
check.login_name.should eq 'BOB'
FactoryGirl.create(:member, login_name: "BOB")
Member.find('bob').login_name.should eq 'BOB'
end
end
context 'ordering' do
before do
FactoryGirl.create(:member, login_name: "Zoe")
FactoryGirl.create(:member, login_name: "Anna")
end
it "should be sorted by name" do
z = FactoryGirl.create(:member, login_name: "Zoe")
a = FactoryGirl.create(:member, login_name: "Anna")
Member.first.should == a
expect(Member.first.login_name).to eq("Anna")
end
end
@@ -273,7 +274,7 @@ describe 'member' do
@member1.updated_at = 3.days.ago
@member2.updated_at = 2.days.ago
@member3.updated_at = 1.days.ago
@member3.updated_at = 1.day.ago
Member.interesting.should eq [@member3, @member2, @member1]
end

View File

@@ -10,7 +10,7 @@ describe ScientificName do
it 'should be fetchable from the database' do
sn.save
@sn2 = ScientificName.find_by_name('Zea mays')
@sn2 = ScientificName.find_by(name: 'Zea mays')
@sn2.crop.name.should == 'maize'
end

View File

@@ -1,7 +1,7 @@
# Taken unashamedly from https://github.com/plataformatec/devise/wiki/How-To%3a-Controllers-and-Views-tests-with-Rails-3-%28and-rspec%29
module ControllerMacros
def login_member(member_factory = :member)
let(:member) { member = FactoryGirl.create(member_factory || :member) }
let(:member) { FactoryGirl.create(member_factory || :member) }
before(:each) do
@request.env["devise.mapping"] = Devise.mappings[:member]
sign_in member