Module: ProjectModule

Included in:
Takelage::CLI, Takelage::InfoProject
Defined in:
lib/takelage/lib/project.rb

Overview

takelage project module

Defined Under Namespace

Classes: TakelageProject

Constant Summary collapse

@@project =

Global singleton config

TakelageProject.new

Instance Method Summary collapse

Instance Method Details

#initialize_projectObject

Initialze project



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/takelage/lib/project.rb', line 24

def initialize_project

  rakefile, path = Rake.application.find_rakefile_location

  main_file = "#{path}/#{@@project.config.active['info_project_main']}"
  private_file = "#{path}/#{@@project.config.active['info_project_private']}"

  # read main project info
  if File.exist? main_file
    @@project.main = read_yaml_file(main_file) || Hash.new
    @@project.main = @@project.main.sort.to_h
  end

  # read private project info
  if File.exist? private_file
    @@project.private = read_yaml_file(private_file) || Hash.new
    @@project.private = @@project.private.sort.to_h
  end

  # make a clone or else we'll change the original hash
  main = @@project.main.clone
  private = @@project.private.clone

  # merge main and private to active
  # private wins against main
  @@project.active = main.merge!(private)
  @@project.active = @@project.active.sort.to_h
end

#projectObject

Returns global singleton project.

Returns:

  • (Object)

    global singleton project



54
55
56
# File 'lib/takelage/lib/project.rb', line 54

def project
  @@project
end