Sha256: 9474e8095d801c5319ebed48c582e6818904df6041b4027e8c028c8672e8fda8

Contents?: true

Size: 1.6 KB

Versions: 8

Compression:

Stored size: 1.6 KB

Contents

require 'prmd/commands/combine'
require 'prmd/rake_tasks/base'

# :nodoc:
module Prmd
  # :nodoc:
  module RakeTasks
    # Schema combine rake task
    #
    # @example
    #   Prmd::RakeTasks::Combine.new do |t|
    #     t.options[:meta] = 'schema/meta.json'
    #     t.paths << 'schema/schemata/api'
    #     t.output_file = 'schema/api.json'
    #   end
    class Combine < Base
      #
      # @return [Array<String>] list of paths
      attr_accessor :paths

      # target file the combined result should be written
      # @return [String>] target filename
      attr_accessor :output_file

      # Creates a new task with name +name+.
      #
      # @overload initialize(name)
      #   @param [String]
      # @overload initialize(options)
      #   @param [Hash<Symbol, Object>] options
      #     .option [String] output_file
      #     .option [Array<String>] paths
      def initialize(*args, &block)
        options = legacy_parameters(*args)
        @paths = options.fetch(:paths) { [] }
        @output_file = options[:output_file]
        super options, &block
      end

      private

      # Default name of the rake task
      #
      # @return [Symbol]
      def default_name
        :combine
      end

      protected

      # Defines the rake task
      # @return [void]
      def define
        desc 'Combine schemas' unless Rake.application.last_description
        task(name) do
          result = Prmd.combine(paths, options)
          if output_file
            File.open(output_file, 'w') do |file|
              file.write(result)
            end
          end
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
prmd-0.14.0 lib/prmd/rake_tasks/combine.rb
prmd-0.13.0 lib/prmd/rake_tasks/combine.rb
prmd-0.12.0 lib/prmd/rake_tasks/combine.rb
prmd-0.11.11 lib/prmd/rake_tasks/combine.rb
prmd-0.11.10 lib/prmd/rake_tasks/combine.rb
prmd-0.11.9 lib/prmd/rake_tasks/combine.rb
prmd-0.11.8 lib/prmd/rake_tasks/combine.rb
prmd-0.11.7 lib/prmd/rake_tasks/combine.rb