Sha256: 49cefc6fae408b4a0b9992f234b9c1ec3c03a81c854a1fd4c02bb61f52196d0f

Contents?: true

Size: 1.18 KB

Versions: 4

Compression:

Stored size: 1.18 KB

Contents

require_relative "base"

module Suspenders
  class StylelintGenerator < Generators::Base
    def install_stylelint
      dependencies = [
        { name: "stylelint", version: '10' }, # FIXME: config-recommened is not ready for stylelint 11 yet
        { name: "stylelint-config-recommended" },
        { name: "stylelint-order" },
        { name: "stylelint-declaration-block-no-ignored-properties" },
        { name: "stylelint-scss" }
      ]
      action YarnInstall.new(self, dependencies, "--dev")
    end

    def copy_stylelint_config
      copy_file "stylelintrc.json", ".stylelintrc.json"
    end

    class YarnInstall
      def initialize(base, dependencies, flags)
        @base = base
        @dependencies = dependencies
        @flags = flags
      end

      def invoke!
        dependencies_with_versions = @dependencies.map { |d| d[:version] ? "#{d[:name]}@#{d[:version]}" : d[:name] }.join(' ')
        @base.run "bin/yarn add #{dependencies_with_versions} #{@flags}"
      end

      def revoke!
        @base.behavior = :invoke
        @base.run "bin/yarn remove #{@dependencies.map { |d| d[:name] }.join(' ')}"
      ensure
        @base.behavior = :revoke
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
welaika-suspenders-3.0 lib/suspenders/generators/stylelint_generator.rb
welaika-suspenders-2.36 lib/suspenders/generators/stylelint_generator.rb
welaika-suspenders-2.35 lib/suspenders/generators/stylelint_generator.rb
welaika-suspenders-2.34 lib/suspenders/generators/stylelint_generator.rb