How to solve the «Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.» problem?

июля 4, 2012  |  Published in Ruby, Ruby Gems, Расширения

So, how to solve the «Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.» problem?

You can solve this problem by adding ‘—with-ruby-include‘ option to ‘gem install‘ command. Firstly, check your current Ruby interpreter version with this:

$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux]

Or this:

$ rvm current
ruby-1.9.3-p194@r326

Secondly, you should install ruby gem that you want to be installed with this:

$ gem install <ruby gem name> — —with-ruby-include=$rvm_path/src/<ruby version>

For me Ruby version is ruby-1.9.3-p194. Real example:

$ gem install ruby-debug19 — —with-ruby-include=$rvm_path/src/ruby-1.9.3-p194/

Thats all! Happy developing with Ruby, friends!

Tags: , ,

Stamp — форматирование даты и времени по-человечески

июля 7, 2011  |  Published in Ruby, Ruby Gems

— совсем молодой и совсем простой и маленький gem, который позволяет в очень удобный способ форматировать дату и время.

Устанавливается Stamp абсолютно так же, как и остальные gem’ы:

$ gem install stamp

Как что работает?

Stamp добавляет в экземпляры Date и Time классов могущественный метод #stamp, который принимает шаблон в соответствии с которым производит форматирование. Чтобы поиграться — запустим сеанс irb:

$ irb
require 'stamp' #=> true

date = Date.today
  #=> #<Date: 2011-07-07 (4911499/2,0,2299161)>
date.stamp("Now: 2000/01/01")
  #=> "Now: 2011/07/07"
date.stamp("%Y,%m,%d")
  #=> "2011,07,07"
date.stamp("1 April, 1873 year")
  #=> " 7 July, 2011 year"

То же актуально и для экземпляров Time:

time = Time.now
  #=> 2011-07-07 14:02:28 +0300
ruby-1.9.2-p180 :019 > time.stamp("%H:%M:%S")
  #=> "14:02:28"
ruby-1.9.2-p180 :024 > time.stamp("23:34")
  #=> "14:02"
ruby-1.9.2-p180 :025 > time.stamp("23:34:12")
  #=> "14:02:28"

Признаться честно, stamp не всегда работает так, как хочется, примеры:

date.stamp("1-1-2003")
  #=> " 7- 7-2011" - ненужный пробел!

date = Date.new(2011,12,3)
  #=> #<Date: 2011-12-03 (4911797/2,0,2299161)>
date.stamp("%d/%Y/%m")
  #=> "03/2011/12"
ruby-1.9.2-p180 :030 > date.stamp("12/12/11")
  #=> "12/12/03" - куда делся 11 год и почему дата отформатирована именно так?

Что я думаю
Stamp — полезный инструмент, который уже можно использовать для, так сказать, простого, стандартного форматирования, однако для извращений вроде %d%Y%m он не подходит, разве что используя спецсимволы форматирования, но тогда, какой смысл использовать stamp? Будем надеяться, что автор не забросит проект и будет его развивать и в скором времени мы увидим реально мощный инструмент форматирования даты и времени в любойформат, какой только может придуматься воспаленным мозгом (хотя, зачем?). Также важным для нас — русско-/украинско-/белорусско- говорящих фактором является то, что отсутствуют наши, родные названия месяцов, хотя это и не сложно допилить в каком-нить stamp-for-SNG форке =).

Линкусики:
GitHub repo:

— онлайн форматер даты и времени (можно подсматреть спецсимволы форматирования), который принадлежит тому же Джереми Вeйскоттену, который создал gem Stamp.

автора Stamp — Джереми Вейскоттена.

Tags: ,