Gemfile 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. source 'https://rubygems.org'
  2. # Ruby 2.0 is the minimum requirement
  3. ruby ['2.0.0', RUBY_VERSION].max
  4. # Load vendored dotenv gem and .env file
  5. require File.join(File.dirname(__FILE__), 'lib/gemfile_helper.rb')
  6. GemfileHelper.load_dotenv do |dotenv_dir|
  7. path dotenv_dir do
  8. gem 'dotenv'
  9. gem 'dotenv-rails'
  10. end
  11. end
  12. # Introduces a scope for gem loading based on a condition
  13. def if_true(condition)
  14. if condition
  15. yield
  16. else
  17. # When not including the gems, we still want our Gemfile.lock
  18. # to include them, so we scope them to an unsupported platform.
  19. platform :ruby_18, &proc
  20. end
  21. end
  22. # Optional libraries. To conserve RAM, comment out any that you don't need,
  23. # then run `bundle` and commit the updated Gemfile and Gemfile.lock.
  24. gem 'twilio-ruby', '~> 3.11.5' # TwilioAgent
  25. gem 'ruby-growl', '~> 4.1.0' # GrowlAgent
  26. gem 'net-ftp-list', '~> 3.2.8' # FtpsiteAgent
  27. gem 'wunderground', '~> 1.2.0' # WeatherAgent
  28. gem 'forecast_io', '~> 2.0.0' # WeatherAgent
  29. gem 'rturk', '~> 2.12.1' # HumanTaskAgent
  30. gem 'hipchat', '~> 1.2.0' # HipchatAgent
  31. gem 'xmpp4r', '~> 0.5.6' # JabberAgent
  32. gem 'mqtt' # MQTTAgent
  33. gem 'slack-notifier', '~> 1.0.0' # SlackAgent
  34. gem 'hypdf', '~> 1.0.10' # PDFInfoAgent
  35. # Weibo Agents
  36. gem 'weibo_2', github: 'cantino/weibo_2', branch: 'master'
  37. # GoogleCalendarPublishAgent
  38. gem "google-api-client", require: 'google/api_client'
  39. # Twitter Agents
  40. gem 'twitter', '~> 5.14.0' # Must to be loaded before cantino-twitter-stream.
  41. gem 'twitter-stream', github: 'cantino/twitter-stream', branch: 'huginn'
  42. gem 'omniauth-twitter'
  43. # Tumblr Agents
  44. gem 'tumblr_client', github: 'tumblr/tumblr_client', branch: 'master' # '>= 0.8.5'
  45. gem 'omniauth-tumblr'
  46. # Dropbox Agents
  47. gem 'dropbox-api'
  48. gem 'omniauth-dropbox'
  49. # UserLocationAgent
  50. gem 'haversine'
  51. # EvernoteAgent
  52. gem 'omniauth-evernote'
  53. gem 'evernote_oauth'
  54. # LocalFileAgent (watch functionality)
  55. gem 'listen', '~> 3.0.5', require: false
  56. # S3Agent
  57. gem 'aws-sdk-core', '~> 2.2.15'
  58. # Optional Services.
  59. gem 'omniauth-37signals' # BasecampAgent
  60. gem 'omniauth-wunderlist', github: 'wunderlist/omniauth-wunderlist', ref: 'd0910d0396107b9302aa1bc50e74bb140990ccb8'
  61. # Bundler <1.5 does not recognize :x64_mingw as a valid platform name.
  62. # Unfortunately, it can't self-update because it errors when encountering :x64_mingw.
  63. unless Gem::Version.new(Bundler::VERSION) >= Gem::Version.new('1.5.0')
  64. STDERR.puts "Bundler >=1.5.0 is required. Please upgrade bundler with 'gem install bundler'"
  65. exit 1
  66. end
  67. gem 'ace-rails-ap', '~> 2.0.1'
  68. gem 'bootstrap-kaminari-views', '~> 0.0.3'
  69. gem 'bundler', '>= 1.5.0'
  70. gem 'coffee-rails', '~> 4.1.1'
  71. gem 'daemons', '~> 1.1.9'
  72. gem 'delayed_job', '~> 4.1.0'
  73. gem 'delayed_job_active_record', github: 'collectiveidea/delayed_job_active_record', branch: 'master'
  74. gem 'devise', '~> 3.5.4'
  75. gem 'em-http-request', '~> 1.1.2'
  76. gem 'faraday', '~> 0.9.0'
  77. gem 'faraday_middleware', github: 'lostisland/faraday_middleware', branch: 'master' # '>= 0.10.1'
  78. gem 'feed-normalizer'
  79. gem 'font-awesome-sass', '~> 4.3.2'
  80. gem 'foreman', '~> 0.63.0'
  81. # geokit-rails doesn't work with geokit 1.8.X but it specifies ~> 1.5
  82. # in its own Gemfile.
  83. gem 'geokit', '~> 1.8.4'
  84. gem 'geokit-rails', '~> 2.0.1'
  85. gem 'httparty', '~> 0.13'
  86. gem 'httmultiparty', '~> 0.3.16'
  87. gem 'jquery-rails', '~> 3.1.3'
  88. gem 'huginn_agent', '~> 0.4.0'
  89. gem 'json', '~> 1.8.1'
  90. gem 'jsonpathv2', '~> 0.0.3'
  91. gem 'kaminari', '~> 0.16.1'
  92. gem 'kramdown', '~> 1.3.3'
  93. gem 'liquid', '~> 3.0.3'
  94. gem 'mini_magick'
  95. gem 'multi_xml'
  96. gem 'nokogiri', '1.6.8'
  97. gem 'omniauth'
  98. gem 'rails', '4.2.7.1'
  99. gem 'rufus-scheduler', '~> 3.0.8', require: false
  100. gem 'sass-rails', '~> 5.0.6'
  101. gem 'select2-rails', '~> 3.5.4'
  102. gem 'spectrum-rails'
  103. gem 'string-scrub' # for ruby <2.1
  104. gem 'therubyracer', '~> 0.12.2'
  105. gem 'typhoeus', '~> 0.6.3'
  106. gem 'uglifier', '~> 2.7.2'
  107. group :development do
  108. gem 'better_errors', '~> 1.1'
  109. gem 'binding_of_caller'
  110. gem 'quiet_assets'
  111. gem 'guard', '~> 2.13.0'
  112. gem 'guard-livereload', '~> 2.5.1'
  113. gem 'guard-rspec', '~> 4.6.4'
  114. gem 'rack-livereload', '~> 0.3.16'
  115. gem 'letter_opener_web'
  116. gem 'capistrano', '~> 3.4.0'
  117. gem 'capistrano-rails', '~> 1.1'
  118. gem 'capistrano-bundler', '~> 1.1.4'
  119. if_true(ENV['SPRING']) do
  120. gem 'spring-commands-rspec', '~> 1.0.4'
  121. gem 'spring', '~> 1.6.3'
  122. end
  123. group :test do
  124. gem 'coveralls', '~> 0.7.4', require: false
  125. gem 'capybara-select2', require: false
  126. gem 'delorean'
  127. gem 'poltergeist'
  128. gem 'pry-rails'
  129. gem 'pry-byebug'
  130. gem 'rr'
  131. gem 'rspec', '~> 3.5'
  132. gem 'rspec-collection_matchers', '~> 1.1.0'
  133. gem 'rspec-rails', '~> 3.5.1'
  134. gem 'rspec-html-matchers', '~> 0.7'
  135. gem 'shoulda-matchers'
  136. gem 'vcr'
  137. gem 'webmock', '~> 1.17.4', require: false
  138. gem 'database_cleaner', '~> 1.5.3'
  139. end
  140. end
  141. group :production do
  142. gem 'rack', '> 1.5.0'
  143. gem 'unicorn', '~> 4.9.0'
  144. end
  145. # Platform requirements.
  146. gem 'ffi', '>= 1.9.4' # required by typhoeus; 1.9.4 has fixes for *BSD.
  147. gem 'tzinfo', '>= 1.2.0' # required by rails; 1.2.0 has support for *BSD and Solaris.
  148. # Windows does not have zoneinfo files, so bundle the tzinfo-data gem.
  149. gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw]
  150. on_heroku = ENV['ON_HEROKU'] ||
  151. ENV['HEROKU_POSTGRESQL_ROSE_URL'] ||
  152. ENV['HEROKU_POSTGRESQL_GOLD_URL'] ||
  153. File.read(File.join(File.dirname(__FILE__), 'Procfile')) =~ /intended for Heroku/
  154. ENV['DATABASE_ADAPTER'] ||=
  155. if on_heroku
  156. 'postgresql'
  157. else
  158. 'mysql2'
  159. end
  160. if_true(on_heroku) do
  161. gem 'rails_12factor', group: :production
  162. end
  163. if_true(ENV['DATABASE_ADAPTER'].strip == 'postgresql') do
  164. gem 'pg', '~> 0.18.3'
  165. end
  166. if_true(ENV['DATABASE_ADAPTER'].strip == 'mysql2') do
  167. gem 'mysql2', '~> 0.3.20'
  168. end
  169. GemfileHelper.parse_each_agent_gem(ENV['ADDITIONAL_GEMS']) do |args|
  170. gem *args
  171. end