rtlize 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.
Files changed (45) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +68 -0
  3. data/Rakefile +38 -0
  4. data/lib/rtlize.rb +5 -0
  5. data/lib/rtlize/railtie.rb +13 -0
  6. data/lib/rtlize/rtl_template.rb +15 -0
  7. data/lib/rtlize/rtlizer.rb +154 -0
  8. data/lib/rtlize/version.rb +3 -0
  9. data/lib/tasks/rtlize_tasks.rake +4 -0
  10. data/test/dummy/README.rdoc +261 -0
  11. data/test/dummy/Rakefile +7 -0
  12. data/test/dummy/app/assets/javascripts/application.js +15 -0
  13. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  14. data/test/dummy/app/controllers/application_controller.rb +3 -0
  15. data/test/dummy/app/helpers/application_helper.rb +2 -0
  16. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  17. data/test/dummy/config.ru +4 -0
  18. data/test/dummy/config/application.rb +59 -0
  19. data/test/dummy/config/boot.rb +10 -0
  20. data/test/dummy/config/database.yml +25 -0
  21. data/test/dummy/config/environment.rb +5 -0
  22. data/test/dummy/config/environments/development.rb +37 -0
  23. data/test/dummy/config/environments/production.rb +67 -0
  24. data/test/dummy/config/environments/test.rb +37 -0
  25. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  26. data/test/dummy/config/initializers/inflections.rb +15 -0
  27. data/test/dummy/config/initializers/mime_types.rb +5 -0
  28. data/test/dummy/config/initializers/secret_token.rb +7 -0
  29. data/test/dummy/config/initializers/session_store.rb +8 -0
  30. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  31. data/test/dummy/config/locales/en.yml +5 -0
  32. data/test/dummy/config/routes.rb +58 -0
  33. data/test/dummy/db/development.sqlite3 +0 -0
  34. data/test/dummy/db/test.sqlite3 +0 -0
  35. data/test/dummy/log/development.log +6 -0
  36. data/test/dummy/log/test.log +48 -0
  37. data/test/dummy/public/404.html +26 -0
  38. data/test/dummy/public/422.html +26 -0
  39. data/test/dummy/public/500.html +25 -0
  40. data/test/dummy/public/favicon.ico +0 -0
  41. data/test/dummy/script/rails +6 -0
  42. data/test/rtlize_test.rb +7 -0
  43. data/test/test_helper.rb +15 -0
  44. data/test/unit/rtlizer_test.rb +89 -0
  45. metadata +149 -0
