Class: Foobara::Project

Inherits:
Object
  • Object
show all
Defined in:
foobara-0.7.3/projects/typesystem/projects/project/src/project.rb,
foobara-0.7.3/projects/typesystem/projects/project/lib/foobara/project.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(symbol, project_path: nil, eager_load_src: true) ⇒ Project

Returns a new instance of Project.



5
6
7
8
9
# File 'projects/typesystem/projects/project/src/project.rb', line 5

def initialize(symbol, project_path: nil, eager_load_src: true)
  self.eager_load_src = eager_load_src
  self.symbol = symbol
  self.project_path = project_path || "#{__dir__}/../../#{symbol}"
end

Instance Attribute Details

#eager_load_src ⇒ Object

Returns the value of attribute eager_load_src.



3
4
5
# File 'projects/typesystem/projects/project/src/project.rb', line 3

def eager_load_src
  @eager_load_src
end

#project_path ⇒ Object

Returns the value of attribute project_path.



3
4
5
# File 'projects/typesystem/projects/project/src/project.rb', line 3

def project_path
  @project_path
end

#symbol ⇒ Object

Returns the value of attribute symbol.



3
4
5
# File 'projects/typesystem/projects/project/src/project.rb', line 3

def symbol
  @symbol
end

Instance Method Details

#install! ⇒ Object



35
36
37
38
39
# File 'projects/typesystem/projects/project/src/project.rb', line 35

def install!
  if self.module.respond_to?(:install!)
    self.module.install!
  end
end

#load ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
# File 'projects/typesystem/projects/project/src/project.rb', line 23

def load
  require require_path

  if eager_load_src
    src_dir = "#{project_path}/src"

    if Dir.exist?(src_dir)
      Util.require_directory(src_dir)
    end
  end
end

#module ⇒ Object



19
20
21
# File 'projects/typesystem/projects/project/src/project.rb', line 19

def module
  Foobara.const_get(module_name)
end

#module_name ⇒ Object



15
16
17
# File 'projects/typesystem/projects/project/src/project.rb', line 15

def module_name
  Util.classify(symbol)
end

#new_project_added(project) ⇒ Object



59
60
61
62
63
# File 'projects/typesystem/projects/project/src/project.rb', line 59

def new_project_added(project)
  if self.module.respond_to?(:new_project_added)
    self.module.new_project_added(project)
  end
end

#require_path ⇒ Object



11
12
13
# File 'projects/typesystem/projects/project/src/project.rb', line 11

def require_path
  "foobara/#{symbol}"
end

#reset_all ⇒ Object



51
52
53
54
55
56
57
# File 'projects/typesystem/projects/project/src/project.rb', line 51

def reset_all
  Foobara.raise_if_production!

  if self.module.respond_to?(:reset_all)
    self.module.reset_all
  end
end

#reset_completed ⇒ Object



46
47
48
49
# File 'projects/typesystem/projects/project/src/project.rb', line 46

def reset_completed
  mod = self.module
  mod.reset_completed if mod.respond_to?(:reset_completed)
end

#start! ⇒ Object



41
42
43
44
# File 'projects/typesystem/projects/project/src/project.rb', line 41

def start!
  mod = self.module
  mod.start! if mod.respond_to?(:start!)
end