class SmallVictories::Builder

Attributes

config[RW]
folder[RW]

Public Class Methods

new(attributes={}) click to toggle source
# File lib/smallvictories/builder.rb, line 8
def initialize attributes={}
  self.config = attributes[:config]
end

Public Instance Methods

folder_path() click to toggle source
# File lib/smallvictories/builder.rb, line 23
def folder_path
  "#{ROOT}/#{folder}"
end
folder_source_path() click to toggle source
# File lib/smallvictories/builder.rb, line 27
def folder_source_path
  File.join(folder_path, config.source)
end
setup(folder=nil) click to toggle source
# File lib/smallvictories/builder.rb, line 12
def setup folder=nil
  self.folder = "#{folder.chomp("/").reverse.chomp("/").reverse}/" if folder
  setup_directory folder_path
  setup_directory folder_source_path
  setup_config
  setup_guardfile
  setup_stylesheet
  setup_javascript
  setup_html
end

Private Instance Methods

create_src_file(source, destination) click to toggle source
# File lib/smallvictories/builder.rb, line 38
def create_src_file source, destination
  unless File.exists?(destination)
    contents = File.open("#{src_directory}#{source}").read
    File.open(destination, 'w') { |file| file.write(contents) }
    SmallVictories.logger.info "created #{destination}"
  end
end
setup_config() click to toggle source
# File lib/smallvictories/builder.rb, line 53
def setup_config
  d = YAML::load_file(File.join(src_directory, 'config.yml'))
  d['source'] = DEFAULT_SOURCE
  d['destination'] = DEFAULT_DESTINATION
  d['source_stylesheet'] = DEFAULT_SOURCE_STYLESHEET
  d['source_javascript'] = DEFAULT_SOURCE_JAVASCRIPT
  d['destination_stylesheet'] = DEFAULT_DESTINATION_STYLESHEET
  d['destination_javascript'] = DEFAULT_DESTINATION_JAVASCRIPT
  d['layout'] = DEFAULT_LAYOUT
  d['includes'] = DEFAULT_INCLUDES
  File.open(File.join(folder_path, CONFIG_FILE), 'w') {|f| f.write d.to_yaml }
end
setup_directory(path) click to toggle source
# File lib/smallvictories/builder.rb, line 46
def setup_directory path
  unless File.exists?(path)
    Dir.mkdir(path)
    SmallVictories.logger.info "created #{path}"
  end
end
setup_guardfile() click to toggle source
# File lib/smallvictories/builder.rb, line 66
def setup_guardfile
  create_src_file('Guardfile', File.join(folder_path, GUARD_FILE))
end
setup_html() click to toggle source
# File lib/smallvictories/builder.rb, line 78
def setup_html
  setup_directory(File.join(folder_source_path, config.includes))
  create_src_file('head.liquid', File.join(folder_source_path, config.includes, '/_head.liquid'))
  create_src_file('layout.liquid', File.join(folder_source_path, config.layout))
  create_src_file('index.liquid', File.join(folder_source_path, 'index.liquid'))
end
setup_javascript() click to toggle source
# File lib/smallvictories/builder.rb, line 74
def setup_javascript
  create_src_file('javascript.js', File.join(folder_source_path, config.javascripts.first))
end
setup_stylesheet() click to toggle source
# File lib/smallvictories/builder.rb, line 70
def setup_stylesheet
  create_src_file('stylesheet.scss', File.join(folder_source_path, config.stylesheets.first))
end
src_directory() click to toggle source
# File lib/smallvictories/builder.rb, line 33
def src_directory
  spec = Gem::Specification.find_by_name("smallvictories")
  "#{spec.gem_dir}/src/"
end