class Ar2gostruct::Gostruct

Attributes

model_dir[RW]
models[RW]

Public Class Methods

new(model_dir) click to toggle source
  # File lib/ar2gostruct/gostruct.rb
3 def initialize(model_dir)
4   @model_dir = model_dir
5   get_models
6   puts "package #{ENV["package"]}\n\n" unless ENV["package"].blank?
7 end

Public Instance Methods

convert!() click to toggle source
   # File lib/ar2gostruct/gostruct.rb
10 def convert!
11   self.models.each do |m|
12     class_name = m.sub(/\.rb$/,'').camelize
13     begin
14       klass = class_name.split('::').inject(Object){ |klass,part| klass.const_get(part) }
15       if klass < ActiveRecord::Base && !klass.abstract_class?
16         convert_to_gostruct!(klass)
17       end
18     rescue Exception => e
19       puts "// Unable to convert #{class_name}: #{e.message}"
20     end
21   end
22 end

Private Instance Methods

convert_to_gostruct!(klass) click to toggle source
   # File lib/ar2gostruct/gostruct.rb
32 def convert_to_gostruct!(klass)
33   converter = Converter.new klass, :plural => ENV["plural"], :orm => ENV["orm"], :association => ENV["association"]
34   info = converter.convert!
35   model_file_name = File.join(self.model_dir, klass.name.underscore + ".rb")
36   puts "// #{model_file_name}"
37   puts info
38 end
get_models() click to toggle source
   # File lib/ar2gostruct/gostruct.rb
26 def get_models
27   Dir.chdir(self.model_dir) do
28     self.models = Dir["**/*.rb"]
29   end
30 end