Class: AutoC::Module::Source

Inherits:
File
  • Object
show all
Defined in:
lib/autoc/code.rb

Instance Attribute Summary collapse

Attributes inherited from File

#entities

Instance Method Summary collapse

Methods inherited from File

#<<, #generate

Constructor Details

#initialize(m, i) ⇒ Source

Returns a new instance of Source.



200
201
202
203
204
# File 'lib/autoc/code.rb', line 200

def initialize(m, i)
  super(m)
  @index = i
  @file_name = @module.source_count > 1 ? "#{@module.name.downcase}_auto#{index}.c" : "#{@module.name.downcase}_auto.c"
end

Instance Attribute Details

#file_nameObject (readonly)

Returns the value of attribute file_name.



198
199
200
# File 'lib/autoc/code.rb', line 198

def file_name
  @file_name
end

#indexObject (readonly)

Returns the value of attribute index.



198
199
200
# File 'lib/autoc/code.rb', line 198

def index
  @index
end

Instance Method Details

#main?Boolean

Returns:

  • (Boolean)


206
207
208
# File 'lib/autoc/code.rb', line 206

def main?
  equal?(@module.main_source)
end

#new_streamObject



220
221
222
# File 'lib/autoc/code.rb', line 220

def new_stream
  ::File.new(@file_name, "w")
end

#sizeObject



214
215
216
217
218
# File 'lib/autoc/code.rb', line 214

def size
  size = 0
  @entities.each {|e| size += e.source_size}
  size
end

#smallest?Boolean

Returns:

  • (Boolean)


210
211
212
# File 'lib/autoc/code.rb', line 210

def smallest?
  equal?(@module.smallest_source)
end

#write(stream) ⇒ Object



224
225
226
227
228
229
230
231
232
# File 'lib/autoc/code.rb', line 224

def write(stream)
  stream << %$
    /* AUTOMATICALLY GENERATED SOURCE FILE. DO NOT MODIFY. */
    #include "#{@module.header.file_name}"
  $
  sorted = AutoC.priority_sort(entities)
  sorted.each {|e| e.write_decls(stream)}
  sorted.each {|e| e.write_defs(stream)}
end