renderit 0.2.0 → 0.2.2
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.
- data/README.rdoc +1 -1
- data/VERSION +1 -1
- data/lib/renderit.rb +11 -4
- data/renderit.gemspec +12 -9
- data/spec/config/renderit.yml +2 -0
- data/spec/renderit_spec.rb +71 -0
- data/spec/spec_helper.rb +6 -0
- data/spec/spec_initializer.rb +24 -0
- metadata +12 -9
- data/test/helper.rb +0 -10
- data/test/test_renderit.rb +0 -4
data/README.rdoc
CHANGED
@@ -24,6 +24,6 @@ In order to use those tempates, default view or layout have to be present. You w
|
|
24
24
|
|
25
25
|
In order to use this gem with rails 2.3.*, you just have to put 'config.gem "renderit"' string in config/environment.rb file.
|
26
26
|
|
27
|
-
In order to user this gem with rails 3, you have to require 'renderit' gem in Gemfile
|
27
|
+
In order to user this gem with rails 3, you have to require 'renderit' gem in Gemfile.
|
28
28
|
|
29
29
|
Copyright (c) 2010 Andrey Romanov. See LICENSE for details.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.2
|
data/lib/renderit.rb
CHANGED
@@ -4,8 +4,8 @@ class RenderIt
|
|
4
4
|
'ie' => 'msie (\d+\.\d).*\)(?!\s*opera)',
|
5
5
|
'firefox' => 'gecko.*?firefox\/(\d+\.\d)',
|
6
6
|
'chrome' => 'applewebkit.*?chrome\/(\d+\.\d)',
|
7
|
-
'safari' => 'applewebkit.*?version\/(\d+.\d)
|
8
|
-
'safarimobile' => 'applewebkit.*?version\/(\d+.\d)
|
7
|
+
'safari' => 'applewebkit.*?version\/(\d+.\d)(?![.\d\s]*mobile)',
|
8
|
+
'safarimobile' => 'applewebkit.*?version\/(\d+.\d)[.\d\s]*mobile.*?safari',
|
9
9
|
'opera' => 'opera.*?version\/(\d+\.\d)'
|
10
10
|
}
|
11
11
|
VERSION_MATCH_REGEXP = Regexp.new("([a-z]+)(.*)", "i")
|
@@ -36,6 +36,7 @@ class RenderIt
|
|
36
36
|
return Browser.new(browser_name, version[1])
|
37
37
|
end
|
38
38
|
end
|
39
|
+
nil
|
39
40
|
end
|
40
41
|
|
41
42
|
|
@@ -58,7 +59,6 @@ class RenderIt
|
|
58
59
|
def self.load_config
|
59
60
|
if File.exist?(File.join(Rails.root, 'config/renderit.yml'))
|
60
61
|
renderit_config = YAML::load_file(File.join(Rails.root, 'config/renderit.yml'))
|
61
|
-
|
62
62
|
#Loading browsers config
|
63
63
|
browsers_config = renderit_config['browsers']||{}
|
64
64
|
browsers_config.merge!(DEFAULT_BROWSERS_CONFIG)
|
@@ -85,7 +85,7 @@ class RenderIt
|
|
85
85
|
|
86
86
|
write_inheritable_attribute(:templates_config, templates_config)
|
87
87
|
end
|
88
|
-
|
88
|
+
true
|
89
89
|
end
|
90
90
|
|
91
91
|
end
|
@@ -147,6 +147,13 @@ if RAILS_THREE_REGEXP =~ Rails.version # If rails version is 3
|
|
147
147
|
end
|
148
148
|
end
|
149
149
|
|
150
|
+
class MyRailtie < Rails::Railtie
|
151
|
+
initializer "renderit_initialization" do
|
152
|
+
RenderIt.load_config
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
|
150
157
|
|
151
158
|
else # If rails version is 2.3.*
|
152
159
|
|
data/renderit.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{renderit}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Andrey Romanov"]
|
12
|
-
s.date = %q{2010-08-
|
12
|
+
s.date = %q{2010-08-16}
|
13
13
|
s.description = %q{Renders different templates depending on browser user_agent.}
|
14
14
|
s.email = %q{judo.ras@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -25,8 +25,10 @@ Gem::Specification.new do |s|
|
|
25
25
|
"VERSION",
|
26
26
|
"lib/renderit.rb",
|
27
27
|
"renderit.gemspec",
|
28
|
-
"
|
29
|
-
"
|
28
|
+
"spec/config/renderit.yml",
|
29
|
+
"spec/renderit_spec.rb",
|
30
|
+
"spec/spec_helper.rb",
|
31
|
+
"spec/spec_initializer.rb"
|
30
32
|
]
|
31
33
|
s.homepage = %q{http://github.com/romanoff/renderit}
|
32
34
|
s.rdoc_options = ["--charset=UTF-8"]
|
@@ -34,8 +36,9 @@ Gem::Specification.new do |s|
|
|
34
36
|
s.rubygems_version = %q{1.3.7}
|
35
37
|
s.summary = %q{Renders different templates depending on browser user_agent.}
|
36
38
|
s.test_files = [
|
37
|
-
"
|
38
|
-
"
|
39
|
+
"spec/spec_helper.rb",
|
40
|
+
"spec/renderit_spec.rb",
|
41
|
+
"spec/spec_initializer.rb"
|
39
42
|
]
|
40
43
|
|
41
44
|
if s.respond_to? :specification_version then
|
@@ -43,12 +46,12 @@ Gem::Specification.new do |s|
|
|
43
46
|
s.specification_version = 3
|
44
47
|
|
45
48
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
46
|
-
s.add_development_dependency(%q<
|
49
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
47
50
|
else
|
48
|
-
s.add_dependency(%q<
|
51
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
49
52
|
end
|
50
53
|
else
|
51
|
-
s.add_dependency(%q<
|
54
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
52
55
|
end
|
53
56
|
end
|
54
57
|
|
@@ -0,0 +1,71 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
+
|
3
|
+
describe RenderIt do
|
4
|
+
|
5
|
+
it "should load config file" do
|
6
|
+
RenderIt.load_config.should == true
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should parse Chrome browser user_agent" do
|
10
|
+
browser = RenderIt.get_browser("Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.9 (KHTML, like Gecko) Chrome/6.0.401.1 Safari/533.9")
|
11
|
+
browser.name.should == 'chrome'
|
12
|
+
browser.version.should == '6.0'
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should parse Firefox browser user_agent" do
|
16
|
+
browser = RenderIt.get_browser("Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100416 Mandriva Linux/1.9.2.3-0.2mdv2010.0 (2010.0) Firefox/3.6.3")
|
17
|
+
browser.name.should == 'firefox'
|
18
|
+
browser.version.should == '3.6'
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should parse IE browser user_agent" do
|
22
|
+
browser = RenderIt.get_browser("Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)")
|
23
|
+
browser.name.should == 'ie'
|
24
|
+
browser.version.should == '8.0'
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should parse Opera browser user_agent" do
|
28
|
+
browser = RenderIt.get_browser("Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.5.24 Version/10.53")
|
29
|
+
browser.name.should == 'opera'
|
30
|
+
browser.version.should == '10.5'
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should parse Safari browser user_agent" do
|
34
|
+
browser = RenderIt.get_browser("Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16")
|
35
|
+
browser.name.should == 'safari'
|
36
|
+
browser.version.should == '5.0'
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should parse SafariMobile browser user_agent" do
|
40
|
+
browser = RenderIt.get_browser("Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_2_1 like Mac OS X; ru-ru) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5H11 Safari/525.20")
|
41
|
+
browser.name.should == 'safarimobile'
|
42
|
+
browser.version.should == '3.1'
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should parse SafariMobile browser user_agent" do
|
46
|
+
browser = RenderIt.get_browser("UNDEFINED USER_AGENT")
|
47
|
+
browser.should be_nil
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should return 'new' template name" do
|
51
|
+
request = create_request("Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.9 (KHTML, like Gecko) Chrome/6.0.401.1 Safari/533.9")
|
52
|
+
RenderIt.get_template_name(request).should == 'new'
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should return blank template name if browser is old" do
|
56
|
+
request = create_request("Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)")
|
57
|
+
RenderIt.get_template_name(request).should == ''
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should return blank template name if unknown browser" do
|
61
|
+
request = create_request("UNDEFINED USER_AGENT")
|
62
|
+
RenderIt.get_template_name(request).should == ''
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
def create_request(user_agent)
|
68
|
+
request = Object.new
|
69
|
+
request.stub!(:env).and_return({'HTTP_USER_AGENT' => user_agent})
|
70
|
+
return request
|
71
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
class Rails
|
2
|
+
class Railtie
|
3
|
+
end
|
4
|
+
def self.version
|
5
|
+
'3.0.0.RC'
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.root
|
9
|
+
File.dirname(__FILE__)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
def write_inheritable_attribute(key, value)
|
15
|
+
@attributes ||= {}
|
16
|
+
@attributes[key] = value
|
17
|
+
end
|
18
|
+
|
19
|
+
def read_inheritable_attribute(key)
|
20
|
+
(@attributes||{})[key]
|
21
|
+
end
|
22
|
+
|
23
|
+
def initializer(*args)
|
24
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: renderit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 2
|
10
|
+
version: 0.2.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Andrey Romanov
|
@@ -15,11 +15,11 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-08-
|
18
|
+
date: 2010-08-16 00:00:00 +03:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
name:
|
22
|
+
name: rspec
|
23
23
|
prerelease: false
|
24
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
@@ -50,8 +50,10 @@ files:
|
|
50
50
|
- VERSION
|
51
51
|
- lib/renderit.rb
|
52
52
|
- renderit.gemspec
|
53
|
-
-
|
54
|
-
-
|
53
|
+
- spec/config/renderit.yml
|
54
|
+
- spec/renderit_spec.rb
|
55
|
+
- spec/spec_helper.rb
|
56
|
+
- spec/spec_initializer.rb
|
55
57
|
has_rdoc: true
|
56
58
|
homepage: http://github.com/romanoff/renderit
|
57
59
|
licenses: []
|
@@ -87,5 +89,6 @@ signing_key:
|
|
87
89
|
specification_version: 3
|
88
90
|
summary: Renders different templates depending on browser user_agent.
|
89
91
|
test_files:
|
90
|
-
-
|
91
|
-
-
|
92
|
+
- spec/spec_helper.rb
|
93
|
+
- spec/renderit_spec.rb
|
94
|
+
- spec/spec_initializer.rb
|
data/test/helper.rb
DELETED
data/test/test_renderit.rb
DELETED