Compare commits

...

1 commit

Author SHA1 Message Date
Devin Howard
9f1a2fa2b2 automatic rubocop fixes 2017-11-25 11:18:32 -08:00
208 changed files with 515 additions and 325 deletions

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
source 'https://rubygems.org'
ruby '2.3.0'
@ -47,10 +48,10 @@ end
group :development, :test do
gem 'better_errors'
gem 'binding_of_caller'
gem 'faker'
gem 'pry-byebug'
gem 'pry-rails'
gem 'rubocop'
gem 'tunemygc'
gem 'faker'
gem 'rubocop', '~> 0.46.0' # match code climate https://github.com/tootsuite/mastodon/issues/1758
gem 'timecop'
gem 'tunemygc'
end

View file

@ -166,7 +166,6 @@ GEM
cocaine (~> 0.5.5)
mime-types
mimemagic (~> 0.3.0)
parallel (1.12.0)
parser (2.4.0.0)
ast (~> 2.2)
pg (0.21.0)
@ -241,14 +240,13 @@ GEM
rspec-mocks (~> 3.6.0)
rspec-support (~> 3.6.0)
rspec-support (3.6.0)
rubocop (0.49.1)
parallel (~> 1.10)
parser (>= 2.3.3.1, < 3.0)
rubocop (0.46.0)
parser (>= 2.3.1.1, < 3.0)
powerpack (~> 0.1)
rainbow (>= 1.99.1, < 3.0)
ruby-progressbar (~> 1.7)
unicode-display_width (~> 1.0, >= 1.0.1)
ruby-progressbar (1.8.1)
ruby-progressbar (1.9.0)
sass (3.5.1)
sass-listen (~> 4.0.0)
sass-listen (4.0.0)
@ -333,7 +331,7 @@ DEPENDENCIES
rails (~> 5.0.0)
redis (~> 3.3.3)
rspec-rails
rubocop
rubocop (~> 0.46.0)
sass-rails
shoulda-matchers
simplecov

View file

@ -1,5 +1,6 @@
#!/usr/bin/env rake
# frozen_string_literal: true
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module ApplicationCable
class Channel < ActionCable::Channel::Base
end

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module ApplicationCable
class Connection < ActionCable::Connection::Base
identified_by :current_user

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class MapChannel < ApplicationCable::Channel
# Called when the consumer has successfully
# become a subscriber of this channel.

View file

@ -1,11 +1,12 @@
# frozen_string_literal: true
class AccessController < ApplicationController
before_action :require_user, only: [:access, :access_request,
:approve_access, :approve_access_post,
:deny_access, :deny_access_post, :request_access]
before_action :set_map, only: [:access, :access_request,
:approve_access, :approve_access_post,
:deny_access, :deny_access_post, :request_access]
before_action :require_user, only: %i(access access_request
approve_access approve_access_post
deny_access deny_access_post request_access)
before_action :set_map, only: %i(access access_request
approve_access approve_access_post
deny_access deny_access_post request_access)
after_action :verify_authorized
# GET maps/:id/request_access

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Api
module V1
class DeprecatedController < ApplicationController

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Api
module V2
class MappingsController < WithUpdatesController

View file

@ -1,9 +1,10 @@
# frozen_string_literal: true
module Api
module V2
class MapsController < WithUpdatesController
def searchable_columns
[:name, :desc]
%i(name desc)
end
def apply_filters(collection)

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Api
module V2
class MetacodesController < RestfulController

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Api
module V2
class RestfulController < ActionController::Base
@ -7,7 +8,7 @@ module Api
snorlax_used_rest!
before_action :load_resource, only: [:show, :update, :destroy]
before_action :load_resource, only: %i(show update destroy)
after_action :verify_authorized
def index
@ -91,7 +92,7 @@ module Api
end
def doorkeeper_user
return unless doorkeeper_token.present?
return if doorkeeper_token.blank?
doorkeeper_render_error unless valid_doorkeeper_token?
@doorkeeper_user ||= User.find(doorkeeper_token.resource_owner_id)
end

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Api
module V2
class SessionsController < ApplicationController

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Api
module V2
class StarsController < RestfulController

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Api
module V2
class SynapsesController < WithUpdatesController

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Api
module V2
class TokensController < RestfulController

