Class: BoringBuilder::RubyApplication
- Inherits:
-
Object
- Object
- BoringBuilder::RubyApplication
- Defined in:
- lib/boringbuilder/ruby_application.rb
Instance Attribute Summary collapse
-
#configuration ⇒ Object
readonly
Returns the value of attribute configuration.
-
#root ⇒ Object
readonly
Returns the value of attribute root.
Instance Method Summary collapse
- #framework ⇒ Object
- #hanami? ⇒ Boolean
-
#initialize(root, configuration) ⇒ RubyApplication
constructor
A new instance of RubyApplication.
- #path ⇒ Object
- #rails? ⇒ Boolean
- #ruby? ⇒ Boolean
- #runtime_command ⇒ Object
- #runtime_entrypoint ⇒ Object
- #runtime_environment ⇒ Object
- #runtime_port ⇒ Object
- #user ⇒ Object
- #web? ⇒ Boolean
Constructor Details
#initialize(root, configuration) ⇒ RubyApplication
Returns a new instance of RubyApplication.
7 8 9 10 |
# File 'lib/boringbuilder/ruby_application.rb', line 7 def initialize(root, configuration) @root = root @configuration = configuration end |
Instance Attribute Details
#configuration ⇒ Object (readonly)
Returns the value of attribute configuration.
5 6 7 |
# File 'lib/boringbuilder/ruby_application.rb', line 5 def configuration @configuration end |
#root ⇒ Object (readonly)
Returns the value of attribute root.
5 6 7 |
# File 'lib/boringbuilder/ruby_application.rb', line 5 def root @root end |
Instance Method Details
#framework ⇒ Object
24 25 26 27 28 29 30 31 |
# File 'lib/boringbuilder/ruby_application.rb', line 24 def framework return unless ruby? return :rails if rails? return :hanami if hanami? return :rack if rack? :ruby end |
#hanami? ⇒ Boolean
20 21 22 |
# File 'lib/boringbuilder/ruby_application.rb', line 20 def hanami? ruby? && root.join("config/app.rb").file? end |
#path ⇒ Object
33 34 35 |
# File 'lib/boringbuilder/ruby_application.rb', line 33 def path rails? ? "/rails" : "/app" end |
#rails? ⇒ Boolean
16 17 18 |
# File 'lib/boringbuilder/ruby_application.rb', line 16 def rails? ruby? && root.join("config/application.rb").file? end |
#ruby? ⇒ Boolean
12 13 14 |
# File 'lib/boringbuilder/ruby_application.rb', line 12 def ruby? root.join("Gemfile").file? end |
#runtime_command ⇒ Object
51 52 53 |
# File 'lib/boringbuilder/ruby_application.rb', line 51 def runtime_command configuration.command ? explicit_command : detected_command end |
#runtime_entrypoint ⇒ Object
55 56 57 58 59 60 61 |
# File 'lib/boringbuilder/ruby_application.rb', line 55 def runtime_entrypoint return [] if configuration.command || procfile_command return %w[/rails/bin/docker-entrypoint] if rails? && docker_entrypoint? return %w[/rails/bin/rails] if rails? [] end |
#runtime_environment ⇒ Object
41 42 43 44 45 46 47 48 49 |
# File 'lib/boringbuilder/ruby_application.rb', line 41 def runtime_environment environment = { "PORT" => port.to_s, "RACK_ENV" => "production" } environment.merge!(rails_environment) if rails? environment.merge!("HANAMI_ENV" => "production", "HANAMI_PORT" => port.to_s) if hanami? environment end |
#runtime_port ⇒ Object
63 64 65 |
# File 'lib/boringbuilder/ruby_application.rb', line 63 def runtime_port port end |
#user ⇒ Object
37 38 39 |
# File 'lib/boringbuilder/ruby_application.rb', line 37 def user rails? ? "rails" : "app" end |
#web? ⇒ Boolean
67 68 69 |
# File 'lib/boringbuilder/ruby_application.rb', line 67 def web? rails? || hanami? || rack? || !procfile_command.nil? end |