Spree Commerce: Location of GEM file - ruby-on-rails

I am newbie to Rails development and working with Spree Commerce bitnami Stack VM instance. I am trying to install spree extension and the instructions says to make configuration changes to application Gem file which I cannot find in the webserver directory
Running Rails 2.3.5
Spree 0.9.4 version

The reason why you can't find it because Gemfile is a standard from Rails 3+ and you're using a Rails2 app. Rails3 uses Bundler which takes cares about all Gems for your app.
In Rails 2 gem dependency definition is different. It doesn't have Bundler so "bundle install" also won't work in your case.
Instead you need to add Gem dependency to config/environment.rb like this:
config.gem 'your_gem_name_here'
also you need to install the Gem manually, so not like in Rails3 where Bundler installs it. Use this in shell:
gem install your_gem_name
In general it's a good idea to update the app to Rails3, I'd recommend it because as I saw this Gem you wanna use doesn't have earlier release.

Related

Do I have to install Ruby from source to get Ruby 2.2.0 and Rails 4.2.0 installed on my windows machine?

I currently have Ruby 2.2.6 and Rails 5.0.1 installed on my Windows 10 machine. I have cloned an existing project that has the following settings included in its Gemfile:
# Lock-in Lang and Framework:
ruby '2.2.0'
gem 'rails', '4.2.0'
I'm having a surprisingly hard time figuring out how to get Ruby 2.2.0 and Rails 4.2.0 installed. Ruby has good documentation of different installation options, but I think I've exhausted the Windows options without any success. Here are a couple I tried:
Installers: I couldn't find an option for downloading either from RailsInstaller, RubyInstaller, and Bitnami.
RVM: I tried (unsuccessfully) following this blog post to install cygwin so that I could use RVM, but then saw in the comments that the author now recommends spinning up a linux VM rather that using this method.
Pik and Uru: It appears Pik is no longer maintained, and I couldn't figure how to download new versions and ruby and rails with Uru as opposed to managing already downloaded versions.
EDIT: I also tried simply changing the version numbers for ruby and rails in the Gemfile to 2.2.6 and 5.0.1. When I do this I (very understandably) get a message when I try to use a rails command saying I need to run bundle update rails. When I run that rails update I get the following error: Bundler could not find compatible versions for gem "rack". I've done some googling on that option, and it looks like resolving that issue might be possible but requires some more involved tinkering with my Gemfile configuration.
I think my next option is to install Ruby from the source, but I wanted to throw a question up here first to make sure I'm not missing an easier method. So my question is - is it really this hard to get an older minor release of ruby and rails installed on Windows? I realize that the majority of users are probably looking for the most recent release, but it doesn't seem to me that my use case is terribly unique.
The oldest available Ruby 2.2.x via RubyInstaller is 2.2.1
So, the answer to your question is, "Yes, you'll have to build from source."
But then again,
v2.x of gem "rack" requires at least Ruby v2.2.2
And depending on what other gems are included in your Gemfile, you'll still have to reconfigure your Gemfile to get this app running.
So the best solution is probably to use the latest patch version of Ruby 2.2.x and lock rails to 4.2.x. (The app may not be compatible with Rails 5.x)
# Lock-in Lang and Framework:
ruby '2.2.6'
gem 'rails', '~> 4.2'
Then run bundle install to install all the gems required by the Gemfile

I need to edit the rails gemsfile, where is it?

I'm installing Ruby on Windows 10.
I already installed Ruby 2.3
When I tried to install Rails 4.2.6 I had problems with nokogiri.
Thanks to this questions and answers I was able to solve by installing nokogiri version 1.6.6.4 then rails then version 1.6.8.rc3 like this:
gem install nokogiri -v '1.6.6.4'
gem install rails
gem install nokogiri -v '1.6.8.rc3'
But after that, I'm supposed to include this:
gem 'nokogiri', '>=1.6.8.rc3'
in gemfile.
When asked, the guys says:
Hey, guys, just add gem 'nokogiri', '>=1.6.8.rc3 in your Rails
application Gemfile (outside of the development, test, production
group) and run bundle update nokogiri.
But I'm not sure where is the Rails application gemfile or which file should I edit.
From this previous question I can see how the file content is but there isnt much explanation about where do I find it.
I'm about to take a tutorial in Ruby o Rails, so I'm below noob, and the first page tutorial is about installing Ruby and Rails, it's supposed to install easy except for the nokigiri problem (only a Windows problem it seems).
The Gemfile is typically located in the root of your project and is called just that Gemfile.
Don't change the Gemfile.lock file it is written automatically.
You can find a file with name 'Gemfile' at the root of your rails application.
"The Rails application gemfile" is the file called Gemfile, in the root of your project.
You have already pasted the contents of this file in your previous question.

If my gemfile specifies a rails version, what is the purpose of installing rails?

I am being told to enhance an existing project running ruby. Coming from the Java world the package managers in Ruby/Rails are a bit confusing.
If I have a Gemfile that seem to be similar to having pom.xml with Java/Maven. If the project I have been told to work on has
gem 'rails', '3.2.13'
Does this mean rails will be automatically installed? Do I still need to use RVM to install Ruby itself separately? I'm told on this tutorial that I can install Ruby and Rails for a specific project only by calling. If the gem line does in fact install Rails automatically what program handles this execution? Where would the install be located?
rvm use ruby-2.1.1#myapp --ruby-version --create

Why doesn't Rails 2.3 generate a Gemfile?

Recently I started my adventure with Ruby on Rails using version 2.3.14. When generating a new project, why isn't Rails creating a Gemfile?
Rails 2.3 Doesn't Have Bundler Support
Why? Because it just doesn't. Rails 3 has native Bundler support, but you can add Bundler support to Rails 2.3 by following the step-by-step directions on the Bundler web site.
Roll Your Own
If you just want a Gemfile, rather than Bundler integration with Rails, you can create one easily enough.
gem install bundler
bundle init
Vendor Your Gems
In older versions of Rails, the way to handle gems was to vendor your gems. The old 2.3 version of A Guide to The Rails Command Line may help you, especially the section that covers rake gems:install.
Rails 2.3 doesn't have built-in bundler support because it came out before Bundler.
The Bundler website provides instructions for adding Bundler to Rails 2.3.
In short:
Add a config/preinitializer.rb to set up the bundled environment before Rails is loaded
Update your config/boot.rb to require the bundled gems
Move any config.gem declarations to the Gemfile
Proceed as usual

Gem compatibility in rails 2.3.4

I have currently moved to a appplication on rails 2.3.4 and ruby 1.8.7 using rvm.
There are a no of gems installed in the app.When i do gem install gem_name ,it installs it but iam not sure whether the gem version is compatible with my app.The gem versions are not specified in case of many gems listed config/environment.rb.Iam unable to figure out ,how to install the correct version as unable to run the application till now. Any suggestions are welcome..
To provide true gem-consistency in your app, you should consider use Bundler to manage these dependencies. The Gembundler site has a good guide on setup for rails 2.x apps.
Once you have your dependencies in bundler, you can start to work out what is compatible and what isn't. In the case of third-party gems, you can search for them on the RubyGems site, and work out which version was the last to be released before Rails 3.x was released. Of course most gems will just work, but any breaking gems will possibly need to run an older version.
I would use Bundler, and add the gems to the Gemfile. Here is the syntax to use a specific version:
gem 'gem-name', '1.0.4'

Resources