View file

@ -1,9 +1,10 @@
# frozen_string_literal: true
module Api
module V2
class TopicsController < WithUpdatesController
def searchable_columns
[:name, :desc, :link]
%i(name desc link)
end
end
end

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Api
module V2
class UsersController < RestfulController

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Api
module V2
class WithUpdatesController < RestfulController

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class ApplicationController < ActionController::Base
include ApplicationHelper
include Pundit

View file

@ -1,6 +1,7 @@
# frozen_string_literal: true
class ExploreController < ApplicationController
before_action :require_authentication, only: [:mine, :shared, :starred]
before_action :require_authentication, only: %i(mine shared starred)
before_action :authorize_explore
after_action :verify_authorized
after_action :verify_policy_scoped

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
# bad code that should be checked over before entering one of the
# nice files from the right side of this repo
class HacksController < ApplicationController

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class MainController < ApplicationController
before_action :authorize_main
after_action :verify_authorized

View file

@ -1,6 +1,7 @@
# frozen_string_literal: true
class MappingsController < ApplicationController
before_action :require_user, only: [:create, :update, :destroy]
before_action :require_user, only: %i(create update destroy)
after_action :verify_authorized, except: :index
after_action :verify_policy_scoped, only: :index

View file

@ -1,7 +1,8 @@
# frozen_string_literal: true
class MapsController < ApplicationController
before_action :require_user, only: [:create, :update, :destroy, :events, :follow, :unfollow]
before_action :set_map, only: [:show, :conversation, :update, :destroy, :contains, :events, :export, :follow, :unfollow, :unfollow_from_email]
before_action :require_user, only: %i(create update destroy events follow unfollow)
before_action :set_map, only: %i(show conversation update destroy contains events export follow unfollow unfollow_from_email)
after_action :verify_authorized
# GET maps/:id

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class MessagesController < ApplicationController
before_action :require_user, except: [:show]
after_action :verify_authorized

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class MetacodeSetsController < ApplicationController
before_action :require_admin

View file

@ -1,7 +1,8 @@
# frozen_string_literal: true
class MetacodesController < ApplicationController
before_action :require_admin, except: [:index, :show]
before_action :set_metacode, only: [:edit, :update]
before_action :require_admin, except: %i(index show)
before_action :set_metacode, only: %i(edit update)
# GET /metacodes
# GET /metacodes.json

View file

@ -1,8 +1,9 @@
# frozen_string_literal: true
class NotificationsController < ApplicationController
before_action :set_receipts, only: [:index, :show, :mark_read, :mark_unread]
before_action :set_notification, only: [:show, :mark_read, :mark_unread]
before_action :set_receipt, only: [:show, :mark_read, :mark_unread]
before_action :set_receipts, only: %i(index show mark_read mark_unread)
before_action :set_notification, only: %i(show mark_read mark_unread)
before_action :set_receipt, only: %i(show mark_read mark_unread)
def index
@notifications = current_user.mailbox.notifications.page(params[:page]).per(25)

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class SearchController < ApplicationController
include TopicsHelper
include MapsHelper
@ -7,7 +8,7 @@ class SearchController < ApplicationController
before_action :authorize_search
after_action :verify_authorized
after_action :verify_policy_scoped, only: [:maps, :mappers, :synapses, :topics]
after_action :verify_policy_scoped, only: %i(maps mappers synapses topics)
# get /search/topics?term=SOMETERM
def topics
@ -140,13 +141,13 @@ class SearchController < ApplicationController
topic1id = params[:topic1id]
topic2id = params[:topic2id]
if term && !term.empty?
if term.present?
@synapses = policy_scope(Synapse)
.where('LOWER("desc") like ?', '%' + term.downcase.strip + '%')
.order('"desc"')
@synapses = @synapses.uniq(&:desc)
elsif topic1id && !topic1id.empty?
elsif topic1id.present?
one = policy_scope(Synapse).where(topic1_id: topic1id, topic2_id: topic2id)
two = policy_scope(Synapse).where(topic2_id: topic1id, topic1_id: topic2id)
@synapses = one + two

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class StarsController < ApplicationController
before_action :require_user
before_action :set_map

