Thursday, October 16, 2014

set environment variable

Insert these lines of code to the config/application.rb after lineconfig.assets.version = '1.0':

config.before_configuration do
      env_file = File.join(Rails.root, 'config', 'paypal.yml')
      YAML.load(File.open(env_file)).each do |key, value|
        ENV[key.to_s] = value
      end if File.exists?(env_file)
    end

Git vs. SVN - Basic Commandline Syntax Reference

Learning the git workflow takes a bit of brain retraining, but since I've been using SVN almost entirely via commandline (because Subversive sucks and locks up my Eclipse when I try to use it for anything beyond synching/updating/committing a handful of files), adopting git's commandline syntax is reasonably similar. Consider these simple operations:
Initial checkout from existing repo for a given branchgit clone http://github.com/sonatype/sonatype-tycho.git; cd sonatype-tycho; git checkout origin/tycho-0.10.xsvn checkout http://anonsvn.jboss.org/repos/jbosstools/branches/jbosstools-3.2.0.Beta1/
Update locally checked out files from central repogit pullsvn update
List locally changes files/foldersgit statussvn stat
Diff locally changed filegit diff somefile.txtsvn diff somefile.txt
Revert locally changed file*git checkout somefile.txtsvn revert somefile.txt
Revert ALL local changes (except untracked files)*git reset --hard HEADsvn revert . -R
Add new filegit add file.txtsvn add file.txt
Add new folder recursivelygit add foldersvn add folder
Delete filegit rm file.txtsvn rm file.txt
Delete foldergit rm -r folder (non-recursive by default; use -r to recurse)svn rm folder (recursive by default; use -N to not recurse)
Commit changed file to central repogit commit -m "message" file.txt; git pushsvn ci -m "message" file.txt
Ignore files/folders (in the current folder)echo "target
*.class
bin" > .gitignore; \
git ci -m "gitignore" .gitignore
svn propset svn:ignore "target
*.class
bin" .; \
svn ci -N -m "svn:ignore" .
Obviously you can do a lot more w/ Git than with SVN (like stashing local changes temporarily), but for the sake of simply moving from a VCS to a DVCS and being able to continue to work the same way you already do, the above table should provide a good introduction.

15 Best Ruby on Rails Gem Used for an application

Devise (https://rubygems.org/gems/devise): Since some years ago, it represents the authentication mechanism preferred by all Rails developers. Powerful, flexible, allows to integrate with OAuth authentication systems with a minimal effort.

Haml (https://rubygems.org/gems/haml): Allows you to write valid XHTML concisely. The learning curve is relatively short.

Gritter (https://rubygems.org/gems/gritter): After years of flash messages in the classic div in the page, we moved to Growl like notifications. Thanks to these pop-ups, we can show our flash messages in any page in a completely non-invasive and elegant way.

Cells (https://rubygems.org/gems/cells): Cells can really keep our controllers very skinny. We use it to represent and caching some boxes, like “recommended items”, “top users” and so on. I really like Cells over the use of helpers.

FriendlyId (https://rubygems.org/gems/friendly_id): A perfect gem to make our url seo friendly.

SimpleForm (https://rubygems.org/gems/simple_form): We use it primarily for its excellent integration with Bootstrap and for its ease of use.

Paperclip (https://rubygems.org/gems/paperclip): Despite the years, it still remains the reference point for attachments management .

Kaminari (https://rubygems.org/gems/kaminari): Useful gem to manage paginated collections .

Cancan (https://rubygems.org/gems/cancan): Our choice to manage permissions. We never have had the need to use some other solution .

Resque (https://rubygems.org/gems/resque) or Delayed Job (https://rubygems.org/gems/delayed_job): Both are valuable supports to manage background processes. If you do not have enough resources to set up a Redis server, we recommend Delayed Job.

Sunspot (https://rubygems.org/gems/sunspot): After a brief period with thinking_sphinx, we have moved to this very powerful indexing engine. Thanks to Solr, we can easily implement geolocated full text searches. The only problem is that you need to configure a dedicated Tomcat server. If you do not have these resources, we recommend using pg_search (https://rubygems.org/gems/pg_search) with a Postgres database or the old but still valid meta_search (http://rubygems.org/gems/meta_search) .

ActiveAdmin (https://rubygems.org/gems/activeadmin): When it is necessary to set up a back office administration in a short time, here is the right gem. Powerful, fairly customizable, ideal for simple administration interfaces.

Letter opener (https://rubygems.org/gems/letter_opener): Useful to test sending emails simply by opening them in a browser window .

RSpec (https://rubygems.org/gems/rspec): A perfect gem to test our models in a BDD way.

Capybara (https://rubygems.org/gems/capybara) : In addition to unit test the models, we like to create a suite of acceptance tests. Capybara allows you to test all the application’s user stories relatively quickly.