summaryrefslogtreecommitdiff
path: root/app/models
diff options
context:
space:
mode:
authorNihad Abbasov <narkoz.2008@gmail.com>2012-09-26 23:20:36 -0700
committerNihad Abbasov <narkoz.2008@gmail.com>2012-09-27 02:05:53 -0700
commit841e4fbd08d2d642c127506001a76a973ea3d536 (patch)
tree56a894ecdf3978bc3032daa8fae294dad897018d /app/models
parent2a4359a572c123d117988487f9bb29f4ae176ceb (diff)
downloadgitlab-ce-841e4fbd08d2d642c127506001a76a973ea3d536.tar.gz
cosmetical cleanup of models
Diffstat (limited to 'app/models')
-rw-r--r--app/models/ability.rb1
-rw-r--r--app/models/commit.rb24
-rw-r--r--app/models/event.rb11
-rw-r--r--app/models/issue.rb5
-rw-r--r--app/models/key.rb16
-rw-r--r--app/models/merge_request.rb5
-rw-r--r--app/models/milestone.rb31
-rw-r--r--app/models/note.rb40
-rw-r--r--app/models/project.rb42
-rw-r--r--app/models/project_hook.rb8
-rw-r--r--app/models/protected_branch.rb5
-rw-r--r--app/models/snippet.rb25
-rw-r--r--app/models/system_hook.rb26
-rw-r--r--app/models/tree.rb12
-rw-r--r--app/models/user.rb63
-rw-r--r--app/models/users_project.rb2
-rw-r--r--app/models/web_hook.rb14
-rw-r--r--app/models/wiki.rb2
18 files changed, 107 insertions, 225 deletions
diff --git a/app/models/ability.rb b/app/models/ability.rb
index d65695a2079..20ded59b511 100644
--- a/app/models/ability.rb
+++ b/app/models/ability.rb
@@ -52,7 +52,6 @@ class Ability
:admin_wiki
] if project.master_access_for?(user) || project.owner == user
-
rules.flatten
end
diff --git a/app/models/commit.rb b/app/models/commit.rb
index 73583e9e7b7..aba21762126 100644
--- a/app/models/commit.rb
+++ b/app/models/commit.rb
@@ -4,24 +4,11 @@ class Commit
include StaticModel
extend ActiveModel::Naming
- attr_accessor :commit
- attr_accessor :head
- attr_accessor :refs
-
- delegate :message,
- :authored_date,
- :committed_date,
- :parents,
- :sha,
- :date,
- :committer,
- :author,
- :message,
- :diffs,
- :tree,
- :id,
- :to_patch,
- to: :commit
+ attr_accessor :commit, :head, :refs
+
+ delegate :message, :authored_date, :committed_date, :parents, :sha,
+ :date, :committer, :author, :message, :diffs, :tree, :id,
+ :to_patch, to: :commit
class << self
def find_or_first(repo, commit_id = nil, root_ref)
@@ -30,6 +17,7 @@ class Commit
else
repo.commits(root_ref).first
end
+
Commit.new(commit) if commit
end
diff --git a/app/models/event.rb b/app/models/event.rb
index e77afb98acb..43131ad6be4 100644
--- a/app/models/event.rb
+++ b/app/models/event.rb
@@ -16,6 +16,10 @@ class Event < ActiveRecord::Base
Joined = 8 # User joined project
Left = 9 # User left project
+ delegate :name, :email, to: :author, prefix: true, allow_nil: true
+ delegate :title, to: :issue, prefix: true, allow_nil: true
+ delegate :title, to: :merge_request, prefix: true, allow_nil: true
+
belongs_to :project
belongs_to :target, polymorphic: true
@@ -134,12 +138,8 @@ class Event < ActiveRecord::Base
"opened"
end
end
-
-
- delegate :name, :email, to: :author, prefix: true, allow_nil: true
- delegate :title, to: :issue, prefix: true, allow_nil: true
- delegate :title, to: :merge_request, prefix: true, allow_nil: true
end
+
# == Schema Information
#
# Table name: events
@@ -155,4 +155,3 @@ end
# action :integer
# author_id :integer
#
-
diff --git a/app/models/issue.rb b/app/models/issue.rb
index 5e7616d6925..9acee1e5193 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -9,8 +9,7 @@ class Issue < ActiveRecord::Base
belongs_to :milestone
- validates :description,
- length: { within: 0..2000 }
+ validates :description, length: { within: 0..2000 }
def self.open_for(user)
opened.assigned(user)
@@ -32,6 +31,7 @@ class Issue < ActiveRecord::Base
closed_changed? && !closed
end
end
+
# == Schema Information
#
# Table name: issues
@@ -49,4 +49,3 @@ end
# description :text
# milestone_id :integer
#
-
diff --git a/app/models/key.rb b/app/models/key.rb
index eadfcd85cd1..3ef21811c2d 100644
--- a/app/models/key.rb
+++ b/app/models/key.rb
@@ -6,14 +6,10 @@ class Key < ActiveRecord::Base
attr_accessible :key, :title
- validates :title,
- presence: true,
- length: { within: 0..255 }
-
- validates :key,
- presence: true,
- format: { :with => /ssh-.{3} / },
- length: { within: 0..5000 }
+ validates :title, presence: true, length: { within: 0..255 }
+ validates :key, presence: true,
+ length: { within: 0..5000 },
+ format: { :with => /ssh-.{3} / }
before_save :set_identifier
before_validation :strip_white_space
@@ -34,7 +30,7 @@ class Key < ActiveRecord::Base
def set_identifier
if is_deploy_key
- self.identifier = "deploy_" + Digest::MD5.hexdigest(key)
+ self.identifier = "deploy_#{Digest::MD5.hexdigest(key)}"
else
self.identifier = "#{user.identifier}_#{Time.now.to_i}"
end
@@ -57,6 +53,7 @@ class Key < ActiveRecord::Base
Key.where(identifier: identifier).count == 0
end
end
+
# == Schema Information
#
# Table name: keys
@@ -70,4 +67,3 @@ end
# identifier :string(255)
# project_id :integer
#
-
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 1e73276efd2..8428c7c4cc6 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -18,8 +18,7 @@ class MergeRequest < ActiveRecord::Base
attr_accessor :should_remove_source_branch
- validates_presence_of :source_branch
- validates_presence_of :target_branch
+ validates_presence_of :source_branch, :target_branch
validate :validate_branches
def self.find_all_by_branch(branch_name)
@@ -187,6 +186,7 @@ class MergeRequest < ActiveRecord::Base
patch_path
end
end
+
# == Schema Information
#
# Table name: merge_requests
@@ -206,4 +206,3 @@ end
# merged :boolean default(FALSE), not null
# state :integer default(1), not null
#
-
diff --git a/app/models/milestone.rb b/app/models/milestone.rb
index 9014647c126..da54ac402df 100644
--- a/app/models/milestone.rb
+++ b/app/models/milestone.rb
@@ -1,25 +1,10 @@
-# == Schema Information
-#
-# Table name: milestones
-#
-# id :integer not null, primary key
-# title :string(255) not null
-# project_id :integer not null
-# description :text
-# due_date :date
-# closed :boolean default(FALSE), not null
-# created_at :datetime not null
-# updated_at :datetime not null
-#
-
class Milestone < ActiveRecord::Base
attr_accessible :title, :description, :due_date, :closed
belongs_to :project
has_many :issues
- validates_presence_of :project_id
- validates_presence_of :title
+ validates_presence_of :title, :project_id
def self.active
where("due_date > ? OR due_date IS NULL", Date.today)
@@ -39,3 +24,17 @@ class Milestone < ActiveRecord::Base
"expires at #{due_date.stamp("Aug 21, 2011")}" if due_date
end
end
+
+# == Schema Information
+#
+# Table name: milestones
+#
+# id :integer not null, primary key
+# title :string(255) not null
+# project_id :integer not null
+# description :text
+# due_date :date
+# closed :boolean default(FALSE), not null
+# created_at :datetime not null
+# updated_at :datetime not null
+#
diff --git a/app/models/note.rb b/app/models/note.rb
index 849139701d4..23ced536b67 100644
--- a/app/models/note.rb
+++ b/app/models/note.rb
@@ -2,39 +2,26 @@ require 'carrierwave/orm/activerecord'
require 'file_size_validator'
class Note < ActiveRecord::Base
+ mount_uploader :attachment, AttachmentUploader
attr_accessible :note, :noteable, :noteable_id, :noteable_type, :project_id,
:attachment, :line_code
belongs_to :project
belongs_to :noteable, polymorphic: true
- belongs_to :author,
- class_name: "User"
+ belongs_to :author, class_name: "User"
- delegate :name,
- to: :project,
- prefix: true
-
- delegate :name,
- :email,
- to: :author,
- prefix: true
+ delegate :name, to: :project, prefix: true
+ delegate :name, :email, to: :author, prefix: true
attr_accessor :notify
attr_accessor :notify_author
validates_presence_of :project
- validates :note,
- presence: true,
- length: { within: 0..5000 }
-
- validates :attachment,
- file_size: {
- maximum: 10.megabytes.to_i
- }
+ validates :note, presence: true, length: { within: 0..5000 }
+ validates :attachment, file_size: { maximum: 10.megabytes.to_i }
scope :common, where(noteable_id: nil)
-
scope :today, where("created_at >= :date", date: Date.today)
scope :last_week, where("created_at >= :date", date: (Date.today - 7.days))
scope :since, lambda { |day| where("created_at >= :date", date: (day)) }
@@ -42,14 +29,13 @@ class Note < ActiveRecord::Base
scope :inc_author_project, includes(:project, :author)
scope :inc_author, includes(:author)
- mount_uploader :attachment, AttachmentUploader
-
def self.create_status_change_note(noteable, author, status)
- create({ noteable: noteable,
- project: noteable.project,
- author: author,
- note: "_Status changed to #{status}_" },
- without_protection: true)
+ create({
+ noteable: noteable,
+ project: noteable.project,
+ author: author,
+ note: "_Status changed to #{status}_"
+ }, without_protection: true)
end
def notify
@@ -114,6 +100,7 @@ class Note < ActiveRecord::Base
note.start_with?('-1') || note.start_with?(':-1:')
end
end
+
# == Schema Information
#
# Table name: notes
@@ -129,4 +116,3 @@ end
# attachment :string(255)
# line_code :string(255)
#
-
diff --git a/app/models/project.rb b/app/models/project.rb
index 39e2bb25ae3..0652d187ddd 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -8,10 +8,9 @@ class Project < ActiveRecord::Base
attr_accessible :name, :path, :description, :code, :default_branch, :issues_enabled,
:wall_enabled, :merge_requests_enabled, :wiki_enabled
+ attr_accessor :error_code
- #
# Relations
- #
belongs_to :owner, class_name: "User"
has_many :users, through: :users_projects
has_many :events, dependent: :destroy
@@ -26,11 +25,7 @@ class Project < ActiveRecord::Base
has_many :wikis, dependent: :destroy
has_many :protected_branches, dependent: :destroy
- attr_accessor :error_code
-
- #
# Scopes
- #
scope :public_only, where(private_flag: false)
scope :without_user, lambda { |user| where("id not in (:ids)", ids: user.projects.map(&:id) ) }
@@ -47,7 +42,6 @@ class Project < ActiveRecord::Base
Project.transaction do
project.owner = user
-
project.save!
# Add user as project master
@@ -76,36 +70,19 @@ class Project < ActiveRecord::Base
id && valid?
end
- #
# Validations
- #
- validates :name,
- uniqueness: true,
- presence: true,
- length: { within: 0..255 }
-
- validates :path,
- uniqueness: true,
- presence: true,
+ validates :owner, presence: true
+ validates :description, length: { within: 0..2000 }
+ validates :name, uniqueness: true, presence: true, length: { within: 0..255 }
+ validates :path, uniqueness: true, presence: true, length: { within: 0..255 },
format: { with: /^[a-zA-Z][a-zA-Z0-9_\-\.]*$/,
- message: "only letters, digits & '_' '-' '.' allowed. Letter should be first" },
- length: { within: 0..255 }
-
- validates :description,
- length: { within: 0..2000 }
-
- validates :code,
- presence: true,
- uniqueness: true,
+ message: "only letters, digits & '_' '-' '.' allowed. Letter should be first" }
+ validates :code, presence: true, uniqueness: true, length: { within: 1..255 },
format: { with: /^[a-zA-Z][a-zA-Z0-9_\-\.]*$/,
- message: "only letters, digits & '_' '-' '.' allowed. Letter should be first" },
- length: { within: 1..255 }
-
- validates :owner, presence: true
+ message: "only letters, digits & '_' '-' '.' allowed. Letter should be first" }
validates :issues_enabled, :wall_enabled, :merge_requests_enabled,
:wiki_enabled, inclusion: { in: [true, false] }
- validate :check_limit
- validate :repo_name
+ validate :check_limit, :repo_name
def check_limit
unless owner.can_create_project?
@@ -197,4 +174,3 @@ end
# merge_requests_enabled :boolean default(TRUE), not null
# wiki_enabled :boolean default(TRUE), not null
#
-
diff --git a/app/models/project_hook.rb b/app/models/project_hook.rb
index e7a05d57f1c..5a59ebe924d 100644
--- a/app/models/project_hook.rb
+++ b/app/models/project_hook.rb
@@ -1,3 +1,7 @@
+class ProjectHook < WebHook
+ belongs_to :project
+end
+
# == Schema Information
#
# Table name: web_hooks
@@ -9,7 +13,3 @@
# updated_at :datetime not null
# type :string(255) default("ProjectHook")
#
-
-class ProjectHook < WebHook
- belongs_to :project
-end
diff --git a/app/models/protected_branch.rb b/app/models/protected_branch.rb
index 421828645c0..c9e88d6bff6 100644
--- a/app/models/protected_branch.rb
+++ b/app/models/protected_branch.rb
@@ -4,8 +4,7 @@ class ProtectedBranch < ActiveRecord::Base
attr_accessible :name
belongs_to :project
- validates_presence_of :project_id
- validates_presence_of :name
+ validates_presence_of :name, :project_id
after_save :update_repository
after_destroy :update_repository
@@ -18,6 +17,7 @@ class ProtectedBranch < ActiveRecord::Base
project.commit(self.name)
end
end
+
# == Schema Information
#
# Table name: protected_branches
@@ -28,4 +28,3 @@ end
# created_at :datetime not null
# updated_at :datetime not null
#
-
diff --git a/app/models/snippet.rb b/app/models/snippet.rb
index 10e376454b1..b37d6bef139 100644
--- a/app/models/snippet.rb
+++ b/app/models/snippet.rb
@@ -7,25 +7,12 @@ class Snippet < ActiveRecord::Base
belongs_to :author, class_name: "User"
has_many :notes, as: :noteable, dependent: :destroy
- delegate :name,
- :email,
- to: :author,
- prefix: true
+ delegate :name, :email, to: :author, prefix: true
- validates_presence_of :project_id
- validates_presence_of :author_id
-
- validates :title,
- presence: true,
- length: { within: 0..255 }
-
- validates :file_name,
- presence: true,
- length: { within: 0..255 }
-
- validates :content,
- presence: true,
- length: { within: 0..10000 }
+ validates_presence_of :author_id, :project_id
+ validates :title, presence: true, length: { within: 0..255 }
+ validates :file_name, presence: true, length: { within: 0..255 }
+ validates :content, presence: true, length: { within: 0..10000 }
scope :fresh, order("created_at DESC")
scope :non_expired, where(["expires_at IS NULL OR expires_at > ?", Time.current])
@@ -59,6 +46,7 @@ class Snippet < ActiveRecord::Base
expires_at && expires_at < Time.current
end
end
+
# == Schema Information
#
# Table name: snippets
@@ -73,4 +61,3 @@ end
# file_name :string(255)
# expires_at :datetime
#
-
diff --git a/app/models/system_hook.rb b/app/models/system_hook.rb
index 89c69fce83d..376f336d37a 100644
--- a/app/models/system_hook.rb
+++ b/app/models/system_hook.rb
@@ -1,17 +1,4 @@
-# == Schema Information
-#
-# Table name: web_hooks
-#
-# id :integer not null, primary key
-# url :string(255)
-# project_id :integer
-# created_at :datetime not null
-# updated_at :datetime not null
-# type :string(255) default("ProjectHook")
-#
-
class SystemHook < WebHook
-
def async_execute(data)
Resque.enqueue(SystemHookWorker, id, data)
end
@@ -21,5 +8,16 @@ class SystemHook < WebHook
sh.async_execute data
end
end
-
end
+
+# == Schema Information
+#
+# Table name: web_hooks
+#
+# id :integer not null, primary key
+# url :string(255)
+# project_id :integer
+# created_at :datetime not null
+# updated_at :datetime not null
+# type :string(255) default("ProjectHook")
+#
diff --git a/app/models/tree.rb b/app/models/tree.rb
index 88e8f2f4663..e4297a71a52 100644
--- a/app/models/tree.rb
+++ b/app/models/tree.rb
@@ -2,16 +2,8 @@ class Tree
include Linguist::BlobHelper
attr_accessor :path, :tree, :project, :ref
- delegate :contents,
- :basename,
- :name,
- :data,
- :mime_type,
- :mode,
- :size,
- :text?,
- :colorize,
- to: :tree
+ delegate :contents, :basename, :name, :data, :mime_type,
+ :mode, :size, :text?, :colorize, to: :tree
def initialize(raw_tree, project, ref = nil, path = nil)
@project, @ref, @path = project, ref, path
diff --git a/app/models/user.rb b/app/models/user.rb
index f33f01fd72b..bed568effdc 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -1,64 +1,31 @@
class User < ActiveRecord::Base
-
include Account
devise :database_authenticatable, :token_authenticatable, :lockable,
:recoverable, :rememberable, :trackable, :validatable, :omniauthable
- attr_accessible :email, :password, :password_confirmation, :remember_me, :bio,
- :name, :skype, :linkedin, :twitter, :dark_scheme,
- :theme_id, :force_random_password, :extern_uid, :provider, :as => [:default, :admin]
+ attr_accessible :email, :password, :password_confirmation, :remember_me, :bio, :name,
+ :skype, :linkedin, :twitter, :dark_scheme, :theme_id, :force_random_password,
+ :extern_uid, :provider, :as => [:default, :admin]
attr_accessible :projects_limit, :as => :admin
attr_accessor :force_random_password
- has_many :users_projects, dependent: :destroy
+ has_many :keys, dependent: :destroy
has_many :projects, through: :users_projects
+ has_many :users_projects, dependent: :destroy
+ has_many :issues, foreign_key: :author_id, dependent: :destroy
+ has_many :notes, foreign_key: :author_id, dependent: :destroy
+ has_many :merge_requests, foreign_key: :author_id, dependent: :destroy
has_many :my_own_projects, class_name: "Project", foreign_key: :owner_id
- has_many :keys, dependent: :destroy
-
- has_many :events,
- class_name: "Event",
- foreign_key: :author_id,
- dependent: :destroy
-
- has_many :recent_events,
- class_name: "Event",
- foreign_key: :author_id,
- order: "id DESC"
-
- has_many :issues,
- foreign_key: :author_id,
- dependent: :destroy
-
- has_many :notes,
- foreign_key: :author_id,
- dependent: :destroy
-
- has_many :assigned_issues,
- class_name: "Issue",
- foreign_key: :assignee_id,
- dependent: :destroy
-
- has_many :merge_requests,
- foreign_key: :author_id,
- dependent: :destroy
-
- has_many :assigned_merge_requests,
- class_name: "MergeRequest",
- foreign_key: :assignee_id,
- dependent: :destroy
-
- validates :projects_limit,
- presence: true,
- numericality: {greater_than_or_equal_to: 0}
+ has_many :events, class_name: "Event", foreign_key: :author_id, dependent: :destroy
+ has_many :recent_events, class_name: "Event", foreign_key: :author_id, order: "id DESC"
+ has_many :assigned_issues, class_name: "Issue", foreign_key: :assignee_id, dependent: :destroy
+ has_many :assigned_merge_requests, class_name: "MergeRequest", foreign_key: :assignee_id, dependent: :destroy
validates :bio, length: { within: 0..255 }
-
validates :extern_uid, :allow_blank => true, :uniqueness => {:scope => :provider}
-
- before_save :ensure_authentication_token
- alias_attribute :private_token, :authentication_token
+ validates :projects_limit, presence: true, numericality: {greater_than_or_equal_to: 0}
scope :not_in_project, lambda { |project| where("id not in (:ids)", ids: project.users.map(&:id) ) }
scope :admins, where(admin: true)
@@ -66,6 +33,8 @@ class User < ActiveRecord::Base
scope :active, where(blocked: false)
before_validation :generate_password, on: :create
+ before_save :ensure_authentication_token
+ alias_attribute :private_token, :authentication_token
def generate_password
if self.force_random_password
@@ -107,6 +76,7 @@ class User < ActiveRecord::Base
where("name like :query or email like :query", query: "%#{query}%")
end
end
+
# == Schema Information
#
# Table name: users
@@ -140,4 +110,3 @@ end
# extern_uid :string(255)
# provider :string(255)
#
-
diff --git a/app/models/users_project.rb b/app/models/users_project.rb
index 171bf2bba83..510b90cb9da 100644
--- a/app/models/users_project.rb
+++ b/app/models/users_project.rb
@@ -88,6 +88,7 @@ class UsersProject < ActiveRecord::Base
self.class.access_roles.invert[self.project_access]
end
end
+
# == Schema Information
#
# Table name: users_projects
@@ -99,4 +100,3 @@ end
# updated_at :datetime not null
# project_access :integer default(0), not null
#
-
diff --git a/app/models/web_hook.rb b/app/models/web_hook.rb
index b2e481e65ea..edfab8861ca 100644
--- a/app/models/web_hook.rb
+++ b/app/models/web_hook.rb
@@ -6,26 +6,23 @@ class WebHook < ActiveRecord::Base
# HTTParty timeout
default_timeout 10
- validates :url,
- presence: true,
- format: {
- with: URI::regexp(%w(http https)),
- message: "should be a valid url" }
+ validates :url, presence: true,
+ format: { with: URI::regexp(%w(http https)), message: "should be a valid url" }
def execute(data)
parsed_url = URI.parse(url)
if parsed_url.userinfo.blank?
WebHook.post(url, body: data.to_json, headers: { "Content-Type" => "application/json" })
else
- post_url = url.gsub(parsed_url.userinfo+"@", "")
+ post_url = url.gsub("#{parsed_url.userinfo}@", "")
WebHook.post(post_url,
body: data.to_json,
- headers: { "Content-Type" => "application/json" },
+ headers: {"Content-Type" => "application/json"},
basic_auth: {username: parsed_url.user, password: parsed_url.password})
end
end
-
end
+
# == Schema Information
#
# Table name: web_hooks
@@ -37,4 +34,3 @@ end
# updated_at :datetime not null
# type :string(255) default("ProjectHook")
#
-
diff --git a/app/models/wiki.rb b/app/models/wiki.rb
index a81a151bca7..c87ac89e503 100644
--- a/app/models/wiki.rb
+++ b/app/models/wiki.rb
@@ -32,6 +32,7 @@ class Wiki < ActiveRecord::Base
end
end
end
+
# == Schema Information
#
# Table name: wikis
@@ -45,4 +46,3 @@ end
# slug :string(255)
# user_id :integer
#
-