开发者

Branch of a Gem is not installed correctly with Rails and Gemfile

开发者 https://www.devze.com 2023-02-05 23:18 出处:网络
Initial Problem I was using yaml_db in a Rails project, but it seems the default branch has some issues with boolean records. Now I know that there\'s a branch on github that has a fixed version.

Initial Problem

I was using yaml_db in a Rails project, but it seems the default branch has some issues with boolean records. Now I know that there's a branch on github that has a fixed version.

I changed my Gemfile so that this branch will be installed instead of the default yaml_db,

gem 'yaml_db', :git => "https://github.com/robsharp/yaml_db.git"

I run bundle install and it shows:

Using yaml_db (0.2.0) from https://github.com/robsharp/yaml_db.git (at master).

Your bundle is complete! It was installed into /Users/user/.rvm/gems/ruby-1.9.2-p0

Fine. Now the fixed file in the Git repository should have this line in lib/serialization_helper.rb:

record[column] = convert_boolean(record[column])

Yet, when I look at my local file, which is .rvm/gems/ruby-1.9.2-p0/bundler/gems/yaml_db-ca178cfb59cf/lib/serialization_helper.rb, it still shows the unpatched old line:

record[column] = (record[column] == 't' or record[column] == '1')

Fine, seems as my loca开发者_开发百科l file isn't changed.


Gem not being installed correctly

Running gem list won't show me yaml_db at all. I removed the Gem lockfile and installed the bundle again, still there is no yaml_db in my Gem listing. Running gem install yaml_db of course only installs the broken version.


Manual Install

I now try to manually install from the Git source.

git clone https://github.com/robsharp/yaml_db.git
cd yaml_db
git checkout -b fix_boolean_checks_to_support_oracle

Still, the serialization_helper.rb file is not updated correctly. I just manually changed it and built the Gem. Everything works fine now.

My new question: Why won't it check out the correct file?


If you run gem list yaml_db and see multiple versions in parenthesis, define the version you need in your Gemfile like so

gem 'yaml_db', '~> 0.2.0', :git => "https://github.com/robsharp/yaml_db.git"

I had a similar problem and found out that the Gemfile.lock file stored my old and not–updated version and used that for my project.

0

精彩评论

暂无评论...
验证码 换一张
取 消