gitlab-org--gitlab-foss/lib/gitlab/project_template.rb

48 lines
956 B
Ruby
Raw Normal View History

module Gitlab
class ProjectTemplate
attr_reader :title, :name
def initialize(name, title)
@name, @title = name, title
end
alias_method :logo, :name
def file
archive_path.open
end
def archive_path
Rails.root.join("vendor/project_templates/#{name}.tar.gz")
end
def clone_url
"https://gitlab.com/gitlab-org/project-templates/#{name}.git"
end
def ==(other)
name == other.name && title == other.title
end
TEMPLATES_TABLE = [
ProjectTemplate.new('rails', 'Ruby on Rails'),
ProjectTemplate.new('spring', 'Spring'),
ProjectTemplate.new('express', 'NodeJS Express')
].freeze
class << self
def all
TEMPLATES_TABLE
end
def find(name)
all.find { |template| template.name == name.to_s }
end
def archive_directory
Rails.root.join("vendor_directory/project_templates")
end
end
end
end