Sha256: 6ac56a107ba74edbcf50f4246be6c9dfea8c94ad3189bf4ba9be4802d0bafb7b

Contents?: true

Size: 1.15 KB

Versions: 22

Compression:

Stored size: 1.15 KB

Contents

require 'zip/zip'

module Dugway
  module Cli
    class Build < Thor::Group
      include Thor::Actions

      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?
          theme.errors.each { |error| say(error, :red) }
          raise "Theme is invalid"
        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

22 entries across 22 versions & 1 rubygems

Version Path
dugway-1.0.10 lib/dugway/cli/build.rb
dugway-1.0.9 lib/dugway/cli/build.rb
dugway-1.0.8 lib/dugway/cli/build.rb
dugway-1.0.7 lib/dugway/cli/build.rb
dugway-1.0.6 lib/dugway/cli/build.rb
dugway-1.0.5 lib/dugway/cli/build.rb
dugway-1.0.4 lib/dugway/cli/build.rb
dugway-1.0.3 lib/dugway/cli/build.rb
dugway-1.0.2 lib/dugway/cli/build.rb
dugway-1.0.1 lib/dugway/cli/build.rb
dugway-1.0.0 lib/dugway/cli/build.rb
dugway-0.12.3 lib/dugway/cli/build.rb
dugway-0.12.2 lib/dugway/cli/build.rb
dugway-0.12.1 lib/dugway/cli/build.rb
dugway-0.12.0 lib/dugway/cli/build.rb
dugway-0.11.4 lib/dugway/cli/build.rb
dugway-0.11.3 lib/dugway/cli/build.rb
dugway-0.11.2 lib/dugway/cli/build.rb
dugway-0.11.1 lib/dugway/cli/build.rb
dugway-0.11.0 lib/dugway/cli/build.rb