Module: Writer

Defined in:
lib/writer.rb,
lib/writer/logger.rb,
lib/writer/version.rb,
lib/writer/file_namer.rb,
lib/writer/file_creator.rb,
lib/writer/configuration.rb

Defined Under Namespace

Classes: Configuration, FileCreator, FileNamer, Logger

Constant Summary collapse

VERSION =
"0.4.0"

Class Method Summary collapse

Class Method Details

.configObject



33
34
35
# File 'lib/writer.rb', line 33

def config
  @config ||= Configuration.new
end

.configure {|config| ... } ⇒ Object

Yields:



29
30
31
# File 'lib/writer.rb', line 29

def configure
  yield(config)
end

.file_creatorObject



21
22
23
# File 'lib/writer.rb', line 21

def file_creator
  @file_creator ||= creator.new
end

.file_namerObject



17
18
19
# File 'lib/writer.rb', line 17

def file_namer
  @file_namer ||= namer.new
end

.loggerObject



25
26
27
# File 'lib/writer.rb', line 25

def logger
  @logger ||= config.logger.new
end

.method_missing(method_name, *args) ⇒ Object



41
42
43
44
45
46
# File 'lib/writer.rb', line 41

def method_missing(method_name, *args)
  attrs = config.attributes.keys
  return super unless attrs.include?(method_name)

  config.send(method_name, *args)
end

.set_default_config!Object



37
38
39
# File 'lib/writer.rb', line 37

def set_default_config!
  @config = Configuration.new
end

.write!(name = nil, content = nil) ⇒ Object



9
10
11
12
13
14
15
# File 'lib/writer.rb', line 9

def write!(name = nil, content = nil)
  name = file_namer.name_for(name)

  logger.info "Creating #{name}"

  file_creator.create!(name, content)
end