roda-i18n 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/MIT-LICENSE +18 -0
- data/README.md +309 -0
- data/Rakefile +78 -0
- data/lib/roda/plugins/i18n.rb +276 -0
- data/spec/fixtures/app/i18n/de.yml +14 -0
- data/spec/fixtures/app/i18n/en.yml +14 -0
- data/spec/fixtures/app/i18n/es.yml +8 -0
- data/spec/fixtures/i18n/de.yml +34 -0
- data/spec/fixtures/i18n/en.yml +68 -0
- data/spec/fixtures/i18n/sv-se.yml +53 -0
- data/spec/roda_i18n_coverage.rb +13 -0
- data/spec/roda_i18n_spec.rb +413 -0
- data/spec/spec_helper.rb +98 -0
- metadata +66 -0
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
# $:.unshift(File.join(File.dirname(File.dirname(File.expand_path(__FILE__))), 'lib'))
|
2
|
+
|
3
|
+
if ENV['COVERAGE']
|
4
|
+
require File.join(File.dirname(File.expand_path(__FILE__)), "roda_i18n_coverage")
|
5
|
+
SimpleCov.roda_i18n_coverage
|
6
|
+
end
|
7
|
+
|
8
|
+
ENV['RACK_ENV'] = 'test'
|
9
|
+
|
10
|
+
require 'rubygems'
|
11
|
+
require 'roda'
|
12
|
+
require 'tilt/erubis'
|
13
|
+
require 'rack/test'
|
14
|
+
require 'r18n-core'
|
15
|
+
require 'minitest/autorun'
|
16
|
+
require 'minitest/hooks/default'
|
17
|
+
require 'kramdown'
|
18
|
+
require 'date'
|
19
|
+
|
20
|
+
require "#{File.dirname(__FILE__)}/../lib/roda/plugins/i18n"
|
21
|
+
|
22
|
+
class Minitest::HooksSpec
|
23
|
+
include Rack::Test::Methods
|
24
|
+
|
25
|
+
def rt(path,opts={})
|
26
|
+
get path
|
27
|
+
last_response.body
|
28
|
+
end
|
29
|
+
|
30
|
+
def app(type=nil, &block)
|
31
|
+
case type
|
32
|
+
when :new
|
33
|
+
@app = _app{route(&block)}
|
34
|
+
when :bare
|
35
|
+
@app = _app(&block)
|
36
|
+
when Symbol
|
37
|
+
@app = _app do
|
38
|
+
plugin type
|
39
|
+
route(&block)
|
40
|
+
end
|
41
|
+
else
|
42
|
+
@app ||= _app{route(&block)}
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def req(path='/', env={})
|
47
|
+
if path.is_a?(Hash)
|
48
|
+
env = path
|
49
|
+
else
|
50
|
+
env['PATH_INFO'] = path
|
51
|
+
end
|
52
|
+
|
53
|
+
env = {"REQUEST_METHOD" => "GET", "PATH_INFO" => "/", "SCRIPT_NAME" => ""}.merge(env)
|
54
|
+
@app.call(env)
|
55
|
+
end
|
56
|
+
|
57
|
+
def status(path='/', env={})
|
58
|
+
req(path, env)[0]
|
59
|
+
end
|
60
|
+
|
61
|
+
def header(name, path='/', env={})
|
62
|
+
req(path, env)[1][name]
|
63
|
+
end
|
64
|
+
|
65
|
+
def body(path='/', env={})
|
66
|
+
s = ''
|
67
|
+
b = req(path, env)[2]
|
68
|
+
b.each{|x| s << x}
|
69
|
+
b.close if b.respond_to?(:close)
|
70
|
+
s
|
71
|
+
end
|
72
|
+
|
73
|
+
def _app(&block)
|
74
|
+
c = Class.new(Roda)
|
75
|
+
c.plugin :render
|
76
|
+
c.plugin(:not_found){raise "path #{request.path_info} not found"}
|
77
|
+
c.use Rack::Session::Cookie, :secret=>'topsecret'
|
78
|
+
c.class_eval do
|
79
|
+
def erb(s, opts={})
|
80
|
+
render(opts.merge(:inline=>s))
|
81
|
+
end
|
82
|
+
end
|
83
|
+
c.class_eval(&block)
|
84
|
+
c
|
85
|
+
end
|
86
|
+
|
87
|
+
# syntactic sugar
|
88
|
+
def _body
|
89
|
+
last_response.body
|
90
|
+
end
|
91
|
+
|
92
|
+
# syntactic sugar
|
93
|
+
def _status
|
94
|
+
last_response.status
|
95
|
+
end
|
96
|
+
|
97
|
+
end
|
98
|
+
|
metadata
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: roda-i18n
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Kematzy
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-10-13 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: The Roda-i18n plugin enables easy addition of internationalisation (i18n)
|
14
|
+
and localisation support in Roda apps
|
15
|
+
email: kematzy@gmail.com
|
16
|
+
executables: []
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files:
|
19
|
+
- README.md
|
20
|
+
- MIT-LICENSE
|
21
|
+
files:
|
22
|
+
- MIT-LICENSE
|
23
|
+
- README.md
|
24
|
+
- Rakefile
|
25
|
+
- lib/roda/plugins/i18n.rb
|
26
|
+
- spec/fixtures/app/i18n/de.yml
|
27
|
+
- spec/fixtures/app/i18n/en.yml
|
28
|
+
- spec/fixtures/app/i18n/es.yml
|
29
|
+
- spec/fixtures/i18n/de.yml
|
30
|
+
- spec/fixtures/i18n/en.yml
|
31
|
+
- spec/fixtures/i18n/sv-se.yml
|
32
|
+
- spec/roda_i18n_coverage.rb
|
33
|
+
- spec/roda_i18n_spec.rb
|
34
|
+
- spec/spec_helper.rb
|
35
|
+
homepage: http://github.com/kematzy/roda-i18n
|
36
|
+
licenses:
|
37
|
+
- MIT
|
38
|
+
metadata: {}
|
39
|
+
post_install_message:
|
40
|
+
rdoc_options:
|
41
|
+
- "--quiet"
|
42
|
+
- "--line-numbers"
|
43
|
+
- "--inline-source"
|
44
|
+
- "--title"
|
45
|
+
- 'Roda-i18n: internationalisation plugin'
|
46
|
+
- "--main"
|
47
|
+
- README.md
|
48
|
+
require_paths:
|
49
|
+
- lib
|
50
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '0'
|
60
|
+
requirements: []
|
61
|
+
rubyforge_project:
|
62
|
+
rubygems_version: 2.4.5
|
63
|
+
signing_key:
|
64
|
+
specification_version: 4
|
65
|
+
summary: Roda Internationalisation plugin
|
66
|
+
test_files: []
|