Gemfile 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. source 'https://rubygems.org'
  2. ruby '>=3.2.4'
  3. # Ensure github repositories are fetched using HTTPS
  4. git_source(:github) do |repo_name|
  5. "https://github.com/#{repo_name}.git"
  6. end
  7. # Load vendored dotenv gem and .env file
  8. require File.join(File.dirname(__FILE__), 'lib/gemfile_helper.rb')
  9. GemfileHelper.load_dotenv do |dotenv_dir|
  10. path dotenv_dir do
  11. gem 'dotenv'
  12. end
  13. end
  14. # Introduces a scope for gem loading based on a condition
  15. def if_true(condition, &block)
  16. if condition
  17. yield
  18. else
  19. # When not including the gems, we still want our Gemfile.lock
  20. # to include them, so we scope them to an unsupported platform.
  21. platform :ruby_18, &block
  22. end
  23. end
  24. # Optional libraries. To conserve RAM, comment out any that you don't need,
  25. # then run `bundle` and commit the updated Gemfile and Gemfile.lock.
  26. gem 'erector', github: 'dsander/erector', branch: 'rails6'
  27. gem 'pirate_weather_forecast_ruby' # WeatherAgent
  28. gem 'hipchat', '~> 1.6.0' # HipchatAgent
  29. gem 'hypdf', bitbucket: 'knu/hypdf_gem', branch: 'uploadio_namespace' # PDFInfoAgent
  30. gem 'mini_racer' # JavaScriptAgent
  31. gem 'mqtt' # MQTTAgent
  32. gem 'net-ftp'
  33. gem 'net-ftp-list' # FtpsiteAgent
  34. gem 'rturk', '~> 2.12.1' # HumanTaskAgent
  35. gem 'slack-notifier', '~> 2.4.0' # SlackAgent
  36. gem 'twilio-ruby', '~> 7.3.6' # TwilioAgent
  37. gem 'xmpp4r', '~> 0.5.6' # JabberAgent
  38. # Weibo Agents
  39. # FIXME needs to loosen omniauth dependency, add rest-client
  40. gem 'weibo_2', github: 'albertsun/weibo_2', branch: 'master'
  41. # GoogleCalendarPublishAgent and GoogleTranslateAgent
  42. gem 'google-api-client', '~> 0.53'
  43. gem 'google-cloud-translate-v2'
  44. # Twitter Agents
  45. gem 'omniauth-twitter'
  46. gem 'twitter', github: 'sferik/twitter' # Must to be loaded before cantino-twitter-stream.
  47. gem 'twitter-stream', github: 'cantino/twitter-stream', branch: 'huginn'
  48. # Tumblr Agents
  49. gem 'omniauth-tumblr'
  50. gem 'tumblr_client', github: 'IFTTT/tumblr_client'
  51. # Dropbox Agents
  52. gem 'dropbox-api', github: 'dsander/dropbox-api', ref: '86cb7b5a1254dc5b054de7263835713c4c1018c7'
  53. gem 'omniauth-dropbox-oauth2', github: 'huginn/omniauth-dropbox-oauth2'
  54. # UserLocationAgent
  55. gem 'haversine'
  56. # EvernoteAgent
  57. gem 'evernote_oauth'
  58. gem 'omniauth-evernote'
  59. # LocalFileAgent (watch functionality)
  60. gem 'listen', '~> 3.9.0', require: false
  61. # S3Agent
  62. gem 'aws-sdk-s3', '~> 1', '>= 1.171.0'
  63. # ImapFolderAgent
  64. gem 'gmail_xoauth' # support for Gmail using OAuth
  65. gem 'omniauth-google-oauth2', '~> 1.0.1'
  66. # Bundler <1.5 does not recognize :x64_mingw as a valid platform name.
  67. # Unfortunately, it can't self-update because it errors when encountering :x64_mingw.
  68. unless Gem::Version.new(Bundler::VERSION) >= Gem::Version.new('1.5.0')
  69. warn "Bundler >=1.5.0 is required. Please upgrade bundler with 'gem install bundler'"
  70. exit 1
  71. end
  72. gem 'ace-rails-ap'
  73. gem 'bootsnap', require: false
  74. gem 'bootstrap-kaminari-views', '~> 0.0.5'
  75. gem 'bundler', '>= 2.5.23'
  76. gem 'coffee-rails', '~> 5'
  77. gem 'daemons'
  78. gem 'delayed_job'
  79. gem 'delayed_job_active_record'
  80. gem 'devise', '~> 4.9', '>= 4.9.4'
  81. gem 'em-http-request'
  82. gem 'execjs'
  83. gem 'faraday'
  84. # gem 'faraday-em_http'
  85. gem 'faraday-follow_redirects'
  86. gem 'faraday-gzip'
  87. # gem 'faraday-httpclient'
  88. gem 'faraday-typhoeus'
  89. gem 'feedjira', '~> 3.2', '>= 3.2.3'
  90. gem 'font-awesome-sass', '~> 6.5.2'
  91. gem 'foreman', '~> 0.88.1', github: 'ddollar/foreman'
  92. gem 'geokit', '~> 1.14'
  93. gem 'geokit-rails', '~> 2.5'
  94. gem 'httmultiparty', '~> 0.3.16'
  95. gem 'httparty', '~> 0.22'
  96. gem 'huginn_agent'
  97. gem 'jquery-rails', '~> 4.6'
  98. gem 'json', '~> 2.8', '>= 2.8.2'
  99. gem 'jsonpath', '~> 1.1', '>= 1.1.5'
  100. gem 'kaminari', '~> 1.2', '>= 1.2.2'
  101. gem 'kramdown'
  102. gem 'liquid', '~> 5.5', '>= 5.5.1'
  103. gem 'loofah', '~> 2.23', '>= 2.23.1'
  104. gem 'mail', '>= 2.8.1'
  105. gem 'mini_magick', ">= 5.0.1"
  106. gem 'multi_xml'
  107. gem "nokogiri", ">= 1.16.7"
  108. gem 'omniauth'
  109. gem 'rails', '~> 6.1.7', '>= 6.1.7.10'
  110. gem 'rails-html-sanitizer', '~> 1.6'
  111. gem 'rufus-scheduler', '~> 3.9', '>= 3.9.2', require: false
  112. gem 'sassc-rails'
  113. gem 'select2-rails'
  114. gem 'spectrum-rails'
  115. gem 'sprockets'
  116. gem 'terser'
  117. gem 'typhoeus'
  118. gem 'uglifier'
  119. group :development, :test do
  120. gem 'debug'
  121. gem 'rspec-rails'
  122. end
  123. group :development do
  124. gem 'better_errors'
  125. gem 'binding_of_caller'
  126. gem 'guard'
  127. gem 'guard-livereload'
  128. gem 'guard-rspec'
  129. gem 'letter_opener_web', '~> 3.0'
  130. gem 'rack-livereload'
  131. gem 'web-console', '>= 4.2.1'
  132. gem 'capistrano'
  133. gem 'capistrano-bundler'
  134. gem 'capistrano-rails'
  135. gem 'rubocop', require: false
  136. gem 'rubocop-performance', require: false
  137. gem 'rubocop-rspec', require: false
  138. if_true(ENV['SPRING']) do
  139. gem 'spring'
  140. gem 'spring-commands-rspec'
  141. gem 'spring-watcher-listen'
  142. end
  143. group :test do
  144. gem 'capybara'
  145. gem 'capybara-select-2', github: 'Hirurg103/capybara_select2', require: false
  146. gem 'puma'
  147. gem 'rails-controller-testing'
  148. gem 'rr', require: false
  149. gem 'rspec'
  150. gem 'rspec-collection_matchers'
  151. gem 'rspec-html-matchers'
  152. gem 'rspec-mocks'
  153. gem 'selenium-webdriver'
  154. gem 'shoulda-matchers'
  155. gem 'simplecov', require: false
  156. gem 'simplecov-lcov', '~> 0.8.0', require: false
  157. gem 'vcr'
  158. gem 'webmock'
  159. end
  160. end
  161. group :production do
  162. gem 'unicorn'
  163. gem 'unicorn-rails'
  164. end
  165. # Platform requirements.
  166. require 'rbconfig'
  167. gem 'ffi', '>= 1.17.0' # required by typhoeus; 1.9.4 has fixes for *BSD.
  168. gem 'tzinfo', '>= 2.0.6' # required by rails; 1.2.0 has support for *BSD and Solaris.
  169. # Windows does not have zoneinfo files, so bundle the tzinfo-data gem.
  170. gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw]
  171. # BSD systems require rb-kqueue for "listen" to avoid polling for changes.
  172. gem 'rb-kqueue', '>= 0.2.8', require: /bsd|dragonfly/i === RbConfig::CONFIG['target_os']
  173. on_heroku = ENV['ON_HEROKU'] ||
  174. ENV['HEROKU_POSTGRESQL_ROSE_URL'] ||
  175. ENV['HEROKU_POSTGRESQL_GOLD_URL'] ||
  176. File.read(File.join(File.dirname(__FILE__), 'Procfile')) =~ /intended for Heroku/
  177. ENV['DATABASE_ADAPTER'] ||=
  178. if on_heroku
  179. 'postgresql'
  180. else
  181. 'mysql2'
  182. end
  183. if_true(ENV['DATABASE_ADAPTER'].strip == 'postgresql') do
  184. gem 'pg', '~> 1.5', '>= 1.5.9'
  185. end
  186. if_true(ENV['DATABASE_ADAPTER'].strip == 'mysql2') do
  187. gem 'mysql2', "~> 0.5", ">= 0.5.6"
  188. end
  189. GemfileHelper.parse_each_agent_gem(ENV['ADDITIONAL_GEMS']) do |args|
  190. gem *args
  191. end