Class: Prigner::Project

Inherits:
Object
  • Object
show all
Defined in:
lib/prigner/project.rb

Overview

Project

This class is a simple implementation of a tree of directories. It is used in model files.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path) ⇒ Project

Initialize a new project directory path.



19
20
21
22
23
# File 'lib/prigner/project.rb', line 19

def initialize(path)
  @path = File.expand_path(path =~ /^\/.*/ ? path : "#{Dir.pwd}/#{path}")
  @name = File.basename(@path)
  @timestamp = DateTime.now
end

Instance Attribute Details

#nameObject (readonly) Also known as: project

Project name.



8
9
10
# File 'lib/prigner/project.rb', line 8

def name
  @name
end

#pathObject (readonly)

Project files.



13
14
15
# File 'lib/prigner/project.rb', line 13

def path
  @path
end

#timestampObject (readonly)

Project timestamp



16
17
18
# File 'lib/prigner/project.rb', line 16

def timestamp
  @timestamp
end

Instance Method Details

#authorObject



66
67
68
# File 'lib/prigner/project.rb', line 66

def author
  self.user.gecos.split(",").first
end

#lower_camel_case_nameObject



58
59
60
# File 'lib/prigner/project.rb', line 58

def lower_camel_case_name
  lower_camel_case_namespace(nil)
end

#lower_camel_case_namespace(joiner = "::") ⇒ Object



37
38
39
40
41
42
# File 'lib/prigner/project.rb', line 37

def lower_camel_case_namespace(joiner = "::")
  return name if name_splited.size == 0
  name_splited[1..-1].map do |str|
    str.capitalize
  end.unshift(name_splited.first).join(joiner)
end

#lower_case_namespace(joiner = "::") ⇒ Object



48
49
50
# File 'lib/prigner/project.rb', line 48

def lower_case_namespace(joiner = "::")
  upper_camel_case_namespace(joiner).downcase
end

#name_splitedObject



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

def name_splited
  @name.split(/[-_]/)
end

#namespace(joiner = "::") ⇒ Object



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

def namespace(joiner = "::")
  name_splited.join(joiner)
end

#upper_camel_case_nameObject Also known as: class_name



52
53
54
# File 'lib/prigner/project.rb', line 52

def upper_camel_case_name
  upper_camel_case_namespace(nil)
end

#upper_camel_case_namespace(joiner = "::") ⇒ Object



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

def upper_camel_case_namespace(joiner = "::")
  name_splited.map{ |str| str.capitalize }.join(joiner)
end

#upper_case_namespace(joiner = "::") ⇒ Object



44
45
46
# File 'lib/prigner/project.rb', line 44

def upper_case_namespace(joiner = "::")
  upper_camel_case_namespace(joiner).upcase
end

#userObject



62
63
64
# File 'lib/prigner/project.rb', line 62

def user
  Etc.getpwnam(Etc.getlogin)
end