class Text2isometric::Commands

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/text2isometric.rb, line 11
def initialize(*args)
  super
  @output_dir = File.expand_path('~') + "/isometric"
end

Public Instance Methods

cube() click to toggle source
# File lib/text2isometric.rb, line 49
    def cube
      cube = <<CUBE
                 .......
             ....       ....
         ....               ....
     ....      t                ....
 ....              o                ...
|...                   p            ...|
|   ....                        ....   |
|       ....                ....       |
|           ....        ....           |
|   f           .... ...               |
|       r           |                  |
|          o        |         e        |
|             n     |       d          |
|                t  |     i            |
|                   |  s               |
......              |              ....          e
      .....         |         .....          n
           .....    |    .....          a
                ....|....          l
                    .         p


CUBE
      print cube
    end
front(text) click to toggle source
# File lib/text2isometric.rb, line 39
def front(text)
  create_isometric(text, 'front')
end
instgrafflescript() click to toggle source
# File lib/text2isometric.rb, line 22
def instgrafflescript
  script_path =  File.expand_path('../../templates/isometric-text.scpt',__FILE__)
  dest_path = File.expand_path('~') + "/Library/Scripts/Applications/OmniGraffle/"
  system "cp -v #{script_path} #{dest_path}"
end
plane(text) click to toggle source
# File lib/text2isometric.rb, line 34
def plane(text)
  create_isometric(text, 'plane')
end
side(text) click to toggle source
# File lib/text2isometric.rb, line 29
def side(text)
  create_isometric(text, 'side')
end
top(text) click to toggle source
# File lib/text2isometric.rb, line 44
def top(text)
  create_isometric(text, 'top')
end
version() click to toggle source
# File lib/text2isometric.rb, line 17
def version
  print Text2isometric::VERSION + "\n"
end

Private Instance Methods

create_isometric(text, axis) click to toggle source
# File lib/text2isometric.rb, line 79
def create_isometric(text, axis)
  system "rm -Rf #{@output_dir}"
  system "mkdir -p #{@output_dir}"

  r = {}
  if options[:size]
    r['size'] = options[:size]
  else
    r['size'] = '80'
  end

  unless options[:font].empty?
    r['color'] = options[:color]
  else
    r['color'] = 'black'
  end

  unless options[:font].empty?
    r['font'] = options[:font]
  else
    r['font'] = 'black'
  end

  r['text'] = text
  r['transform_class'] = axis

  erb_path =  File.expand_path('../../templates/text.html.erb',__FILE__)
  template = File.read(erb_path)
  namespace = OpenStruct.new(
    r:r
  )
  result = ERB.new(template).result(namespace.instance_eval { binding })
  File.open("#{@output_dir}/text.html", 'w') { |file| file.write(result)}

  #html -> png
  system "/usr/local/bin/webkit2png -F --transparent -o #{@output_dir}/out #{@output_dir}/text.html"
  system "/usr/local/bin/convert #{@output_dir}/out-full.png -define png:big-depth=16 -define png:color-type=6 -trim #{@output_dir}/trim.png"
  system "mv #{@output_dir}/trim.png #{@output_dir}/isometric.png"

  print "created:\n"
  print "#{@output_dir}/isometric.png\n"
end