class Warbler::Traits::Rails
The Rails
trait invokes the Rake environment task and sets up Rails
for a war-based project.
Public Class Methods
detect?()
click to toggle source
# File lib/warbler/traits/rails.rb, line 14 def self.detect? File.exist?('config/environment.rb') end
requirements()
click to toggle source
# File lib/warbler/traits/rails.rb, line 18 def self.requirements [ Traits::War ] end
Public Instance Methods
after_configure()
click to toggle source
# File lib/warbler/traits/rails.rb, line 46 def after_configure config.init_contents << "#{config.warbler_templates}/rails.erb" if config.webxml.jruby.min.runtimes.is_a?(OpenStruct) && config.webxml.jruby.max.runtimes.is_a?(OpenStruct) # not set if rails_major_version(0) >= 4 || threadsafe_enabled? config.webxml.jruby.min.runtimes = 1 config.webxml.jruby.max.runtimes = 1 end end config.includes += FileList["public/assets/.sprockets-manifest-*.json"].existing config.includes += FileList["public/assets/manifest-*.json"].existing config.includes += FileList["public/assets/manifest.yml"].existing end
before_configure()
click to toggle source
# File lib/warbler/traits/rails.rb, line 22 def before_configure config.jar_name = default_app_name config.webxml.rails.env = ENV['RAILS_ENV'] || 'production' config.pathmaps.public_html << "%{packs/(manifest.*),WEB-INF/public/packs/\\1}p" return unless Warbler.framework_detection return false unless task = Warbler.project_application.lookup('environment') task.invoke rescue nil return false unless defined?(::Rails) config.dirs << 'tmp' if File.directory?('tmp') config.webxml.booter = :rails unless (defined?(::Rails.vendor_rails?) && ::Rails.vendor_rails?) || File.directory?('vendor/rails') config.gems['rails'] = ::Rails::VERSION::STRING unless Bundler.detect? end if defined?(::Rails.configuration.gems) ::Rails.configuration.gems.each do |g| config.gems << Gem::Dependency.new(g.name, g.requirement) if Dir["vendor/gems/#{g.name}*"].empty? end end config.script_files << "#{config.warbler_scripts}/rails.rb" end
default_app_name()
click to toggle source
# File lib/warbler/traits/rails.rb, line 62 def default_app_name File.basename(File.expand_path(defined?(::Rails.root) ? ::Rails.root : (defined?(RAILS_ROOT) ? RAILS_ROOT : Dir.getwd))) end
rails_major_version(default = 0)
click to toggle source
# File lib/warbler/traits/rails.rb, line 77 def rails_major_version(default = 0) begin File.open("#{ENV['BUNDLE_GEMFILE'] || 'Gemfile'}.lock") do |file| file.each_line do |line| match = line.match( /^\s*rails\s\(\s*(\d)\.\d+\.\d+.*\)$/ ) return match[1].to_i if match end end rescue end default end
threadsafe_enabled?()
click to toggle source
# File lib/warbler/traits/rails.rb, line 66 def threadsafe_enabled? rails_env = config.webxml.rails.env begin unless IO.readlines("config/environments/#{rails_env}.rb").grep(/^\s*config\.threadsafe!/).empty? && IO.readlines("config/environment.rb").grep(/^\s*config\.threadsafe!/).empty? return true end rescue end end