Class: Jekyll::Stylesheet

Inherits:
Object
  • Object
show all
Includes:
Convertible
Defined in:
lib/jekyll/stylesheet.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Convertible

#content_type, #do_layout, #read_yaml, #to_s, #transform

Constructor Details

#initialize(site, base, dir, name) ⇒ Stylesheet

Initialize a new Page. site is the Site base is the String path to the dir is the String path between and the file name is the String filename of the file

Returns



17
18
19
20
21
22
23
24
25
# File 'lib/jekyll/stylesheet.rb', line 17

def initialize(site, base, dir, name)
  @site = site
  @base = base
  @dir  = dir
  @name = name

  self.process(name)
  self.content = File.read(File.join(File.join(base, dir), name))
end

Instance Attribute Details

#basenameObject

Returns the value of attribute basename.



7
8
9
# File 'lib/jekyll/stylesheet.rb', line 7

def basename
  @basename
end

#contentObject

Returns the value of attribute content.



8
9
10
# File 'lib/jekyll/stylesheet.rb', line 8

def content
  @content
end

#dataObject

Returns the value of attribute data.



8
9
10
# File 'lib/jekyll/stylesheet.rb', line 8

def data
  @data
end

#extObject

Returns the value of attribute ext.



7
8
9
# File 'lib/jekyll/stylesheet.rb', line 7

def ext
  @ext
end

#nameObject

Returns the value of attribute name.



7
8
9
# File 'lib/jekyll/stylesheet.rb', line 7

def name
  @name
end

#outputObject

Returns the value of attribute output.



8
9
10
# File 'lib/jekyll/stylesheet.rb', line 8

def output
  @output
end

#siteObject

Returns the value of attribute site.



6
7
8
# File 'lib/jekyll/stylesheet.rb', line 6

def site
  @site
end

Instance Method Details

#dirObject

The generated directory into which the page will be placed upon generation. This is derived from the permalink or, if permalink is absent, set to '/'

Returns



32
33
34
# File 'lib/jekyll/stylesheet.rb', line 32

def dir
  url[-1, 1] == '/' ? url : File.dirname(url)
end

#process(name) ⇒ Object

Extract information from the page filename name is the String filename of the page file

Returns nothing



48
49
50
51
# File 'lib/jekyll/stylesheet.rb', line 48

def process(name)
  self.ext = File.extname(name)
  self.basename = name.split('.')[0..-2].first
end

#renderObject

Add any necessary layouts to this post layouts is a Hash of => "layout" site_payload is the site payload hash

Returns nothing



58
59
60
61
62
63
# File 'lib/jekyll/stylesheet.rb', line 58

def render()
  self.transform

  # output keeps track of what will finally be written
  self.output = self.content
end

#urlObject

The generated relative url of this stylesheet e.g. /css/site.css

Returns



40
41
42
# File 'lib/jekyll/stylesheet.rb', line 40

def url
  @url ||= "/css/#{basename}.css"
end

#write(dest_prefix, dest_suffix = nil) ⇒ Object

Write the generated page file to the destination directory. dest_prefix is the String path to the destination dir dest_suffix is a suffix path to the destination dir

Returns nothing



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/jekyll/stylesheet.rb', line 70

def write(dest_prefix, dest_suffix = nil)
  dest = dest_suffix ? File.join(dest_prefix, dest_suffix) : dest_prefix
  FileUtils.mkdir_p(dest)

  # The url needs to be unescaped in order to preserve the correct filename
  path = File.join(dest, CGI.unescape(self.url))
  dirname = File.dirname(path)
  unless File.exists?(dirname)
    FileUtils.mkdir_p(dirname)
  end

  File.open(path, 'w') do |f|
    f.write(self.output)
  end
end