Sha256: 9260fd22cf1258738902ba93c70b9854ee038ef5793a84c630b17e3278915939

Contents?: true

Size: 1.16 KB

Versions: 21

Compression:

Stored size: 1.16 KB

Contents

# TODO:
#   compilation
#   gather pieces of code we need as strings
#   translate non-loop methods
#   do plugin stuff
#   deal with examples/ exception
#   manage upload process
#   compose_setup should move in here entirely

# require 'arduino_sketch'

class SketchCompiler
  attr_accessor :path, :body, :klass, :target_dir, :name
  
  def initialize path_to_sketch 
    @path = File.expand_path(path_to_sketch)
    @body = open(@path).read
    @name = @path.split("/").last.split(".").first
    @klass = @name.split(".").first.split("_").collect{|c| c.capitalize}.join("")     
    @target_dir = parent_dir
  end
  
  def parent_dir
    self.path.split("/")[0..@path.split("/").length-2].join("/")
  end
  
  def build_dir
    "#{self.target_dir}/#{self.name}"
  end

  def create_build_dir! optional_path_prefix=nil
    self.target_dir = optional_path_prefix if optional_path_prefix
    mkdir_p build_dir
  end
  
  def process_constants
    self.body.gsub!("HIGH", "1")
    self.body.gsub!("LOW", "0")
    self.body.gsub!("ON", "1")
    self.body.gsub!("OFF", "0")
  end
  
  def sketch_methods
    self.body.scan(/^\s*def\s.\w*/).collect{ |m| m.gsub(/\s*def\s*/, "") }
  end
  
end

Version data entries

21 entries across 21 versions & 4 rubygems

Version Path
neo_rad-0.4.0 lib/rad/sketch_compiler.rb
atduskgreg-rad-0.2.5 lib/rad/sketch_compiler.rb
atduskgreg-rad-0.3.0.1 lib/rad/sketch_compiler.rb
atduskgreg-rad-0.3.1 lib/rad/sketch_compiler.rb
madrona-rad-0.3.1.1 lib/rad/sketch_compiler.rb
madrona-rad-0.3.1 lib/rad/sketch_compiler.rb
madrona-rad-0.3.2 lib/rad/sketch_compiler.rb
madrona-rad-0.3.3 lib/rad/sketch_compiler.rb
madrona-rad-0.3.4 lib/rad/sketch_compiler.rb
madrona-rad-0.3.5 lib/rad/sketch_compiler.rb
madrona-rad-0.3.6 lib/rad/sketch_compiler.rb
madrona-rad-0.3.7 lib/rad/sketch_compiler.rb
madrona-rad-0.3.8 lib/rad/sketch_compiler.rb
madrona-rad-0.3.9 lib/rad/sketch_compiler.rb
madrona-rad-0.4.0 lib/rad/sketch_compiler.rb
madrona-rad-0.5.0 lib/rad/sketch_compiler.rb
madrona-rad-0.4.3 lib/rad/sketch_compiler.rb
madrona-rad-0.4.2 lib/rad/sketch_compiler.rb
madrona-rad-0.4.1 lib/rad/sketch_compiler.rb
rad-0.3.0 lib/rad/sketch_compiler.rb