View file

@ -1,8 +1,9 @@
# frozen_string_literal: true
class SynapsesController < ApplicationController
include TopicsHelper
before_action :require_user, only: [:create, :update, :destroy]
before_action :require_user, only: %i(create update destroy)
after_action :verify_authorized, except: :index
after_action :verify_policy_scoped, only: :index

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class TokensController < ApplicationController
before_action :require_user, only: [:new]

View file

@ -1,11 +1,12 @@
# frozen_string_literal: true
class TopicsController < ApplicationController
include TopicsHelper
before_action :require_user, only: [:create, :update, :destroy, :follow, :unfollow]
before_action :set_topic, only: [:show, :update, :relative_numbers,
:relatives, :network, :destroy,
:follow, :unfollow, :unfollow_from_email]
before_action :require_user, only: %i(create update destroy follow unfollow)
before_action :set_topic, only: %i(show update relative_numbers
relatives network destroy
follow unfollow unfollow_from_email)
after_action :verify_authorized, except: :autocomplete_topic
respond_to :html, :js, :json
@ -13,7 +14,7 @@ class TopicsController < ApplicationController
# GET /topics/autocomplete_topic
def autocomplete_topic
term = params[:term]
if term && !term.empty?
if term.present?
topics = policy_scope(Topic)
.where('LOWER("name") like ?', term.downcase + '%')
.order('"name"')

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Users
class PasswordsController < Devise::PasswordsController
protected

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Users
class RegistrationsController < Devise::RegistrationsController
before_action :configure_sign_up_params, only: [:create]
@ -29,7 +30,7 @@ module Users
end
def configure_sign_up_params
devise_parameter_sanitizer.permit(:sign_up, keys: [:name, :joinedwithcode])
devise_parameter_sanitizer.permit(:sign_up, keys: %i(name joinedwithcode))
end
def configure_account_update_params

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Users
class SessionsController < Devise::SessionsController
after_action :store_location, only: [:new]

View file

@ -1,6 +1,7 @@
# frozen_string_literal: true
class UsersController < ApplicationController
before_action :require_user, only: [:edit, :update, :updatemetacodes, :update_metacode_focus]
before_action :require_user, only: %i(edit update updatemetacodes update_metacode_focus)
respond_to :html, :json
@ -100,7 +101,7 @@ class UsersController < ApplicationController
@user.settings.metacode_focus = params[:value]
@user.save
respond_to do |format|
format.json { render json: { success: "success" }}
format.json { render json: { success: 'success' } }
end
end

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class NotificationDecorator
class << self
def decorate(notification, receipt)

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module ApplicationHelper
def invite_link
"#{request.base_url}/join" + (current_user ? "?code=#{current_user.code}" : '')

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module ContentHelper
def resource_name
:user

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module DeviseHelper
def devise_error_messages!
resource.errors.to_a[0]

View file

@ -1,3 +1,4 @@
# frozen_string_literal: true
module InMetacodeSetsHelper
end

View file

@ -1,3 +1,4 @@
# frozen_string_literal: true
module MainHelper
end

View file

@ -1,3 +1,5 @@
# frozen_string_literal: true
module MapMailerHelper
def access_approved_subject(map)
map.name + ' - access approved'

View file

