Class: WebServerConfigGenerator::SubUriProject
- Inherits:
-
Object
- Object
- WebServerConfigGenerator::SubUriProject
- Defined in:
- lib/web_server_config_generator/sub_uri_project.rb
Instance Attribute Summary collapse
-
#env ⇒ Object
Returns the value of attribute env.
-
#projects ⇒ Object
Returns the value of attribute projects.
-
#server_name ⇒ Object
Returns the value of attribute server_name.
Instance Method Summary collapse
- #generate_conf_file_contents(options) ⇒ Object
- #generate_port_from_env(env) ⇒ Object
-
#initialize(server_name, env_and_projects, web_config_generator) ⇒ SubUriProject
constructor
A new instance of SubUriProject.
- #projects_relative_project_path ⇒ Object
- #root_link_target_name_in_symlink_dir ⇒ Object
- #root_project ⇒ Object
- #server_name_from_env(env) ⇒ Object
- #server_names ⇒ Object
- #to_s ⇒ Object (also: #to_str)
Constructor Details
#initialize(server_name, env_and_projects, web_config_generator) ⇒ SubUriProject
Returns a new instance of SubUriProject.
5 6 7 8 9 10 |
# File 'lib/web_server_config_generator/sub_uri_project.rb', line 5 def initialize(server_name, env_and_projects, web_config_generator) @server_name = server_name @env = env_and_projects[:env] @projects = env_and_projects[:projects] @web_config_generator = web_config_generator end |
Instance Attribute Details
#env ⇒ Object
Returns the value of attribute env.
3 4 5 |
# File 'lib/web_server_config_generator/sub_uri_project.rb', line 3 def env @env end |
#projects ⇒ Object
Returns the value of attribute projects.
3 4 5 |
# File 'lib/web_server_config_generator/sub_uri_project.rb', line 3 def projects @projects end |
#server_name ⇒ Object
Returns the value of attribute server_name.
3 4 5 |
# File 'lib/web_server_config_generator/sub_uri_project.rb', line 3 def server_name @server_name end |
Instance Method Details
#generate_conf_file_contents(options) ⇒ Object
46 47 48 49 50 51 52 53 54 55 |
# File 'lib/web_server_config_generator/sub_uri_project.rb', line 46 def generate_conf_file_contents() port = self.generate_port_from_env([:env]) full_path_to_dir = File. "#{@web_config_generator.web_server_sub_uri_apps_dir}/#{projects_relative_project_path}" root = full_path_to_dir NginxConf.new(:port => port, :server_names => [server_name], :root => root, :environment => [:env], :sub_uri_root_app => root_link_target_name_in_symlink_dir, :base_uri_names => projects.map { |p| File.basename(p.relative_root_url_for_env(env)) }).contents end |
#generate_port_from_env(env) ⇒ Object
25 26 27 28 |
# File 'lib/web_server_config_generator/sub_uri_project.rb', line 25 def generate_port_from_env(env) pseudo_random_number = projects.inject(0) { |sum, p| sum + p.generate_port_from_env(env) } WebServerConfigGenerator::STARTING_PORT + (pseudo_random_number % WebServerConfigGenerator::PORT_POOL_SIZE) end |
#projects_relative_project_path ⇒ Object
30 31 32 |
# File 'lib/web_server_config_generator/sub_uri_project.rb', line 30 def projects_relative_project_path server_name end |
#root_link_target_name_in_symlink_dir ⇒ Object
38 39 40 41 42 43 44 |
# File 'lib/web_server_config_generator/sub_uri_project.rb', line 38 def root_link_target_name_in_symlink_dir if root_project File.basename(root_project.relative_root_url_for_env(env)) else puts "\nWarning: Couldn't find root app in #{self}. Specify a root app in one of the configuration files if you want to be redirected to that app when visiting '/'" end end |
#root_project ⇒ Object
34 35 36 |
# File 'lib/web_server_config_generator/sub_uri_project.rb', line 34 def root_project projects.detect { |p| p.relative_root_url_root_for_env(env) } end |
#server_name_from_env(env) ⇒ Object
17 18 19 |
# File 'lib/web_server_config_generator/sub_uri_project.rb', line 17 def server_name_from_env(env) server_name end |
#server_names ⇒ Object
21 22 23 |
# File 'lib/web_server_config_generator/sub_uri_project.rb', line 21 def server_names [server_name] end |
#to_s ⇒ Object Also known as: to_str
12 13 14 |
# File 'lib/web_server_config_generator/sub_uri_project.rb', line 12 def to_s server_name.dup end |