The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.
Difference between revisions of "Package:Ruby"
Threesixes (talk | contribs) m (almost ironed all the bugs out, possible another commit and it will be ready for production) |
Threesixes (talk | contribs) (add puma section, remove warnings, fix console spacings, add categories, adjust links to reflect ruby rather than rubygems since the gems article got railroaded to ruby some how) |
||
Line 1: | Line 1: | ||
{{Ebuild | {{Ebuild | ||
|Summary=Centralized Ruby extension management system | |Summary=Centralized Ruby extension management system | ||
|CatPkg=dev-ruby/ | |CatPkg=dev-ruby/ruby | ||
|Maintainer= | |Maintainer= | ||
|Homepage= | |Homepage=https://www.ruby-lang.org | ||
}} | }} | ||
Ruby is a programming language with its own package management system to extend the language. | |||
Rubygems is a package management system to extend the ruby language. | Rubygems is a package management system to extend the ruby language. | ||
Line 14: | Line 15: | ||
Emerge ruby & rubygems: | Emerge ruby & rubygems: | ||
<console>###i##emerge ruby rubygems</console> | <console>###i## emerge ruby rubygems</console> | ||
Remove | Remove conflicting gems: | ||
<console>###i##emerge -C dev-ruby/rake dev-ruby/racc dev-ruby/json dev-ruby/rdoc</console> | <console>###i## emerge -C dev-ruby/rake dev-ruby/racc dev-ruby/json dev-ruby/rdoc</console> | ||
Flush | Flush conflicting gems bad specs: | ||
<console>###i##mv /usr/local/lib64/ruby/gems/2.1.0/specifications/ /usr/local/lib64/ruby/gems/2.1.0/specifications.backup</console> | <console>###i## mv /usr/local/lib64/ruby/gems/2.1.0/specifications/ /usr/local/lib64/ruby/gems/2.1.0/specifications.backup</console> | ||
Fetch gems via rubygems: | Fetch gems via rubygems: | ||
<console>###i##gem install rdoc json rake racc</console> | <console>###i## gem install rdoc json rake racc</console> | ||
<console>rubygems-update</console> | <console>###i## rubygems-update</console> | ||
update gem system: | update gem system: | ||
<console>###i##update_rubygems | <console>###i## update_rubygems | ||
###i##gem update --system | ###i## gem update --system | ||
###i##gem pristine --all | ###i## gem pristine --all | ||
</console> | </console> | ||
Now you're ready to use gem to manage gems. | Now you're ready to use gem to manage gems. | ||
To add gems to your path: | |||
{{file|name=$HOME/.bashrc|desc=add gem bin directory to your path|body= | |||
PATH="$(ruby -rubygems -e 'puts Gem.user_dir')/bin:$PATH" | |||
}} | |||
==ruby on rails== | ==ruby on rails== | ||
<console>###i##gem install rails | <console>###i## gem install rails | ||
###i##rails new testproject | ###i## rails new testproject | ||
###i##cd testproject | ###i## cd testproject | ||
###i##bundle install</console> | ###i## bundle install</console> | ||
==puma== | |||
puma is a fast web server for ruby on rails. | |||
To enable puma in your project: | |||
{{file|name=$HOME/testproject/Gemfile|desc=add puma gem to your rails application|body= | |||
gem 'puma' | |||
}} | |||
To pull in puma: | |||
<console>###i## bundle install</console> | |||
{{file|name=$HOME/testproject/config/puma.rb|desc=puma configuration file|body= | |||
<pre>workers Integer(ENV['PUMA_WORKERS'] || 3) | |||
threads Integer(ENV['MIN_THREADS'] || 1), Integer(ENV['MAX_THREADS'] || 16) | |||
preload_app! | |||
rackup DefaultRackup | |||
port ENV['PORT'] || 3000 | |||
environment ENV['RACK_ENV'] || 'development' | |||
on_worker_boot do | |||
# worker specific setup | |||
ActiveSupport.on_load(:active_record) do | |||
config = ActiveRecord::Base.configurations[Rails.env] || | |||
Rails.application.config.database_configuration[Rails.env] | |||
config['pool'] = ENV['MAX_THREADS'] || 16 | |||
ActiveRecord::Base.establish_connection(config) | |||
end | |||
end</pre> | |||
}} | |||
to start puma: | |||
<console>###i## bundle exec puma</console> | |||
or if you added gems bin dir to your path | |||
<console>###i## puma</console> | |||
[[Category:Programming language]] | |||
{{EbuildFooter}} | {{EbuildFooter}} |
Revision as of 19:44, August 23, 2014
Ruby
We welcome improvements to this page. To edit this page, Create a Funtoo account. Then log in and then click here to edit this page. See our editing guidelines to becoming a wiki-editing pro.
Ruby is a programming language with its own package management system to extend the language.
Rubygems is a package management system to extend the ruby language.
Gems are packaged wonky in portage so this page will explain how to work with rubygems rather than fight it. Arch wiki outlines a similar method.
https://wiki.archlinux.org/index.php/Ruby#RubyGems
Emerge ruby & rubygems:
root # emerge ruby rubygems
Remove conflicting gems:
root # emerge -C dev-ruby/rake dev-ruby/racc dev-ruby/json dev-ruby/rdoc
Flush conflicting gems bad specs:
root # mv /usr/local/lib64/ruby/gems/2.1.0/specifications/ /usr/local/lib64/ruby/gems/2.1.0/specifications.backup
Fetch gems via rubygems:
root # gem install rdoc json rake racc
root # rubygems-update
update gem system:
root # update_rubygems root # gem update --system root # gem pristine --all
Now you're ready to use gem to manage gems.
To add gems to your path:
$HOME/.bashrc
- add gem bin directory to your pathPATH="$(ruby -rubygems -e 'puts Gem.user_dir')/bin:$PATH"
ruby on rails
root # gem install rails root # rails new testproject root # cd testproject root # bundle install
puma
puma is a fast web server for ruby on rails.
To enable puma in your project:
$HOME/testproject/Gemfile
- add puma gem to your rails applicationgem 'puma'
To pull in puma:
root # bundle install
$HOME/testproject/config/puma.rb
- puma configuration fileworkers Integer(ENV['PUMA_WORKERS'] || 3)
threads Integer(ENV['MIN_THREADS'] || 1), Integer(ENV['MAX_THREADS'] || 16)
preload_app!
rackup DefaultRackup
port ENV['PORT'] || 3000
environment ENV['RACK_ENV'] || 'development'
on_worker_boot do
# worker specific setup
ActiveSupport.on_load(:active_record) do
config = ActiveRecord::Base.configurations[Rails.env] ||
Rails.application.config.database_configuration[Rails.env]
config['pool'] = ENV['MAX_THREADS'] || 16
ActiveRecord::Base.establish_connection(config)
end
end
to start puma:
root # bundle exec puma
or if you added gems bin dir to your path
root # puma