@ -1,3 +1,4 @@
# frozen_string_literal: true
module MappingHelper
end

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module MapsHelper
# JSON autocomplete format for typeahead
def autocomplete_map_array_json(maps)

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module MetacodesHelper
def metacodeset
metacodes = current_user.settings.metacodes

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module SynapsesHelper
## this one is for building our custom JSON autocomplete format for typeahead
def autocomplete_synapse_generic_json(unique)

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module TopicMailerHelper
def added_to_map_subject(topic, map)
topic.name + ' was added to map ' + map.name

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module TopicsHelper
## this one is for building our custom JSON autocomplete format for typeahead
def autocomplete_array_json(topics)

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module UsersHelper
# build custom json autocomplete for typeahead
def autocomplete_user_array_json(users)

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class ApplicationMailer < ActionMailer::Base
default from: 'team@metamaps.cc'
layout 'mailer'

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class MapActivityMailer < ApplicationMailer
default from: 'team@metamaps.cc'

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class MapMailer < ApplicationMailer
include MapMailerHelper
default from: 'team@metamaps.cc'

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class TopicMailer < ApplicationMailer
include TopicMailerHelper
default from: 'team@metamaps.cc'

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class AccessRequest < ApplicationRecord
belongs_to :user
belongs_to :map

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
end

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class Attachment < ApplicationRecord
belongs_to :attachable, polymorphic: true

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Attachable
extend ActiveSupport::Concern

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Routing
extend ActiveSupport::Concern
include Rails.application.routes.url_helpers

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class Event < ApplicationRecord
KINDS = %w(user_present_on_map user_not_present_on_map
conversation_started_on_map

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Events
class ConversationStartedOnMap < Event
# after_create :notify_users!

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Events
class SynapseAddedToMap < Event
# after_create :notify_users!

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Events
class SynapseRemovedFromMap < Event
# after_create :notify_users!

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Events
class SynapseUpdated < Event
# after_create :notify_users!

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Events
class TopicAddedToMap < Event
after_create :notify_users!

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Events
class TopicMovedOnMap < Event
# after_create :notify_users!

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Events
class TopicRemovedFromMap < Event
# after_create :notify_users!

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Events
class TopicUpdated < Event
# after_create :notify_users!

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Events
class UserNotPresentOnMap < Event
# after_create :notify_users!

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Events
class UserPresentOnMap < Event
# after_create :notify_users!

View file

@ -1,6 +1,6 @@
# frozen_string_literal: true
class Follow < ApplicationRecord
class Follow < ApplicationRecord
belongs_to :user
belongs_to :followed, polymorphic: true
has_one :follow_reason, dependent: :destroy

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class FollowReason < ApplicationRecord
REASONS = %w(created commented contributed followed shared_on starred).freeze

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class InMetacodeSet < ApplicationRecord
belongs_to :metacode, class_name: 'Metacode', foreign_key: 'metacode_id'
belongs_to :metacode_set, class_name: 'MetacodeSet', foreign_key: 'metacode_set_id'

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class Map < ApplicationRecord
ATTRS_TO_WATCH = %w(name desc permission).freeze
@ -15,7 +16,7 @@ class Map < ApplicationRecord
has_many :messages, as: :resource, dependent: :destroy
has_many :stars, dependent: :destroy
has_many :follows, as: :followed, dependent: :destroy
has_many :followers, :through => :follows, source: :user
has_many :followers, through: :follows, source: :user
has_many :access_requests, dependent: :destroy
has_many :user_maps, dependent: :destroy
@ -89,10 +90,10 @@ class Map < ApplicationRecord
def as_json(_options = {})
json = super(
methods: [:user_name, :user_image, :star_count, :topic_count, :synapse_count,
:contributor_count, :collaborator_ids, :screenshot_url],
except: [:screenshot_content_type, :screenshot_file_size, :screenshot_file_name,
:screenshot_updated_at]
methods: %i(user_name user_image star_count topic_count synapse_count
contributor_count collaborator_ids screenshot_url),
except: %i(screenshot_content_type screenshot_file_size screenshot_file_name
screenshot_updated_at)
)
json[:created_at_clean] = created_at_str
json[:updated_at_clean] = updated_at_str
@ -142,7 +143,7 @@ class Map < ApplicationRecord
protected
def after_created
FollowService.follow(self, self.user, 'created')
FollowService.follow(self, user, 'created')
# notify users following the map creator
end

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class Mapping < ApplicationRecord
scope :topicmapping, -> { where(mappable_type: :Topic) }
scope :synapsemapping, -> { where(mappable_type: :Synapse) }
@ -24,7 +25,7 @@ class Mapping < ApplicationRecord
end
def as_json(_options = {})
super(methods: [:user_name, :user_image])
super(methods: %i(user_name user_image))
end
def after_created

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class Message < ApplicationRecord
belongs_to :user
belongs_to :resource, polymorphic: true
@ -8,13 +9,12 @@ class Message < ApplicationRecord
after_create :after_created
# after_create :after_created_async
def user_image
user.image.url
end
def as_json(_options = {})
json = super(methods: [:user_name, :user_image])
json = super(methods: %i(user_name user_image))
json
end

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class Metacode < ApplicationRecord
has_many :in_metacode_sets
has_many :metacode_sets, through: :in_metacode_sets

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class MetacodeSet < ApplicationRecord
belongs_to :user
has_many :in_metacode_sets

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class PermittedParams < Struct.new(:params)
%w(map synapse topic mapping token).each do |kind|
define_method(kind) do
@ -15,18 +16,18 @@ class PermittedParams < Struct.new(:params)
end
def map_attributes
[:name, :desc, :permission, :arranged]
%i(name desc permission arranged)
end
def synapse_attributes
[:desc, :category, :weight, :permission, :topic1_id, :topic2_id]
%i(desc category weight permission topic1_id topic2_id)
end
def topic_attributes
[:name, :desc, :link, :permission, :metacode_id]
%i(name desc link permission metacode_id)
end
def mapping_attributes
[:xloc, :yloc, :map_id, :mappable_type, :mappable_id]
%i(xloc yloc map_id mappable_type mappable_id)
end
end

View file

@ -1,5 +1,6 @@
# frozen_string_literal: true
class Star < ActiveRecord::Base
class Star < ApplicationRecord
belongs_to :user
belongs_to :map
validates :map, uniqueness: { scope: :user, message: 'You have already starred this map' }

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class Synapse < ApplicationRecord
ATTRS_TO_WATCH = %w(desc category permission defer_to_map_id).freeze
@ -38,7 +39,7 @@ class Synapse < ApplicationRecord
def collaborator_ids
if defer_to_map
defer_to_map.editors.select { |mapper| mapper != user }.map(&:id)
defer_to_map.editors.reject { |mapper| mapper == user }.map(&:id)
else
[]
end
@ -54,7 +55,7 @@ class Synapse < ApplicationRecord
end
def as_json(_options = {})
super(methods: [:user_name, :user_image, :collaborator_ids])
super(methods: %i(user_name user_image collaborator_ids))
end
def as_rdf

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class Token < ApplicationRecord
belongs_to :user

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class Topic < ApplicationRecord
ATTRS_TO_WATCH = %w(name desc link metacode_id permission defer_to_map_id).freeze
include TopicsHelper
@ -16,7 +17,7 @@ class Topic < ApplicationRecord
has_many :mappings, as: :mappable, dependent: :destroy
has_many :maps, through: :mappings
has_many :follows, as: :followed, dependent: :destroy
has_many :followers, :through => :follows, source: :user
has_many :followers, through: :follows, source: :user
belongs_to :metacode
@ -69,7 +70,7 @@ class Topic < ApplicationRecord
end
def as_json(options = {})
super(methods: [:user_name, :user_image, :collaborator_ids])
super(methods: %i(user_name user_image collaborator_ids))
.merge(inmaps: inmaps(options[:user]), inmapsLinks: inmapsLinks(options[:user]),
map_count: map_count(options[:user]), synapse_count: synapse_count(options[:user]))
end
@ -89,7 +90,7 @@ class Topic < ApplicationRecord
def collaborator_ids
if defer_to_map
defer_to_map.editors.select { |mapper| mapper != user }.map(&:id)
defer_to_map.editors.reject { |mapper| mapper == user }.map(&:id)
else
[]
end
@ -156,7 +157,7 @@ class Topic < ApplicationRecord
end
def after_created_async
FollowService.follow(self, self.user, 'created')
FollowService.follow(self, user, 'created')
# notify users following the topic creator
end
handle_asynchronously :after_created_async

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
require 'open-uri'
class User < ApplicationRecord
@ -56,21 +57,19 @@ class User < ApplicationRecord
name: name,
image: image.url(:sixtyfour),
admin: admin }
if (_options[:follows])
if _options[:follows]
json['follows'] = {
topics: following.active.where(followed_type: 'Topic').to_a.map(&:followed_id),
maps: following.active.where(followed_type: 'Map').to_a.map(&:followed_id)
}
end
if (_options[:follow_settings])
json['follow_topic_on_created'] = settings.follow_topic_on_created == "1"
json['follow_topic_on_contributed'] = settings.follow_topic_on_contributed == "1"
json['follow_map_on_created'] = settings.follow_map_on_created == "1"
json['follow_map_on_contributed'] = settings.follow_map_on_contributed == "1"
end
if (_options[:email])
json['email'] = email
if _options[:follow_settings]
json['follow_topic_on_created'] = settings.follow_topic_on_created == '1'
json['follow_topic_on_contributed'] = settings.follow_topic_on_contributed == '1'
json['follow_map_on_created'] = settings.follow_map_on_created == '1'
json['follow_map_on_contributed'] = settings.follow_map_on_contributed == '1'
end
json['email'] = email if _options[:email]
json
end
@ -134,7 +133,7 @@ class User < ApplicationRecord
def has_map_open(map)
latestEvent = Event.where(map: map, user: self)
.where(kind: ['user_present_on_map', 'user_not_present_on_map'])
.where(kind: %w(user_present_on_map user_not_present_on_map))
.order(:created_at)
.last
latestEvent && latestEvent.kind == 'user_present_on_map'
@ -146,7 +145,7 @@ class User < ApplicationRecord
def settings
self[:settings] = UserPreference.new if self[:settings].nil?
if not self[:settings].respond_to?(:follow_topic_on_created)
unless self[:settings].respond_to?(:follow_topic_on_created)
self[:settings].initialize_follow_settings
end
self[:settings]

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class UserMap < ApplicationRecord
belongs_to :map
belongs_to :user
@ -18,7 +19,7 @@ class UserMap < ApplicationRecord
def after_created_async
FollowService.follow(map, user, 'shared_on')
if access_request
NotificationService.access_approved(self.access_request)
NotificationService.access_approved(access_request)
else
NotificationService.invite_to_edit(self)
end

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class UserPreference
attr_accessor :metacodes, :metacode_focus, :follow_topic_on_created, :follow_topic_on_contributed,
:follow_map_on_created, :follow_map_on_contributed

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class Webhook < ApplicationRecord
belongs_to :hookable, polymorphic: true

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
Webhooks::Slack::Base = Struct.new(:webhook, :event) do
include Routing

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class Webhooks::Slack::ConversationStartedOnMap < Webhooks::Slack::Base
def text
"There is a live conversation starting on map *#{event.map.name}*. #{view_map_on_metamaps('Join in!')}"

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class Webhooks::Slack::SynapseAddedToMap < Webhooks::Slack::Base
def text
connector = eventable.desc.empty? ? '->' : eventable.desc

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class Webhooks::Slack::SynapseRemovedFromMap < Webhooks::Slack::Base
def text
connector = eventable.desc.empty? ? '->' : eventable.desc

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class Webhooks::Slack::TopicAddedToMap < Webhooks::Slack::Base
def text
"*#{eventable.name}* was added by *#{event.user.name}* to the map *#{view_map_on_metamaps}*"

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class Webhooks::Slack::TopicMovedOnMap < Webhooks::Slack::Base
def text
"*#{eventable.name}* was moved by *#{event.user.name}* on the map *#{view_map_on_metamaps}*"

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class Webhooks::Slack::TopicRemovedFromMap < Webhooks::Slack::Base
def text
"*#{eventable.name}* was removed by *#{event.user.name}* from the map *#{view_map_on_metamaps}*"

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class Webhooks::Slack::UserPresentOnMap < Webhooks::Slack::Base
def text
"Mapper *#{event.user.name}* has joined the map *#{event.map.name}*. #{view_map_on_metamaps('Map with them')}"

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class ApplicationPolicy
attr_reader :user, :record

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class ExplorePolicy < ApplicationPolicy
def active?
true

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
class HackPolicy < ApplicationPolicy
def load_url_title?
true

Some files were not shown because too many files have changed in this diff Show more