Sha256: 3466880def19e5b477e214c6748e1cf7335f8c90c70bbda0384287dbf82d7353

Contents?: true

Size: 1.24 KB

Versions: 44

Compression:

Stored size: 1.24 KB

Contents

# frozen_string_literal: true

require 'rake'
require 'rake/tasklib'

module Prettier
  module Rake
    # A Rake task that runs prettier on a set of source files.
    #
    # Example:
    #
    #   require 'prettier/rake/task'
    #
    #   Prettier::Rake::Task.new do |t|
    #     t.source_files = '{app,config,lib}/**/*.rb'
    #   end
    #
    # This will create a task that can be run with:
    #
    #   rake prettier
    #
    class Task < ::Rake::TaskLib
      # Name of prettier task.
      # Defaults to :prettier.
      attr_accessor :name

      # Whether or not to overwrite the source files with the prettier output.
      # Defaults to true.
      attr_accessor :write

      # Glob pattern to match source files.
      # Defaults to 'lib/**/*.rb'.
      attr_accessor :source_files

      def initialize(name = :prettier)
        @name = name
        @write = true
        @source_files = 'lib/**/*.rb'

        yield self if block_given?
        define_task
      end

      private

      def define_task
        desc 'Runs prettier over source files'
        task(name) { run_task }
      end

      def run_task
        Prettier.run([('--write' if write), source_files].compact)
        exit($?.exitstatus) if $?&.exited?
      end
    end
  end
end

Version data entries

44 entries across 44 versions & 1 rubygems

Version Path
prettier-2.1.0 lib/prettier/rake/task.rb
prettier-2.0.0 lib/prettier/rake/task.rb
prettier-2.0.0.pre.rc4 lib/prettier/rake/task.rb
prettier-2.0.0.pre.rc3 lib/prettier/rake/task.rb
prettier-2.0.0.pre.rc2 lib/prettier/rake/task.rb
prettier-2.0.0.pre.rc1 lib/prettier/rake/task.rb
prettier-1.6.1 lib/prettier/rake/task.rb
prettier-1.6.0 lib/prettier/rake/task.rb
prettier-1.5.5 lib/prettier/rake/task.rb
prettier-1.5.4 lib/prettier/rake/task.rb
prettier-1.5.3 lib/prettier/rake/task.rb
prettier-1.5.2 lib/prettier/rake/task.rb
prettier-1.5.1 lib/prettier/rake/task.rb
prettier-1.5.0 lib/prettier/rake/task.rb
prettier-1.4.0 lib/prettier/rake/task.rb
prettier-1.3.0 lib/prettier/rake/task.rb
prettier-1.2.5 lib/prettier/rake/task.rb
prettier-1.2.4 lib/prettier/rake/task.rb
prettier-1.2.3 lib/prettier/rake/task.rb
prettier-1.2.2 lib/prettier/rake/task.rb