Class: Rugular::Build

Inherits:
Thor::Group
  • Object
show all
Includes:
Thor::Actions
Defined in:
lib/rugular/tasks/build.rb

Instance Method Summary collapse

Instance Method Details

#add_template_application_sass_fileObject



61
62
63
64
65
66
# File 'lib/rugular/tasks/build.rb', line 61

def add_template_application_sass_file
  FileUtils.cp(
    "#{lib_directory}/templates/server/application.sass",
    "#{destination_root}/.application.sass"
  )
end

#compile_bower_javascriptObject



25
26
27
28
29
# File 'lib/rugular/tasks/build.rb', line 25

def compile_bower_javascript
  File.open('dist/vendor.js', 'w') do |file|
    file.write(Uglifier.compile(bower_and_vendor_javascript))
  end
end

#compile_bower_stylesheetsObject



31
32
33
34
35
# File 'lib/rugular/tasks/build.rb', line 31

def compile_bower_stylesheets
  File.open('dist/vendor.css', 'w') do |file|
    file.write bower_css
  end
end

#copy_fontsObject



76
77
78
# File 'lib/rugular/tasks/build.rb', line 76

def copy_fonts
  FileUtils.cp_r('src/fonts', 'dist')
end

#copy_imagesObject



72
73
74
# File 'lib/rugular/tasks/build.rb', line 72

def copy_images
  FileUtils.cp_r('src/images', 'dist')
end

#create_application_css_fileObject



68
69
70
# File 'lib/rugular/tasks/build.rb', line 68

def create_application_css_file
  `sass .application.sass dist/application.css -r sass-globbing`
end

#create_application_js_fileObject



37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/rugular/tasks/build.rb', line 37

def create_application_js_file
  File.open('dist/application.js', 'w') do |file|
    file.write(
      Uglifier.compile(
        javascript_files.map do |file|
          text = File.read(file).gsub('templateUrl', 'template')
          CoffeeScript.compile(text)
        end.join
      )
    )
  end
end

#create_dist_folderObject



15
16
17
# File 'lib/rugular/tasks/build.rb', line 15

def create_dist_folder
  FileUtils.mkdir_p('./dist') unless File.directory? './dist'
end

#inline_template_url_filesObject



50
51
52
53
54
55
56
57
58
59
# File 'lib/rugular/tasks/build.rb', line 50

def inline_template_url_files
  (Dir.glob("**/*.haml") - ["src/index.haml"]).each do |haml_file|
    haml_html = ::Haml::Engine.new(File.read(haml_file), {}).render
    html = haml_html.tr("\n", '').gsub("'", "\'").gsub('"', '\"')
    html_filename = haml_file.gsub('src/', '').gsub('haml', 'html')
    IO.write('dist/application.js', File.open('dist/application.js') do |f|
      f.read.gsub(html_filename, html)
    end)
  end
end

#write_dist_index_html_fileObject



19
20
21
22
23
# File 'lib/rugular/tasks/build.rb', line 19

def write_dist_index_html_file
  File.open('dist/index.html', 'w') do |file|
    file.write ::Haml::Engine.new(File.read('src/index.haml')).render
  end
end