Class: Jekyll::RemoteTheme::Theme

Inherits:
Theme
  • Object
show all
Defined in:
lib/jekyll-remote-theme/theme.rb

Constant Summary collapse

OWNER_REGEX =
%r!(?<owner>[a-z0-9\-]+)!i
NAME_REGEX =
%r!(?<name>[a-z0-9\._\-]+)!i
REF_REGEX =

May be a branch, tag, or commit

%r!@(?<ref>[a-z0-9\._\-]+)!i
THEME_REGEX =
%r!\A#{OWNER_REGEX}/#{NAME_REGEX}(?:#{REF_REGEX})?\z!i

Instance Method Summary collapse

Constructor Details

#initialize(raw_theme) ⇒ Theme

Initializes a new Jekyll::RemoteTheme::Theme

raw_theme can be in the form of:

  1. owner/theme-name - a GitHub owner + theme-name string

  2. owner/theme-name@git_ref - a GitHub owner + theme-name + Git ref string



17
18
19
20
# File 'lib/jekyll-remote-theme/theme.rb', line 17

def initialize(raw_theme)
  @raw_theme = raw_theme.to_s.downcase.strip
  super(@raw_theme)
end

Instance Method Details

#git_refObject



39
40
41
# File 'lib/jekyll-remote-theme/theme.rb', line 39

def git_ref
  theme_parts[:ref] || "master"
end

#inspectObject



47
48
49
50
# File 'lib/jekyll-remote-theme/theme.rb', line 47

def inspect
  "#<Jekyll::RemoteTheme::Theme owner=\"#{owner}\" name=\"#{name}\"" \
  " ref=\"#{git_ref}\" root=\"#{root}\">"
end

#nameObject



22
23
24
# File 'lib/jekyll-remote-theme/theme.rb', line 22

def name
  theme_parts[:name]
end

#name_with_ownerObject Also known as: nwo



30
31
32
# File 'lib/jekyll-remote-theme/theme.rb', line 30

def name_with_owner
  [owner, name].join("/")
end

#ownerObject



26
27
28
# File 'lib/jekyll-remote-theme/theme.rb', line 26

def owner
  theme_parts[:owner]
end

#rootObject



43
44
45
# File 'lib/jekyll-remote-theme/theme.rb', line 43

def root
  @root ||= File.realpath Dir.mktmpdir(TEMP_PREFIX)
end

#valid?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/jekyll-remote-theme/theme.rb', line 35

def valid?
  theme_parts && name && owner
end