Sha256: 544da5abb7bc98b4739ba5ad32c4a12c469a572a2b5f61b8e60aabe0e8a07ce9

Contents?: true

Size: 907 Bytes

Versions: 3

Compression:

Stored size: 907 Bytes

Contents

# frozen_string_literal: true

require "bq_coaster/renderer"
require "bq_coaster/generators/java_class/class_context"

module BqCoaster
  module Generators
    class JavaClass < Base
      class ClassRenderer
        include Renderer

        attr_reader :class_name, :definitions, :dataflow, :static, :indent

        def initialize(class_name, definitions, dataflow: true, static: false, indent: 0)
          @class_name  = class_name
          @definitions = definitions
          @dataflow    = dataflow
          @static      = static
          @indent      = indent
        end

        def render
          evaluate.gsub(/^/, " " * 4 * indent).gsub(/^\s*$/, "").gsub(/\n{3,}/, "\n\n")
        end

        private

        def context
          ClassContext.new(self)
        end

        def template_path
          File.expand_path("../class.erb", __FILE__)
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
bq_coaster-0.2.2 lib/bq_coaster/generators/java_class/class_renderer.rb
bq_coaster-0.2.1 lib/bq_coaster/generators/java_class/class_renderer.rb
bq_coaster-0.2.0 lib/bq_coaster/generators/java_class/class_renderer.rb