class UseWriter

Attributes

file[RW]
types[RW]

Public Class Methods

new(file_name) click to toggle source
# File lib/rails2use/use_writer.rb, line 8
def initialize(file_name)
  @filename = file_name
  @associations = ""
  @object_filename = file_name.to_s.gsub(/\..*\/?$/, '_instances.use_cmd')
  @types = {
      'integer' => 'Integer',
      'double' => 'Real',
      'float' => 'Real',
      'boolean' => 'Boolean',
      'string' => 'String'
  }
end
suffix() click to toggle source
# File lib/rails2use/use_writer.rb, line 2
def self.suffix
  'use'
end

Public Instance Methods

close() click to toggle source
# File lib/rails2use/use_writer.rb, line 21
def close
  @file.try :close
  @instances_file.try :close
end
write_abstract_class(class_name) click to toggle source
# File lib/rails2use/use_writer.rb, line 41
def write_abstract_class(class_name)
  @file.write "abstract class #{class_name}\n\nend\n\n"
end
write_association(association_name, instance_name, foreign_instance_name) click to toggle source
# File lib/rails2use/use_writer.rb, line 81
def write_association(association_name, instance_name, foreign_instance_name)
  @instances_file.write "!insert (#{instance_name}, #{foreign_instance_name}) into #{association_name}\n"
end
write_class(class_name, super_classes="", attributes="", associations={}) click to toggle source
# File lib/rails2use/use_writer.rb, line 45
def write_class(class_name, super_classes="", attributes="", associations={})
  super_classes = " < #{super_classes}" unless super_classes.blank?
  @file.write "class #{class_name}#{super_classes}\nattributes\n#{attributes}\nend\n\n"

  associations[:has_many].each do |name, values|
    @associations << "association #{name} between\n"
    @associations << "\t#{values[:class_name]}[1] role #{values[:role_name]}\n"
    @associations << "\t#{values[:foreign_class_name]}[*] role #{values[:foreign_role_name]}\nend\n\n"
  end


  associations[:has_one].each do |name, values|
    @associations << "association #{name} between\n"
    @associations << "\t#{values[:class_name]}[1] role #{values[:role_name]}\n"
    @associations << "\t#{values[:foreign_class_name]}[1] role #{values[:foreign_role_name]}\nend\n\n"
  end
end
write_class_end() click to toggle source
# File lib/rails2use/use_writer.rb, line 63
def write_class_end
  @file.write @associations
end
write_foot(type=:class) click to toggle source
# File lib/rails2use/use_writer.rb, line 37
def write_foot(type=:class)

end
write_head(type=:class) click to toggle source
# File lib/rails2use/use_writer.rb, line 26
def write_head(type=:class)
  case type
    when :object then
      @instances_file = File.open(@object_filename, 'w')
    else
      @file = File.open(@filename, 'w')
      @file.write "model #{Rails.application.class.parent_name}\n\n-- classes\n\n" #write head
  end

end
write_instance(instance_name, class_name, attributes=[], associations={}) click to toggle source
# File lib/rails2use/use_writer.rb, line 67
def write_instance(instance_name, class_name, attributes=[], associations={})
  @instances_file.write "!create #{instance_name}:#{class_name}\n"
  attributes.each do |attribute, value|
    if value.is_a?(Numeric) || value.is_a?(TrueClass) || value.is_a?(FalseClass)
      @instances_file.write "!set #{instance_name}.#{attribute} := #{value.to_s}\n"
    else
      @instances_file.write "!set #{instance_name}.#{attribute} := '#{value.to_s}'\n"
    end
  end
  associations.each do |x|

  end
end