require "softwear/lib/version" require "softwear/lib/spec" module Softwear module Lib def self.common_gems(gemfile) gemfile.instance_eval do gem 'rails', '4.2.1' gem 'softwear-lib' gem 'mysql2' gem 'sass-rails' gem 'uglifier', '>= 1.3.0' gem 'coffee-rails', '~> 4.0.0' gem 'bootstrap-sass', '~> 3.2.0' gem 'activeresource' gem 'jquery-rails' gem 'jquery-ui-rails' gem 'hirb' gem 'momentjs-rails', '~> 2.9.0' gem 'bootstrap3-datetimepicker-rails', '4.7.14' gem 'js-routes' gem 'inherited_resources' gem 'devise' gem 'figaro' gem 'paranoia', '~> 2.0' gem 'paperclip' gem 'kaminari' gem 'whenever' gem 'dumpsync', git: 'git://github.com/AnnArborTees/dumpsync.git' gem 'bootstrap_form' gem 'acts_as_warnable', git: 'git://github.com/AnnArborTees/acts_as_warnable.git' group :development do gem 'capistrano', '~> 3.2.0' gem 'capistrano-rvm' gem 'capistrano-rails' gem 'capistrano-bundler' gem 'better_errors', '>= 0.3.2' gem 'binding_of_caller' end group :development, :test do gem 'byebug', platforms: :mri gem 'rubinius-debugger', platforms: :rbx end group :test do gem "rspec-rails", "~> 3.2.0" gem 'factory_girl_rails', '>= 4.2.0', require: false gem 'capybara', '~> 2.4' gem 'capybara-webkit' gem 'webmock', require: false gem 'rspec-mocks' gem 'rspec-retry' gem 'email_spec' gem 'selenium-webdriver' gem 'shoulda-matchers' end end end def self.capistrano(context) context.instance_eval do ruby = fetch(:rvm_ruby_string) || fetch(:rvm_ruby_version) gem_home_1 = fetch(:gems_path) || "~/.rvm/rubies/#{ruby}/gems" gem_home_2 = "~/.rvm/gems/#{ruby}" namespace :deploy do desc 'Assure softwear-lib is up to date before deploying' task :update_softwear_lib do on roles(:app), in: :sequence do execute "gem install -i #{gem_home_1} softwear-lib" execute "gem install -i #{gem_home_2} softwear-lib" end end before :updating, :update_softwear_lib end end end def self.fix_sort_argument_error_on_rubinius # Rubinius calls Enumerator#sort! within Enumerator#sort_by, # # and Mail::PartsList calls sort_by within sort!... See the # problem? if RUBY_ENGINE == 'rbx' require 'mail' Mail::PartsList.class_eval do def map!(&block) Mail::PartsList.new(collect(&block)) end def sort!(order = nil) return super() if order.nil? i = 0 sorted = self.sort_by do |a| [get_order_value(a, order), i += 1] end self.clear sorted.each(&self.method(:<<)) end end end end def self.fix_state_machine_around_validation StateMachine::Integrations::ActiveModel.instance_eval { public :around_validation } end end end