class Vx::Builder::ScriptBuilderV2::Ruby
Constants
- ALIASES
- DEFAULT_RUBY
Public Instance Methods
call(env)
click to toggle source
# File lib/vx/builder/script_builder_v2/ruby.rb, line 13 def call(env) if enabled?(env) do_cache_key(env) do |k| ruby_v = ruby_version(env) k << "rvm-#{ruby_v}" k << gemfile(env) end do_cached_directories(env) do |i| i << "~/.rubygems" end env.stage("init").tap do |i| if jruby?(env) i.add_env "JRUBY_OPTS", "\"-Xcext.enabled=true\"" end i.add_env "RAILS_ENV", "test" i.add_env "RACK_ENV", "test" i.add_env "GEM_HOME", "~/.rubygems" end env.stage("install").tap do |i| i.add_task "ruby", "action" => "install", "ruby" => ruby_version(env) i.add_task "ruby", "announce" do_install(env) do i.add_env "BUNDLE_GEMFILE", "${PWD}/#{gemfile(env)}" if args = env.source.bundler_args.first i.add_task "ruby", "action" => "bundle:install", "bundler_args" => args else i.add_task "ruby", "bundle:install" end end end env.stage("database").tap do |i| do_database(env) do i.add_task "ruby", "rails:database" end end env.stage("script").tap do |i| do_script(env) do i.add_task "ruby", "script" end end end app.call(env) end
Private Instance Methods
enabled?(env)
click to toggle source
# File lib/vx/builder/script_builder_v2/ruby.rb, line 68 def enabled?(env) env.source.rvm.first || env.source.language == 'ruby' end
gemfile(env)
click to toggle source
# File lib/vx/builder/script_builder_v2/ruby.rb, line 81 def gemfile(env) env.source.gemfile.first || "Gemfile" end
jruby?(env)
click to toggle source
# File lib/vx/builder/script_builder_v2/ruby.rb, line 77 def jruby?(env) ruby_version(env) =~ /jruby/ end
ruby_version(env)
click to toggle source
# File lib/vx/builder/script_builder_v2/ruby.rb, line 72 def ruby_version(env) v = env.source.rvm.first ALIASES[v] || v || DEFAULT_RUBY end