Sha256: e7329a01d28b1467ad3b12785662903077481d29e4d54e55b84d8405bfa85bb6

Contents?: true

Size: 1.11 KB

Versions: 1

Compression:

Stored size: 1.11 KB

Contents

class Primo
  class Template

    attr_accessor :filename, :remote

    def self.for display_name
      remote_name, name = display_name.split("-")
      remote = Primo::Remote.new(remote_name)
      filename = "#{name}.rb"
      Primo::Template.new filename, remote
    end

    def self.list
      Primo::Remote.list.map do |name, url|
        Primo::Remote.new(name).templates
      end.flatten
    end

    def self.exists? display_name
      Primo::Template.list.map{|tp| tp.display_name}.include? display_name
    end

    def self.default
      Primo::Config.instance["default"]
    end

    def self.default= value
      raise ArgumentError, "No such template found" unless Primo::Template.exists?(value)
      Primo::Config.instance["default"] = value
    end

    def initialize filename, remote
      @filename = filename
      @remote = remote
    end

    def display_name
      "#{remote.name}-#{name}"
    end

    def name
      filename[0..-4]
    end

    def expanded_filename
      "#{Primo::Remote::DIRECTORY}/#{remote.name}/#{filename}"
    end

    def read
      File.read(expanded_filename)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
primo-0.1.0 lib/primo/template.rb