Class: Prigner::Project
- Inherits:
-
Object
- Object
- Prigner::Project
- 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
-
#name ⇒ Object
(also: #project)
readonly
Project name.
-
#path ⇒ Object
readonly
Project files.
-
#timestamp ⇒ Object
readonly
Project timestamp.
Instance Method Summary collapse
- #author ⇒ Object
-
#initialize(path) ⇒ Project
constructor
Initialize a new project directory path.
- #lower_camel_case_name ⇒ Object
- #lower_camel_case_namespace(joiner = "::") ⇒ Object
- #lower_case_namespace(joiner = "::") ⇒ Object
- #name_splited ⇒ Object
- #namespace(joiner = "::") ⇒ Object
- #upper_camel_case_name ⇒ Object (also: #class_name)
- #upper_camel_case_namespace(joiner = "::") ⇒ Object
- #upper_case_namespace(joiner = "::") ⇒ Object
- #user ⇒ Object
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.(path =~ /^\/.*/ ? path : "#{Dir.pwd}/#{path}") @name = File.basename(@path) @timestamp = DateTime.now end |
Instance Attribute Details
#name ⇒ Object (readonly) Also known as: project
Project name.
8 9 10 |
# File 'lib/prigner/project.rb', line 8 def name @name end |
#path ⇒ Object (readonly)
Project files.
13 14 15 |
# File 'lib/prigner/project.rb', line 13 def path @path end |
#timestamp ⇒ Object (readonly)
Project timestamp
16 17 18 |
# File 'lib/prigner/project.rb', line 16 def @timestamp end |
Instance Method Details
#author ⇒ Object
66 67 68 |
# File 'lib/prigner/project.rb', line 66 def self.user.gecos.split(",").first end |
#lower_camel_case_name ⇒ Object
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_splited ⇒ Object
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_name ⇒ Object 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 |
#user ⇒ Object
62 63 64 |
# File 'lib/prigner/project.rb', line 62 def user Etc.getpwnam(Etc.getlogin) end |