Sha256: 4f5c6a453caf133fc39c45fe591ba101cd4a6e086f4f1e6c6cf5ae0e2cd524f7
Contents?: true
Size: 1.59 KB
Versions: 3
Compression:
Stored size: 1.59 KB
Contents
require 'zip/zip' module Dugway module Cli class Build < Thor::Group include Thor::Actions class_option 'skip-color-validation', type: :boolean, default: false, desc: "Skip color settings validation" class_option 'skip-layout-attribute-validation', type: :boolean, default: false, desc: "Skip layout file data attribute validation" def self.source_root File.join(Dir.pwd, 'source') end def self.destination_root File.join(Dir.pwd, 'build') end def validate unless theme.valid?(validate_colors: !options['skip-color-validation'], validate_layout_attributes: !options['skip-layout-attribute-validation']) theme.errors.each { |error| say(error, :red) } say("\nTheme is invalid", :red) exit(1) end end def create_destination empty_directory self.class.destination_root end def build Zip::ZipFile.open(build_file, Zip::ZipFile::CREATE) do |zipfile| theme.files.each do |file| zipfile.get_output_stream(file) do |f| f << theme.build_file(file) end end end end def success say_status(:create, "build/#{ build_name }") end private def theme @theme ||= Dugway.theme end def build_name @build_name ||= "#{ theme.name.parameterize }-#{ theme.version }.zip" end def build_file @build_file ||= File.join(self.class.destination_root, build_name) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
dugway-1.0.14 | lib/dugway/cli/build.rb |
dugway-1.0.13 | lib/dugway/cli/build.rb |
dugway-1.0.12 | lib/dugway/cli/build.rb |