Class: AutoC::Module

Inherits:
Object
  • Object
show all
Includes:
EntityContainer
Defined in:
lib/autoc/module.rb

Direct Known Subclasses

Docs

Defined Under Namespace

Modules: EntityContainer, SmartRenderer Classes: Builder, Header, Source, State, StreamFile

Constant Summary collapse

CAP =
"/* Automagically generated by AutoC #{AutoC::VERSION} */"

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from EntityContainer

#<<, #entities

Constructor Details

#initialize(name, stateful: true) ⇒ Module



56
57
58
59
# File 'lib/autoc/module.rb', line 56

def initialize(name, stateful: true)
  @name = name
  @stateful = stateful
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



48
49
50
# File 'lib/autoc/module.rb', line 48

def name
  @name
end

#source_countObject

Returns the value of attribute source_count.



50
51
52
# File 'lib/autoc/module.rb', line 50

def source_count
  @source_count
end

#source_thresholdObject

Returns the value of attribute source_threshold.



52
53
54
# File 'lib/autoc/module.rb', line 52

def source_threshold
  @source_threshold
end

Class Method Details

.render(name) {|m| ... } ⇒ Object

Yields:

  • (m)


94
95
96
97
98
# File 'lib/autoc/module.rb', line 94

def self.render(name, **, &code)
  m = self.new(name, **)
  yield(m) if block_given?
  m.render
end

Instance Method Details

#digestsObject



65
# File 'lib/autoc/module.rb', line 65

def digests = @digests ||= State.new(self).read

#headerObject



61
# File 'lib/autoc/module.rb', line 61

def header = @header ||= Header.new(self)

#renderObject



67
68
69
70
71
72
73
# File 'lib/autoc/module.rb', line 67

def render
  distribute_entities
  header.render
  sources.each(&:render)
  State.new(self).collect.write if stateful?
  self
end

#sourcesObject



63
# File 'lib/autoc/module.rb', line 63

def sources = @sources ||= (1..source_count).collect { |i| Source.new(self, i) }

#stateful?Boolean



54
# File 'lib/autoc/module.rb', line 54

def stateful? = @stateful == true

#total_entitiesObject



75
76
77
78
79
80
81
# File 'lib/autoc/module.rb', line 75

def total_entities
  @total_entities ||= begin
    set = ::Set.new
    entities.each { |e| set.merge(e.total_references) }
    set
  end
end