Class: Guff::JavaSource::SourceFile
- Inherits:
-
Object
- Object
- Guff::JavaSource::SourceFile
- Defined in:
- lib/guff/java_source.rb
Instance Method Summary collapse
- #begin_class(name) {|result| ... } ⇒ Object
- #import(i) ⇒ Object
-
#initialize ⇒ SourceFile
constructor
A new instance of SourceFile.
- #package(p) ⇒ Object
- #package_as_directory ⇒ Object
- #package_def ⇒ Object
- #save_in(root) ⇒ Object
- #write_to(writer) ⇒ Object
Constructor Details
#initialize ⇒ SourceFile
Returns a new instance of SourceFile.
530 531 532 533 534 |
# File 'lib/guff/java_source.rb', line 530 def initialize @package = 'set the package' @classes = [] @imports = [] end |
Instance Method Details
#begin_class(name) {|result| ... } ⇒ Object
566 567 568 569 570 571 572 |
# File 'lib/guff/java_source.rb', line 566 def begin_class(name) @name = name result = Class.new(name, @package, self) @classes << result yield result if block_given? self end |
#import(i) ⇒ Object
550 551 552 553 554 555 |
# File 'lib/guff/java_source.rb', line 550 def import(i) if (!@imports.include?(i)) @imports << i end self end |
#package(p) ⇒ Object
561 562 563 564 |
# File 'lib/guff/java_source.rb', line 561 def package(p) @package=p self end |
#package_as_directory ⇒ Object
557 558 559 |
# File 'lib/guff/java_source.rb', line 557 def package_as_directory @package.split('.').join('/') end |
#package_def ⇒ Object
588 589 590 |
# File 'lib/guff/java_source.rb', line 588 def package_def "package #{@package};" end |
#save_in(root) ⇒ Object
536 537 538 539 540 541 542 543 544 545 546 547 548 |
# File 'lib/guff/java_source.rb', line 536 def save_in(root) writer = Printer.new write_to(writer) directory = "#{root}/#{package_as_directory}" if (!FileTest.exist?(directory)) FileUtils.mkdir_p(directory) end filename = directory << "/" << @name << ".java" file = File.new(filename, "w") file.write(writer.contents) file.close filename end |
#write_to(writer) ⇒ Object
574 575 576 577 578 579 580 581 582 583 584 585 586 |
# File 'lib/guff/java_source.rb', line 574 def write_to(writer) writer.line(package_def).line @imports.each do |import| writer.line("import #{import};") end if (!@imports.empty?) writer.line end @classes.each {|c| c.write_to(writer) } writer end |