51f2f032d7
* Add `i18n` dependency We will use `i18n` to provide localization for Gollum's frontend. I chose this because it's a well-supported, pretty normal Ruby library. * Configure I18n - Locale files will be kept in `lib/gollum/locales/[lang].yml` - The available locales, to start, will be English (`en`). * Add I18n interface for mustache templates This commit adds an interface that allows mustache templates to get I18n translation strings, transform any arguments that may be present in them, and then render them on the frontend. This is our first real step to getting internationalizing the Gollum frontend.
98 lines
2.1 KiB
Ruby
98 lines
2.1 KiB
Ruby
require 'rubygems'
|
|
require 'rack/test'
|
|
require 'test/unit'
|
|
require 'shoulda'
|
|
require 'mocha/setup'
|
|
require 'fileutils'
|
|
require 'minitest/reporters'
|
|
require 'minitest/spec'
|
|
require 'twitter_cldr'
|
|
require 'tmpdir'
|
|
|
|
# Silence locale validation warning
|
|
require 'i18n'
|
|
I18n.enforce_available_locales = false
|
|
|
|
MiniTest::Reporters.use!
|
|
|
|
dir = File.dirname(File.expand_path(__FILE__))
|
|
$LOAD_PATH.unshift(File.join(dir, '..', 'lib'))
|
|
$LOAD_PATH.unshift(dir)
|
|
|
|
module Gollum
|
|
end
|
|
if ENV['GIT_ADAPTER']
|
|
Gollum::GIT_ADAPTER = ENV['GIT_ADAPTER']
|
|
else
|
|
Gollum::GIT_ADAPTER = RUBY_PLATFORM == 'java' ? 'rjgit' : 'rugged'
|
|
end
|
|
|
|
ENV['RACK_ENV'] = 'test'
|
|
require 'gollum'
|
|
require 'gollum/app'
|
|
|
|
# Disable the metadata feature
|
|
$METADATA = false
|
|
|
|
# Make sure we're in the test dir, the tests expect that to be the current
|
|
# directory.
|
|
TEST_DIR = File.join(File.dirname(__FILE__), *%w[.])
|
|
|
|
def testpath(path)
|
|
File.join(TEST_DIR, path)
|
|
end
|
|
|
|
def cloned_testpath(path, bare = false)
|
|
repo = File.expand_path(testpath(path))
|
|
tmpdir = Dir.mktmpdir(self.class.name)
|
|
bare = bare ? "--bare" : ""
|
|
redirect = Gem.win_platform? ? '' : '2>/dev/null'
|
|
%x{git clone #{bare} '#{repo}' #{tmpdir} #{redirect}}
|
|
tmpdir
|
|
end
|
|
|
|
def commit_details
|
|
{ :message => "Did something at #{Time.now}",
|
|
:name => "Tom Preston-Werner",
|
|
:email => "tom@github.com" }
|
|
end
|
|
|
|
def normal(text)
|
|
text.gsub!(' ', '')
|
|
text.gsub!("\n", '')
|
|
text
|
|
end
|
|
|
|
# test/spec/mini 3
|
|
# http://gist.github.com/25455
|
|
# chris@ozmm.org
|
|
# file:lib/test/spec/mini.rb
|
|
def context(*args, &block)
|
|
return super unless (name = args.first) && block
|
|
require 'test/unit'
|
|
klass = Class.new(defined?(ActiveSupport::TestCase) ? ActiveSupport::TestCase : Test::Unit::TestCase) do
|
|
def self.test(name, &block)
|
|
define_method("test_#{name.gsub(/\W/, '_')}", &block) if block
|
|
end
|
|
|
|
def self.xtest(*args)
|
|
end
|
|
|
|
def self.setup(&block)
|
|
define_method(:setup, &block)
|
|
end
|
|
|
|
def self.teardown(&block)
|
|
define_method(:teardown, &block)
|
|
end
|
|
end
|
|
(
|
|
class << klass;
|
|
self
|
|
end).send(:define_method, :name) { name.gsub(/\W/, '_') }
|
|
$contexts << klass
|
|
klass.class_eval &block
|
|
end
|
|
|
|
$contexts = []
|