Module: BangBang::ClassMethods
- Includes:
- EnvMethods
- Defined in:
- lib/bang-bang.rb
Instance Attribute Summary collapse
-
#application_name ⇒ Object
Returns the value of attribute application_name.
-
#named_routes ⇒ Object
(also: #uris)
Returns the value of attribute named_routes.
-
#root_dir ⇒ Object
Returns the value of attribute root_dir.
-
#stderr_dir ⇒ Object
Returns the value of attribute stderr_dir.
-
#stdout_dir ⇒ Object
Returns the value of attribute stdout_dir.
-
#views_class ⇒ Object
Returns the value of attribute views_class.
Instance Method Summary collapse
- #init(params = {}) ⇒ Object
- #lib_dir ⇒ Object
- #plugins ⇒ Object
- #register_controller(controller) ⇒ Object
- #register_service(path, &block) ⇒ Object
- #remove_generated_files ⇒ Object
- #service_dirs ⇒ Object
- #service_subdirectory_dirs(relative_directory) ⇒ Object
- #services ⇒ Object
- #services_by_root_dir ⇒ Object
- #services_by_url_prefix ⇒ Object
- #services_dir ⇒ Object
- #stderr_logger ⇒ Object
- #stdout_logger ⇒ Object
- #stylesheets_dirs ⇒ Object
- #vendor_dir ⇒ Object
Methods included from EnvMethods
Instance Attribute Details
#application_name ⇒ Object
Returns the value of attribute application_name.
21 22 23 |
# File 'lib/bang-bang.rb', line 21 def application_name @application_name end |
#named_routes ⇒ Object Also known as: uris
Returns the value of attribute named_routes.
21 22 23 |
# File 'lib/bang-bang.rb', line 21 def named_routes @named_routes end |
#root_dir ⇒ Object
Returns the value of attribute root_dir.
21 22 23 |
# File 'lib/bang-bang.rb', line 21 def root_dir @root_dir end |
#stderr_dir ⇒ Object
Returns the value of attribute stderr_dir.
21 22 23 |
# File 'lib/bang-bang.rb', line 21 def stderr_dir @stderr_dir end |
#stdout_dir ⇒ Object
Returns the value of attribute stdout_dir.
21 22 23 |
# File 'lib/bang-bang.rb', line 21 def stdout_dir @stdout_dir end |
#views_class ⇒ Object
Returns the value of attribute views_class.
21 22 23 |
# File 'lib/bang-bang.rb', line 21 def views_class @views_class end |
Instance Method Details
#init(params = {}) ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'lib/bang-bang.rb', line 26 def init(params={}) self.application_name = params[:application_name] || raise(ArgumentError, "You must provide an :application_name param") self.root_dir = params[:root_dir] || raise(ArgumentError, "You must provide a :root_dir param") self.named_routes = params[:named_routes] || raise(ArgumentError, "You must provide a :named_routes param") self.views_class = params[:views_class] || raise(ArgumentError, "You must provide a :views_class param") plugins.init end |
#lib_dir ⇒ Object
82 83 84 |
# File 'lib/bang-bang.rb', line 82 def lib_dir File.join(root_dir, "lib") end |
#plugins ⇒ Object
78 79 80 |
# File 'lib/bang-bang.rb', line 78 def plugins @plugins ||= ::BangBang::Plugins::Set.new(self) end |
#register_controller(controller) ⇒ Object
35 36 37 |
# File 'lib/bang-bang.rb', line 35 def register_controller(controller) controller.config = self end |
#register_service(path, &block) ⇒ Object
39 40 41 42 43 44 45 |
# File 'lib/bang-bang.rb', line 39 def register_service(path, &block) unless service_dirs.include?(path) service = Service.new(path) services << service service.init(&block) end end |
#remove_generated_files ⇒ Object
113 114 115 116 117 118 |
# File 'lib/bang-bang.rb', line 113 def remove_generated_files Dir["#{root_dir}/**/public/**/*.generated"].each do |generated_path| FileUtils.rm_f(File.join(File.dirname(generated_path), File.basename(generated_path, ".generated"))) FileUtils.rm_f(generated_path) end end |
#service_dirs ⇒ Object
47 48 49 50 51 |
# File 'lib/bang-bang.rb', line 47 def service_dirs services.map do |service| service.root_dir end end |
#service_subdirectory_dirs(relative_directory) ⇒ Object
98 99 100 101 102 103 |
# File 'lib/bang-bang.rb', line 98 def service_subdirectory_dirs(relative_directory) service_dirs.flatten.map do |service_path| full_path = File.join(service_path, relative_directory) full_path if File.directory?(full_path) end.compact end |
#services ⇒ Object
53 54 55 |
# File 'lib/bang-bang.rb', line 53 def services @services ||= [] end |
#services_by_root_dir ⇒ Object
63 64 65 66 67 68 |
# File 'lib/bang-bang.rb', line 63 def services_by_root_dir services.inject({}) do |memo, service| memo[service.root_dir] = service memo end end |
#services_by_url_prefix ⇒ Object
57 58 59 60 61 |
# File 'lib/bang-bang.rb', line 57 def services_by_url_prefix services.group_by do |service| service.url_prefix end end |
#services_dir ⇒ Object
94 95 96 |
# File 'lib/bang-bang.rb', line 94 def services_dir File.join(root_dir, "services") end |
#stderr_logger ⇒ Object
70 71 72 |
# File 'lib/bang-bang.rb', line 70 def stderr_logger @stderr_logger ||= Logger.new(stderr_dir) end |
#stdout_logger ⇒ Object
74 75 76 |
# File 'lib/bang-bang.rb', line 74 def stdout_logger @stdout_logger ||= Logger.new(stdout_dir) end |
#stylesheets_dirs ⇒ Object
86 87 88 |
# File 'lib/bang-bang.rb', line 86 def stylesheets_dirs service_subdirectory_dirs "app/stylesheets" end |
#vendor_dir ⇒ Object
90 91 92 |
# File 'lib/bang-bang.rb', line 90 def vendor_dir File.join(root_dir, "vendor") end |