Binary file
File without changes
@@ -0,0 +1,6 @@
1
+ Connecting to database specified by database.yml
2
+  (33.1ms) select sqlite_version(*)
3
+  (189.6ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)
4
+  (0.2ms) PRAGMA index_list("schema_migrations")
5
+  (124.6ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
6
+  (0.7ms) SELECT "schema_migrations"."version" FROM "schema_migrations" 
@@ -0,0 +1,48 @@
1
+ Connecting to database specified by database.yml
2
+ Connecting to database specified by database.yml
3
+ Connecting to database specified by database.yml
4
+  (1.8ms) begin transaction
5
+  (0.5ms) rollback transaction
6
+  (0.4ms) begin transaction
7
+  (0.4ms) rollback transaction
8
+  (0.3ms) begin transaction
9
+  (0.3ms) rollback transaction
10
+  (0.3ms) begin transaction
11
+  (0.2ms) rollback transaction
12
+  (0.2ms) begin transaction
13
+  (0.3ms) rollback transaction
14
+  (0.2ms) begin transaction
15
+  (0.2ms) rollback transaction
16
+  (0.3ms) begin transaction
17
+  (0.3ms) rollback transaction
18
+  (0.3ms) begin transaction
19
+  (0.2ms) rollback transaction
20
+  (0.2ms) begin transaction
21
+  (0.2ms) rollback transaction
22
+  (0.2ms) begin transaction
23
+  (0.3ms) rollback transaction
24
+  (0.2ms) begin transaction
25
+  (0.2ms) rollback transaction
26
+ Connecting to database specified by database.yml
27
+  (1.3ms) begin transaction
28
+  (0.4ms) rollback transaction
29
+  (0.3ms) begin transaction
30
+  (0.3ms) rollback transaction
31
+  (0.2ms) begin transaction
32
+  (0.3ms) rollback transaction
33
+  (0.2ms) begin transaction
34
+  (0.2ms) rollback transaction
35
+  (0.2ms) begin transaction
36
+  (0.2ms) rollback transaction
37
+  (0.2ms) begin transaction
38
+  (0.4ms) rollback transaction
39
+  (0.3ms) begin transaction
40
+  (0.2ms) rollback transaction
41
+  (0.2ms) begin transaction
42
+  (0.2ms) rollback transaction
43
+  (0.2ms) begin transaction
44
+  (0.2ms) rollback transaction
45
+  (0.2ms) begin transaction
46
+  (0.2ms) rollback transaction
47
+  (0.2ms) begin transaction
48
+  (0.2ms) rollback transaction
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/404.html -->
21
+ <div class="dialog">
22
+ <h1>The page you were looking for doesn't exist.</h1>
23
+ <p>You may have mistyped the address or the page may have moved.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/422.html -->
21
+ <div class="dialog">
22
+ <h1>The change you wanted was rejected.</h1>
23
+ <p>Maybe you tried to change something you didn't have access to.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,25 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/500.html -->
21
+ <div class="dialog">
22
+ <h1>We're sorry, but something went wrong.</h1>
23
+ </div>
24
+ </body>
25
+ </html>
File without changes
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class RtlizeTest < ActiveSupport::TestCase
4
+ test "truth" do
5
+ assert_kind_of Module, Rtlize
6
+ end
7
+ end
@@ -0,0 +1,15 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
+ require "rails/test_help"
6
+
7
+ Rails.backtrace_cleaner.remove_silencers!
8
+
9
+ # Load support files
10
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
11
+
12
+ # Load fixtures from the engine
13
+ if ActiveSupport::TestCase.method_defined?(:fixture_path=)
14
+ ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
15
+ end
@@ -0,0 +1,89 @@
1
+ require 'test_helper'
2
+
3
+ class RtlizerTest < ActiveSupport::TestCase
4
+ def assert_declaration_transformation(from, to, one_way = false)
5
+ assert_equal(to, Rtlize::RTLizer.transform_declarations(from))
6
+ assert_equal(from, Rtlize::RTLizer.transform_declarations(to)) unless one_way
7
+ end
8
+
9
+ def assert_no_declaration_transformation(css)
10
+ assert_equal(css, Rtlize::RTLizer.transform_declarations(css))
11
+ end
12
+
13
+ def assert_transformation(from, to, one_way = false)
14
+ assert_equal(to, Rtlize::RTLizer.transform(from))
15
+ assert_equal(from, Rtlize::RTLizer.transform(to)) unless one_way
16
+ end
17
+
18
+ def assert_no_transformation(css)
19
+ assert_equal(css, Rtlize::RTLizer.transform(css))
20
+ end
21
+
22
+ test "Should transform the border properties properly" do
23
+ assert_declaration_transformation("border-left: 1px solid red;", "border-right: 1px solid red;")
24
+
25
+ assert_declaration_transformation("border-left-color: red;", "border-right-color: red;")
26
+ assert_declaration_transformation("border-left-style: solid;", "border-right-style: solid;")
27
+ assert_declaration_transformation("border-left-width: 1px;", "border-right-width: 1px;")
28
+
29
+ assert_declaration_transformation("border-color: #111 #222 #333 #444;", "border-color: #111 #444 #333 #222;")
30
+ assert_declaration_transformation("border-style: dotted solid double dashed;", "border-style: dotted dashed double solid;")
31
+ assert_declaration_transformation("border-width: 1px 2px 3px 4px;", "border-width: 1px 4px 3px 2px;")
32
+ end
33
+
34
+ test "Should transform the border-radius property" do
35
+ ["border-radius", "-moz-border-radius", "-webkit-border-radius"].each do |prop|
36
+ assert_declaration_transformation( "#{prop}: 1px 2px 3px 4px;", "#{prop}: 2px 1px 4px 3px;")
37
+ assert_declaration_transformation( "#{prop}: 1px 2px 3px;", "#{prop}: 2px 1px 2px 3px;", true)
38
+ assert_declaration_transformation( "#{prop}: 1px 2px;", "#{prop}: 2px 1px;")
39
+ assert_no_declaration_transformation("#{prop}: 1px;")
40
+ end
41
+
42
+ ['top', 'bottom'].each do |side|
43
+ assert_declaration_transformation("border-#{side}-left-radius: 1px;", "border-#{side}-right-radius: 1px;")
44
+ assert_declaration_transformation("-moz-border-radius-#{side}left: 1px;", "-moz-border-radius-#{side}right: 1px;")
45
+ assert_declaration_transformation("-webkit-border-#{side}-left-radius: 1px;", "-webkit-border-#{side}-right-radius: 1px;")
46
+ end
47
+ end
48
+
49
+ test "Should transform the clear/float properties" do
50
+ assert_declaration_transformation("clear: left;", "clear: right;")
51
+ assert_declaration_transformation("float: left;", "float: right;")
52
+ end
53
+
54
+ test "Should transform the direction property" do
55
+ assert_declaration_transformation("direction: ltr;", "direction: rtl;")
56
+ end
57
+
58
+ test "Should transform the left/right position properties" do
59
+ assert_declaration_transformation("left: 1px;", "right: 1px;")
60
+ end
61
+
62
+ test "Should transform the margin property" do
63
+ assert_declaration_transformation("margin: 1px 2px 3px 4px;", "margin: 1px 4px 3px 2px;")
64
+ assert_declaration_transformation("margin-left: 1px;", "margin-right: 1px;")
65
+ end
66
+
67
+ test "Should transform the padding property" do
68
+ assert_declaration_transformation("padding: 1px 2px 3px 4px;", "padding: 1px 4px 3px 2px;")
69
+ assert_declaration_transformation("padding-left: 1px;", "padding-right: 1px;")
70
+ end
71
+
72
+ test "Should transform the text-align property" do
73
+ assert_declaration_transformation("text-align: left;", "text-align: right;")
74
+ end
75
+
76
+ test "Should not transform CSS rules whose selector includes .rtl" do
77
+ assert_no_transformation(".klass span.rtl #id { float: left; }")
78
+ end
79
+
80
+ test "Should not transform CSS marked with no-rtl" do
81
+ assert_no_transformation(<<-CSS)
82
+ /*!= begin(no-rtl) */
83
+
84
+ .klass { float: left; }
85
+
86
+ /*!= end(no-rtl) */
87
+ CSS
88
+ end
89
+ end
metadata ADDED
@@ -0,0 +1,149 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rtlize
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Marwan Al Jubeh
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-12-16 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: &71651240 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 3.2.8
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *71651240
25
+ - !ruby/object:Gem::Dependency
26
+ name: sqlite3
27
+ requirement: &71646460 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *71646460
36
+ description: RTLize is a rails plugin that semi-automatically allows you to use the
37
+ same stylesheet file(s) to produce both left-to-right and right-to-left layouts
38
+ for your markup. It does this by intelligently switching all the left/right properties
39
+ and values in the stylesheets you choose to RTLize.
40
+ email:
41
+ - marwan.al.jubeh@gmail.com
42
+ executables: []
43
+ extensions: []
44
+ extra_rdoc_files: []
45
+ files:
46
+ - lib/rtlize.rb
47
+ - lib/rtlize/version.rb
48
+ - lib/rtlize/railtie.rb
49
+ - lib/rtlize/rtlizer.rb
50
+ - lib/rtlize/rtl_template.rb
51
+ - lib/tasks/rtlize_tasks.rake
52
+ - MIT-LICENSE
53
+ - Rakefile
54
+ - README.rdoc
55
+ - test/test_helper.rb
56
+ - test/dummy/public/422.html
57
+ - test/dummy/public/404.html
58
+ - test/dummy/public/favicon.ico
59
+ - test/dummy/public/500.html
60
+ - test/dummy/db/test.sqlite3
61
+ - test/dummy/db/development.sqlite3
62
+ - test/dummy/README.rdoc
63
+ - test/dummy/Rakefile
64
+ - test/dummy/log/development.log
65
+ - test/dummy/log/test.log
66
+ - test/dummy/app/controllers/application_controller.rb
67
+ - test/dummy/app/assets/stylesheets/application.css
68
+ - test/dummy/app/assets/javascripts/application.js
69
+ - test/dummy/app/helpers/application_helper.rb
70
+ - test/dummy/app/views/layouts/application.html.erb
71
+ - test/dummy/config.ru
72
+ - test/dummy/config/initializers/session_store.rb
73
+ - test/dummy/config/initializers/inflections.rb
74
+ - test/dummy/config/initializers/backtrace_silencers.rb
75
+ - test/dummy/config/initializers/wrap_parameters.rb
76
+ - test/dummy/config/initializers/mime_types.rb
77
+ - test/dummy/config/initializers/secret_token.rb
78
+ - test/dummy/config/routes.rb
79
+ - test/dummy/config/environment.rb
80
+ - test/dummy/config/boot.rb
81
+ - test/dummy/config/database.yml
82
+ - test/dummy/config/locales/en.yml
83
+ - test/dummy/config/environments/development.rb
84
+ - test/dummy/config/environments/test.rb
85
+ - test/dummy/config/environments/production.rb
86
+ - test/dummy/config/application.rb
87
+ - test/dummy/script/rails
88
+ - test/rtlize_test.rb
89
+ - test/unit/rtlizer_test.rb
90
+ homepage: http://github.com/maljub01/RTLize
91
+ licenses: []
92
+ post_install_message:
93
+ rdoc_options: []
94
+ require_paths:
95
+ - lib
96
+ required_ruby_version: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ required_rubygems_version: !ruby/object:Gem::Requirement
103
+ none: false
104
+ requirements:
105
+ - - ! '>='
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
108
+ requirements: []
109
+ rubyforge_project:
110
+ rubygems_version: 1.8.10
111
+ signing_key:
112
+ specification_version: 3
113
+ summary: Automatic CSS layout switcher (from LTR to RTL) for Rails
114
+ test_files:
115
+ - test/test_helper.rb
116
+ - test/dummy/public/422.html
117
+ - test/dummy/public/404.html
118
+ - test/dummy/public/favicon.ico
119
+ - test/dummy/public/500.html
120
+ - test/dummy/db/test.sqlite3
121
+ - test/dummy/db/development.sqlite3
122
+ - test/dummy/README.rdoc
123
+ - test/dummy/Rakefile
124
+ - test/dummy/log/development.log
125
+ - test/dummy/log/test.log
126
+ - test/dummy/app/controllers/application_controller.rb
127
+ - test/dummy/app/assets/stylesheets/application.css
128
+ - test/dummy/app/assets/javascripts/application.js
129
+ - test/dummy/app/helpers/application_helper.rb
130
+ - test/dummy/app/views/layouts/application.html.erb
131
+ - test/dummy/config.ru
132
+ - test/dummy/config/initializers/session_store.rb
133
+ - test/dummy/config/initializers/inflections.rb
134
+ - test/dummy/config/initializers/backtrace_silencers.rb
135
+ - test/dummy/config/initializers/wrap_parameters.rb
136
+ - test/dummy/config/initializers/mime_types.rb
137
+ - test/dummy/config/initializers/secret_token.rb
138
+ - test/dummy/config/routes.rb
139
+ - test/dummy/config/environment.rb
140
+ - test/dummy/config/boot.rb
141
+ - test/dummy/config/database.yml
142
+ - test/dummy/config/locales/en.yml
143
+ - test/dummy/config/environments/development.rb
144
+ - test/dummy/config/environments/test.rb
145
+ - test/dummy/config/environments/production.rb
146
+ - test/dummy/config/application.rb
147
+ - test/dummy/script/rails
148
+ - test/rtlize_test.rb
149
+ - test/unit/rtlizer_test.rb