Class: Roger::Rogerfile

Inherits:
Object
  • Object
show all
Defined in:
lib/roger/rogerfile.rb

Overview

Loader for rogerfile

Defined Under Namespace

Classes: Context

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(project, path = nil) ⇒ Rogerfile

Returns a new instance of Rogerfile.



30
31
32
33
# File 'lib/roger/rogerfile.rb', line 30

def initialize(project, path = nil)
  @project = project
  @path = (path && Pathname.new(path)) || Pathname.new(project.path + "Rogerfile")
end

Instance Attribute Details

#pathObject



28
29
30
# File 'lib/roger/rogerfile.rb', line 28

def path
  @path
end

#projectObject



28
29
30
# File 'lib/roger/rogerfile.rb', line 28

def project
  @project
end

Instance Method Details

#loadObject

Actually load the rogerfile



36
37
38
39
40
41
42
43
# File 'lib/roger/rogerfile.rb', line 36

def load
  return unless File.exist?(@path) && !self.loaded?

  @source = File.read(@path)
  context = Context.new(self)
  eval @source, context.binding, @path.to_s, 1 # rubocop:disable Lint/Eval
  @loaded = true
end

#loaded?Boolean

Wether or not the rogerfile has been loaded

Returns:

  • (Boolean)


46
47
48
# File 'lib/roger/rogerfile.rb', line 46

def loaded?
  @loaded
end

#release(options = {}) {|release| ... } ⇒ Object

Yields:



50
51
52
53
54
# File 'lib/roger/rogerfile.rb', line 50

def release(options = {})
  release = project.release(options)
  yield(release) if block_given?
  release
end

#serve(options = {}) {|server| ... } ⇒ Object Also known as: server

Yields:



56
57
58
59
60
# File 'lib/roger/rogerfile.rb', line 56

def serve(options = {})
  server = project.server(options)
  yield(server) if block_given?
  server
end

#test(options = {}) {|test| ... } ⇒ Object

Yields:



64
65
66
67
68
# File 'lib/roger/rogerfile.rb', line 64

def test(options = {})
  test = project.test(options)
  yield(test) if block_given?
  test
end