Class: Kamaze::Project
- Extended by:
- Concern::Env
- Includes:
- Concern::Helper, Concern::Mode, Concern::Tasks, Concern::Tools
- Defined in:
- lib/kamaze/project.rb,
lib/kamaze/project.rb,
lib/kamaze/project/dsl.rb,
lib/kamaze/project/tools_provider.rb
Overview
rubocop:disable Style/Documentation
Defined Under Namespace
Modules: Concern, DSL, Tools Classes: Config, Debug, Helper, Observable, Observer, Struct, ToolsProvider, Version
Constant Summary collapse
Instance Attribute Summary collapse
-
#name ⇒ Symbol
(also: #gem_name)
Project name.
-
#subject ⇒ Class
Project subject, main class.
Class Method Summary collapse
-
.boot ⇒ self
Load "env file" + ruby files from
boot
directory. -
.env_load(options = {}) ⇒ self
extended
from Concern::Env
protected
Load
.env
file (and store result). -
.env_loaded ⇒ Hash
extended
from Concern::Env
Loaded environment.
Instance Method Summary collapse
- #helper ⇒ Sys::Proc::Helper included from Concern::Helper protected
-
#initialize(&block) ⇒ Project
constructor
A new instance of Project.
-
#load! ⇒ self
Load project.
-
#mode ⇒ String
included
from Concern::Mode
Get project mode.
- #path(*args) ⇒ Pathname
- #pwd ⇒ Pathname
-
#subject! ⇒ Class
protected
Main class (subject of project).
-
#tasks ⇒ Array<Symbol>
included
from Concern::Tasks
Get tasks.
-
#tasks=(tasks) ⇒ Object
included
from Concern::Tasks
Set tasks.
-
#tasks_load! ⇒ self
included
from Concern::Tasks
protected
Load tasks.
-
#tools ⇒ Hash
included
from Concern::Tools
Get tools.
- #tools=(tools) ⇒ Object included from Concern::Tools
- #version ⇒ Object
Constructor Details
#initialize(&block) ⇒ Project
Returns a new instance of Project.
95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/kamaze/project.rb', line 95 def initialize(&block) self.class.boot if block config = helper.get('project/config') yield(config) config.configure(self) end self.name ||= ENV.fetch('PROJECT_NAME') self.subject ||= subject! self.tools.freeze end |
Instance Attribute Details
#name ⇒ Symbol Also known as: gem_name
Project name
71 72 73 |
# File 'lib/kamaze/project.rb', line 71 def name @name end |
#subject ⇒ Class
Project subject, main class
76 77 78 |
# File 'lib/kamaze/project.rb', line 76 def subject @subject end |
Class Method Details
.boot ⇒ self
Load "env file" + ruby files from boot
directory
84 85 86 87 88 89 90 91 92 |
# File 'lib/kamaze/project.rb', line 84 def boot env_load Dir.glob("#{__dir__}/project/boot/*.rb").each do |bootable| require_relative bootable end self end |
.env_load(options = {}) ⇒ self (protected) Originally defined in module Concern::Env
load different (or additionnal) files depending on env/mode
Load .env
file (and store result)
.env_loaded ⇒ Hash Originally defined in module Concern::Env
Loaded environment
Instance Method Details
#helper ⇒ Sys::Proc::Helper (protected) Originally defined in module Concern::Helper
#load! ⇒ self
Load project
118 119 120 |
# File 'lib/kamaze/project.rb', line 118 def load! tasks_load! end |
#mode ⇒ String Originally defined in module Concern::Mode
Get project mode
#path(*args) ⇒ Pathname
111 112 113 |
# File 'lib/kamaze/project.rb', line 111 def path(*args) pwd.join(*args) end |
#pwd ⇒ Pathname
123 124 125 |
# File 'lib/kamaze/project.rb', line 123 def pwd ::Pathname.new(Dir.pwd) end |
#subject! ⇒ Class (protected)
Main class (subject of project)
150 151 152 153 154 |
# File 'lib/kamaze/project.rb', line 150 def subject! resolvable = name.to_s.tr('-', '/') helper.get(:inflector).resolve(resolvable) end |
#tasks ⇒ Array<Symbol> Originally defined in module Concern::Tasks
Get tasks
#tasks=(tasks) ⇒ Object Originally defined in module Concern::Tasks
Set tasks
#tasks_load! ⇒ self (protected) Originally defined in module Concern::Tasks
Load tasks
Tasks are loaded only when Rake::DSL
is defined.
DSL::Definition
is loaded during tasks loading.
#tools ⇒ Hash Originally defined in module Concern::Tools
Get tools
#tools=(tools) ⇒ Object Originally defined in module Concern::Tools
#version ⇒ Object
29 30 31 |
# File 'lib/kamaze/project.rb', line 29 def version subject.const_get('VERSION') end |