summaryrefslogtreecommitdiff
path: root/Gemfile
blob: 7a17dcdf35969ce8e27ddfcaf125023e91f53e71 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
source 'https://rubygems.org'

require File.expand_path('../lib/gemfile_tools.rb', __FILE__)

## CORE
# rake 11.x throws lots of warnings about rails 3.2 code
gem "rake"
gem "rails", "~> 4.2.7"
# TODO: drop this and the respond_with usage
gem 'responders', '~> 2.0'
gem "couchrest", "~> 2.0.0.rc3"
gem "couchrest_model", "~> 2.1.0.beta2"
if ARGV.grep(/assets:precompile/).empty?
  gem "couchrest_session_store", "~> 0.4.2"
end

## AUTHENTICATION
gem "ruby-srp", "~> 0.2.1"
gem "rails_warden"

## CRYPTO
# we need certificate_authority v2.0, but was never released to rubygems,
# and travis does not work well with github sources, so vendored here:
gem 'certificate_authority', :path => 'vendor/gems/certificate_authority'

## LOCALIZATION
gem 'http_accept_language'
gem 'rails-i18n'  # locale files for built-in validation messages and times
                  # https://github.com/svenfuchs/rails-i18n
                  # for a list of keys:
                  # https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/en.yml
gem 'common_languages', :path => 'vendor/gems/common_languages'

## VIEWS
gem 'kaminari'
gem 'rdiscount'   # for rendering .md templates

## ASSETS
gem "jquery-rails"
gem "simple_form"
gem 'client_side_validations'
gem 'client_side_validations-simple_form'
gem "haml-rails"
gem "bootstrap-sass"
gem "sass-rails"
group :production do
  gem "uglifier"
  gem 'therubyracer', :platforms => :ruby
  #    ^^ See https://github.com/sstephenson/execjs#readme
  #      for list of supported runtimes.
end

##
## ENVIRONMENT SPECIFIC GEMS
##

group :test do
  # integration testing
  gem 'capybara', require: false
  gem 'poltergeist'         # headless js
  gem 'launchy'             # save_and_open_page
  gem 'phantomjs-binaries'  # binaries specific to the os

  # moching and stubbing
  gem 'mocha', :require => false
  gem 'minitest-stub-const' # why?

  # generating test data
  gem 'factory_bot_rails'   # test data factories
  gem 'faker'               # names and numbers for test data
  gem 'psych', '~> 2.2.4'   # needed by faker

  # billing tests
  gem 'fake_braintree', require: false

  # we use cucumber to document and test the api
  gem 'cucumber-rails', require: false
  gem 'cucumber', '~> 2.4.0'  # version that still supports ruby 2.1
end

group :test, :development do
  gem 'i18n-missing_translations'
  gem 'pry'
end

group :production do
  gem 'SyslogLogger', '~> 2.0'
end

group :development do
  # gem "better_errors" << currently incompatible with haml
  gem "binding_of_caller"
end

group :test, :debug do
  # bundler on jessie doesn't support `:platforms => :ruby_21`
  gem 'byebug', '~> 9.0.6'
end

##
## OPTIONAL GEMS AND ENGINES
##
gem 'twitter'

enabled_engines.each do |name, gem_info|
  gem gem_info[:name], :path => gem_info[:path], :groups => gem_info[:env]
end

custom_gems.each do |name, gem_info|
  gem gem_info[:name], :path => gem_info[:path]
end

##
## DEPENDENCIES FOR OPTIONAL ENGINES
##

gem 'valid_email' # used by leap_web_help