293 lines
9.4 KiB
Ruby
293 lines
9.4 KiB
Ruby
source 'http://rubygems.org/'
|
|
|
|
# this has to use 1.8.7 hash syntax to not raise a parser exception on 1.8.7
|
|
if RUBY_VERSION == "2.0.0"
|
|
warn "Ruby 2.0 support is untested"
|
|
ruby '2.0.0', :engine => 'ruby', :engine_version => '2.0.0'
|
|
elsif RUBY_VERSION == "2.1.0"
|
|
warn "Ruby 2.1 support is untested"
|
|
ruby '2.1.0', :engine => 'ruby', :engine_version => '2.1.0'
|
|
else
|
|
ruby '1.9.3', :engine => 'ruby', :engine_version => '1.9.3'
|
|
end
|
|
|
|
# enforce the version of bundler itself, to avoid any surprises
|
|
required_bundler_version = '1.5.1'..'1.5.2'
|
|
gem 'bundler', [">=#{required_bundler_version.first}", "<=#{required_bundler_version.last}"]
|
|
|
|
unless required_bundler_version.include?(Bundler::VERSION)
|
|
if Bundler::VERSION < required_bundler_version.first
|
|
bundle_command = "gem install bundler -v #{required_bundler_version.last}"
|
|
else
|
|
require 'shellwords'
|
|
bundle_command = "bundle _#{required_bundler_version.last}_ #{ARGV.map { |a| Shellwords.escape(a) }.join(' ')}"
|
|
end
|
|
|
|
warn "Bundler version #{required_bundler_version.first} is required; you're currently running #{Bundler::VERSION}. Maybe try `#{bundle_command}`."
|
|
exit 1
|
|
end
|
|
|
|
require File.expand_path("../config/canvas_rails3", __FILE__)
|
|
|
|
platforms :ruby_20, :ruby_21 do
|
|
gem 'syck', '1.0.1'
|
|
gem 'iconv', '1.0.3'
|
|
end
|
|
|
|
if CANVAS_RAILS2
|
|
# If you have a license to rails lts, you can create a vendor/plugins/*/RAILS_LTS yaml file
|
|
# with the Gemfile `gem` command to use (pointing to the private repo with your username/password).
|
|
# Otherwise, the free community version of rails lts will be used.
|
|
lts_file = Dir.glob(File.expand_path("../vendor/plugins/*/RAILS_LTS", __FILE__)).first
|
|
if lts_file
|
|
eval(File.read(lts_file))
|
|
else
|
|
gem 'rails', :github => 'makandra/rails', :branch => '2-3-lts', :ref => 'e86daf8ff727d5efc0040c876ba00c9444a5d915'
|
|
end
|
|
# AMS needs to be loaded BEFORE authlogic because it defines the constant
|
|
# "ActiveModel", and aliases ActiveRecord::Errors to ActiveModel::Errors
|
|
# so Authlogic will use the right thing when it detects that ActiveModel
|
|
# is defined.
|
|
gem 'active_model_serializers_rails_2.3', '0.9.0pre2', :require => 'active_model_serializers'
|
|
gem 'authlogic', '2.1.3'
|
|
else
|
|
# just to be clear, Canvas is NOT READY to run under Rails 3 in production
|
|
gem 'rails', '3.2.15'
|
|
gem 'active_model_serializers', '0.9.0pre',
|
|
:github => 'rails-api/active_model_serializers', :ref => '99fa399ae6dc071b97b15e1ef2b42f0d23c492ec'
|
|
gem 'authlogic', '3.2.0'
|
|
end
|
|
|
|
gem "aws-sdk", '1.21.0'
|
|
gem 'uuidtools', '2.1.4'
|
|
gem 'barby', '0.5.0'
|
|
gem 'bcrypt-ruby', '3.0.1'
|
|
gem 'builder', '3.0.0'
|
|
gem 'canvas_connect', '0.3.2'
|
|
gem 'adobe_connect', '1.0.0'
|
|
gem 'canvas_webex', '0.12'
|
|
gem 'daemons', '1.1.0'
|
|
gem 'diff-lcs', '1.1.3', :require => 'diff/lcs'
|
|
if CANVAS_RAILS2
|
|
gem 'encrypted_cookie_store-instructure', '1.0.5', :require => 'encrypted_cookie_store'
|
|
else
|
|
gem 'encrypted_cookie_store-instructure', '1.1.1', :require => 'encrypted_cookie_store'
|
|
end
|
|
gem 'erubis', '2.7.0'
|
|
if CANVAS_RAILS2
|
|
gem 'fake_arel', '1.4.0'
|
|
gem 'fake_rails3_routes', '1.0.4'
|
|
gem 'journey', '1.0.4'
|
|
end
|
|
gem 'ffi', '1.1.5'
|
|
gem 'hairtrigger', '0.2.3'
|
|
gem 'ruby2ruby', '2.0.7'
|
|
gem 'sass', '3.2.3'
|
|
gem 'hashery', '1.3.0', :require => 'hashery/dictionary'
|
|
gem 'highline', '1.6.1'
|
|
gem 'hoe', '3.8.1'
|
|
gem 'i18n', '0.6.8'
|
|
gem 'i18nema', '0.0.7'
|
|
gem 'icalendar', '1.1.5'
|
|
gem 'jammit', '0.6.6'
|
|
gem 'cssmin', '1.0.3'
|
|
gem 'jsmin', '1.0.1'
|
|
gem 'json', '1.8.1'
|
|
gem 'oj', '2.1.7'
|
|
unless CANVAS_RAILS2
|
|
gem 'rails-patch-json-encode', '0.0.1'
|
|
end
|
|
# native xml parsing, diigo
|
|
gem 'libxml-ruby', '2.6.0', :require => 'xml/libxml'
|
|
gem 'macaddr', '1.0.0' # macaddr 1.2.0 tries to require 'systemu' which isn't a dependency
|
|
gem 'mail', '2.5.4'
|
|
gem 'treetop', '1.4.15'
|
|
gem 'polyglot', '0.3.3'
|
|
gem 'marginalia', '1.1.3', :require => false
|
|
gem 'mime-types', '1.17.2', :require => 'mime/types'
|
|
# attachment_fu (even the current technoweenie one on github) does not work
|
|
# with mini_magick 3.1
|
|
gem 'mini_magick', '1.3.2'
|
|
gem 'subexec', '0.0.4'
|
|
gem 'multi_json', '1.8.2'
|
|
gem 'netaddr', '1.5.0'
|
|
gem 'nokogiri', '1.5.6'
|
|
# oauth gem, with rails3 fixes rolled in
|
|
gem 'oauth-instructure', '0.4.10', :require => 'oauth'
|
|
gem 'rack', CANVAS_RAILS2 ? '1.1.3' : '1.4.5'
|
|
gem 'rake', '10.1.1'
|
|
gem 'rdoc', '3.12'
|
|
gem 'ratom-instructure', '0.6.9', :require => "atom" # custom gem until necessary changes are merged into mainstream
|
|
gem 'rdiscount', '1.6.8'
|
|
gem 'ritex', '1.0.1'
|
|
unless CANVAS_RAILS2
|
|
gem 'routing_concerns', '0.1.0'
|
|
end
|
|
gem 'rotp', '1.4.1'
|
|
gem 'rqrcode', '0.4.2'
|
|
gem 'rscribd', '1.2.0'
|
|
gem 'net-ldap', '0.3.1', :require => 'net/ldap'
|
|
gem 'ruby-saml-mod', '0.1.24'
|
|
gem 'rubycas-client', '2.2.1'
|
|
gem 'rubyzip', '1.0.0', :require => 'zip'
|
|
gem 'zip-zip', '0.2' # needed until plugins use the new namespace
|
|
gem 'safe_yaml', '0.9.7', :require => false
|
|
gem 'safe_yaml-instructure', '0.8.0', :require => false
|
|
gem 'hashie', '2.0.5'
|
|
gem 'sanitize', '2.0.3'
|
|
gem 'shackles', '1.0.2'
|
|
unless CANVAS_RAILS2
|
|
gem 'switchman', '0.0.1', :github => "instructure/switchman"
|
|
end
|
|
gem 'tzinfo', '0.3.35'
|
|
gem 'useragent', '0.4.16'
|
|
gem 'uuid', '2.3.2'
|
|
if CANVAS_RAILS2
|
|
gem 'folio-pagination-legacy', '0.0.3', :require => 'folio/rails'
|
|
gem 'will_paginate', '2.3.15', :require => false
|
|
else
|
|
gem 'folio-pagination', '0.0.3', :require => 'folio/rails'
|
|
gem 'will_paginate', '3.0.4', :require => false
|
|
end
|
|
gem 'xml-simple', '1.0.12', :require => 'xmlsimple'
|
|
gem 'foreigner', '0.9.2'
|
|
gem 'crocodoc-ruby', '0.0.1', :require => 'crocodoc'
|
|
# needs https://github.com/regru/premailer/commit/8d3ae698eff135011b19e1587a68c399ec97b185
|
|
# we can go back to the gem once 1.7.8 is released
|
|
gem 'regru-premailer', :require => 'premailer', :github => "regru/premailer", :ref => "08a73c70701f5d81bc4a5cf6c959a45ad94db88e"
|
|
gem 'css_parser', '1.3.5'
|
|
gem 'htmlentities', '4.3.1'
|
|
|
|
gem 'adheres_to_policy', :path => 'gems/adheres_to_policy'
|
|
gem 'canvas_breach_mitigation', :path => 'gems/canvas_breach_mitigation'
|
|
gem 'canvas_crummy', :path => 'gems/canvas_crummy'
|
|
gem 'canvas_mimetype_fu', :path => 'gems/canvas_mimetype_fu'
|
|
gem 'canvas_sanitize', :path => 'gems/canvas_sanitize'
|
|
gem 'canvas_stringex', :path => 'gems/canvas_stringex'
|
|
gem 'lti_outbound', :path => 'gems/lti_outbound'
|
|
gem 'html_text_helper', :path => 'gems/html_text_helper'
|
|
|
|
group :assets do
|
|
gem 'compass-rails', '1.0.3'
|
|
gem 'compass', '0.12.2'
|
|
gem 'chunky_png', '1.2.9'
|
|
gem 'fssm', '0.2.10'
|
|
gem 'dress_code', '1.0.2'
|
|
gem 'colored', '1.2'
|
|
gem 'mustache', '0.99.5'
|
|
gem 'pygments.rb', '0.5.4'
|
|
gem 'posix-spawn', '0.3.8'
|
|
gem 'yajl-ruby', '1.1.0'
|
|
end
|
|
|
|
group :mysql do
|
|
gem 'mysql2', '0.2.18'
|
|
end
|
|
|
|
group :postgres do
|
|
gem 'pg', '0.15.0'
|
|
end
|
|
|
|
group :sqlite do
|
|
gem 'sqlite3', '1.3.8'
|
|
end
|
|
|
|
group :test do
|
|
|
|
gem 'simplecov', '0.8.2', :require => false
|
|
gem 'docile', '1.1.3'
|
|
gem 'simplecov-rcov', '0.2.3', :require => false
|
|
gem 'bluecloth', '2.0.10' # for generating api docs
|
|
gem 'redcarpet', '3.0.0'
|
|
gem 'mocha', '1.0.0.alpha', :require => false
|
|
gem 'metaclass', '0.0.2'
|
|
gem 'thin', '1.5.1'
|
|
gem 'eventmachine', '1.0.3'
|
|
if CANVAS_RAILS2
|
|
gem 'rspec', '1.3.2'
|
|
gem 'rspec-rails', '1.3.4'
|
|
else
|
|
gem 'rspec', '2.14.1'
|
|
gem 'rspec-rails', '2.14.1'
|
|
end
|
|
gem 'sequel', '4.5.0', :require => false
|
|
gem 'selenium-webdriver', '2.39.0'
|
|
gem 'childprocess', '0.4.0'
|
|
gem 'websocket', '1.0.7'
|
|
gem 'webrat', '0.7.3'
|
|
gem 'rack-test', '0.6.2', :require => false
|
|
gem 'webmock', '1.16.1', :require => false
|
|
gem 'addressable', '2.3.5'
|
|
gem 'crack', '0.4.1'
|
|
gem 'yard', '0.8.0'
|
|
gem 'yard-appendix', '>=0.1.8'
|
|
gem 'timecop', '0.6.3'
|
|
gem 'test-unit', '1.2.3'
|
|
gem 'bullet', '4.5.0', :require => false
|
|
gem 'uniform_notifier', '1.4.0'
|
|
end
|
|
|
|
group :development do
|
|
gem 'guard', '1.8.0'
|
|
gem 'listen', '~>1.3' # pinned to fix guard error
|
|
gem 'rb-inotify', '~>0.9.0', :require => false
|
|
gem 'rb-fsevent', :require => false
|
|
gem 'rb-fchange', :require => false
|
|
|
|
# Option to DISABLE_RUBY_DEBUGGING is helpful IDE-based debugging.
|
|
# The ruby debug gems conflict with the IDE-based debugger gem.
|
|
# Set this option in your dev environment to disable.
|
|
unless ENV['DISABLE_RUBY_DEBUGGING']
|
|
gem 'byebug', '2.4.1', :platforms => [:ruby_20, :ruby_21]
|
|
gem 'debugger', '1.5.0', :platforms => :ruby_19
|
|
end
|
|
end
|
|
|
|
group :development, :test do
|
|
gem 'coffee-script', '2.2.0'
|
|
gem 'coffee-script-source', '1.6.2' #pinned so everyone's compiled output matches
|
|
gem 'execjs', '1.4.0'
|
|
gem 'parallel', '0.5.16'
|
|
end
|
|
|
|
group :i18n_tools do
|
|
gem 'ruby_parser', '3.1.3'
|
|
gem 'sexp_processor', '4.2.1'
|
|
gem 'ya2yaml', '0.30'
|
|
end
|
|
|
|
group :redis do
|
|
gem 'instructure-redis-store', '1.0.0.2.instructure1', :require => 'redis-store'
|
|
gem 'redis', '3.0.1'
|
|
gem 'redis-scripting', '1.0.1'
|
|
end
|
|
|
|
group :cassandra do
|
|
gem 'cassandra-cql', '1.2.1', :github => 'kreynolds/cassandra-cql', :ref => 'd100be075b04153cf4116da7512892a1e8c0a7e4' #dependency of canvas_cassandra
|
|
gem 'simple_uuid', '0.4.0'
|
|
gem 'thrift', '0.8.0'
|
|
gem 'thrift_client', '0.8.4'
|
|
gem "canvas_cassandra", path: "gems/canvas_cassandra"
|
|
end
|
|
|
|
group :embedly do
|
|
gem 'embedly', '1.5.5'
|
|
gem 'oauth', '0.4.7'
|
|
gem 'querystring', '0.1.0'
|
|
gem 'typhoeus', '0.3.3'
|
|
end
|
|
|
|
group :statsd do
|
|
gem 'statsd-ruby', '1.0.0', :require => 'statsd'
|
|
end
|
|
|
|
group :icu do
|
|
gem 'ffi-icu', '0.1.2'
|
|
end
|
|
|
|
# Non-standard Canvas extension to Bundler behavior -- load the Gemfiles from
|
|
# plugins.
|
|
Dir[File.join(File.dirname(__FILE__), 'vendor/plugins/*/Gemfile')].each do |g|
|
|
eval(File.read(g))
|
|
end
|