slim 0.9.0 → 0.9.1.alpha.1

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 (59) hide show
  1. data/Rakefile +53 -0
  2. data/lib/slim/version.rb +1 -1
  3. data/test/helper.rb +177 -0
  4. data/test/integration/rails/dummy/Rakefile +7 -0
  5. data/test/integration/rails/dummy/app/controllers/application_controller.rb +3 -0
  6. data/test/integration/rails/dummy/app/controllers/parents_controller.rb +84 -0
  7. data/test/integration/rails/dummy/app/controllers/slim_controller.rb +25 -0
  8. data/test/integration/rails/dummy/app/helpers/application_helper.rb +2 -0
  9. data/test/integration/rails/dummy/app/models/child.rb +5 -0
  10. data/test/integration/rails/dummy/app/models/parent.rb +6 -0
  11. data/test/integration/rails/dummy/app/views/layouts/application.html.slim +10 -0
  12. data/test/integration/rails/dummy/app/views/parents/_form.html.slim +8 -0
  13. data/test/integration/rails/dummy/app/views/parents/edit.html.slim +1 -0
  14. data/test/integration/rails/dummy/app/views/parents/new.html.slim +1 -0
  15. data/test/integration/rails/dummy/app/views/parents/show.html.slim +5 -0
  16. data/test/integration/rails/dummy/app/views/slim/_partial.html.slim +1 -0
  17. data/test/integration/rails/dummy/app/views/slim/content_for.html.slim +7 -0
  18. data/test/integration/rails/dummy/app/views/slim/erb.html.erb +1 -0
  19. data/test/integration/rails/dummy/app/views/slim/integers.html.slim +1 -0
  20. data/test/integration/rails/dummy/app/views/slim/nil.html.slim +1 -0
  21. data/test/integration/rails/dummy/app/views/slim/no_layout.html.slim +1 -0
  22. data/test/integration/rails/dummy/app/views/slim/normal.html.slim +1 -0
  23. data/test/integration/rails/dummy/app/views/slim/partial.html.slim +2 -0
  24. data/test/integration/rails/dummy/app/views/slim/variables.html.slim +1 -0
  25. data/test/integration/rails/dummy/config/application.rb +44 -0
  26. data/test/integration/rails/dummy/config/boot.rb +10 -0
  27. data/test/integration/rails/dummy/config/database.yml +22 -0
  28. data/test/integration/rails/dummy/config/environment.rb +5 -0
  29. data/test/integration/rails/dummy/config/environments/development.rb +26 -0
  30. data/test/integration/rails/dummy/config/environments/production.rb +49 -0
  31. data/test/integration/rails/dummy/config/environments/test.rb +35 -0
  32. data/test/integration/rails/dummy/config/initializers/backtrace_silencers.rb +7 -0
  33. data/test/integration/rails/dummy/config/initializers/inflections.rb +10 -0
  34. data/test/integration/rails/dummy/config/initializers/mime_types.rb +5 -0
  35. data/test/integration/rails/dummy/config/initializers/secret_token.rb +7 -0
  36. data/test/integration/rails/dummy/config/initializers/session_store.rb +8 -0
  37. data/test/integration/rails/dummy/config/locales/en.yml +5 -0
  38. data/test/integration/rails/dummy/config/routes.rb +60 -0
  39. data/test/integration/rails/dummy/config.ru +4 -0
  40. data/test/integration/rails/dummy/db/migrate/20101220223037_parents_and_children.rb +17 -0
  41. data/test/integration/rails/dummy/script/rails +6 -0
  42. data/test/integration/rails/test_helper.rb +10 -0
  43. data/test/integration/rails/test_slim_rails.rb +66 -0
  44. data/test/slim/test_code_blocks.rb +68 -0
  45. data/test/slim/test_code_escaping.rb +53 -0
  46. data/test/slim/test_code_evaluation.rb +201 -0
  47. data/test/slim/test_code_output.rb +124 -0
  48. data/test/slim/test_code_structure.rb +95 -0
  49. data/test/slim/test_embedded_engines.rb +98 -0
  50. data/test/slim/test_html_escaping.rb +32 -0
  51. data/test/slim/test_html_structure.rb +307 -0
  52. data/test/slim/test_parser_errors.rb +107 -0
  53. data/test/slim/test_ruby_errors.rb +144 -0
  54. data/test/slim/test_sections.rb +90 -0
  55. data/test/slim/test_slim_template.rb +123 -0
  56. data/test/slim/test_text_interpolation.rb +56 -0
  57. data/test/slim/test_validator.rb +47 -0
  58. data/test/slim/test_wrapper.rb +32 -0
  59. metadata +68 -7
@@ -0,0 +1,144 @@
1
+ require 'helper'
2
+
3
+ class TestSlimRubyErrors < TestSlim
4
+ def test_broken_output_line
5
+ source = %q{
6
+ p = hello_world + \
7
+ hello_world + \
8
+ unknown_ruby_method
9
+ }
10
+
11
+ assert_ruby_error NameError, "test.slim:4", source, :file => 'test.slim'
12
+ end
13
+
14
+ def test_broken_output_line2
15
+ source = %q{
16
+ p = hello_world + \
17
+ hello_world
18
+ p Hello
19
+ = unknown_ruby_method
20
+ }
21
+
22
+ assert_ruby_error NameError,"(__TEMPLATE__):5", source
23
+ end
24
+
25
+ def test_output_block
26
+ source = %q{
27
+ p = hello_world "Hello Ruby" do
28
+ = unknown_ruby_method
29
+ }
30
+
31
+ assert_ruby_error NameError,"(__TEMPLATE__):3", source
32
+ end
33
+
34
+ def test_output_block2
35
+ source = %q{
36
+ p = hello_world "Hello Ruby" do
37
+ = "Hello from block"
38
+ p Hello
39
+ = unknown_ruby_method
40
+ }
41
+
42
+ assert_ruby_error NameError, "(__TEMPLATE__):5", source
43
+ end
44
+
45
+ def test_text_block
46
+ source = %q{
47
+ p Text line 1
48
+ Text line 2
49
+ = unknown_ruby_method
50
+ }
51
+
52
+ assert_ruby_error NameError,"(__TEMPLATE__):4", source
53
+ end
54
+
55
+ def test_text_block2
56
+ source = %q{
57
+ |
58
+ Text line 1
59
+ Text line 2
60
+ = unknown_ruby_method
61
+ }
62
+
63
+ assert_ruby_error NameError,"(__TEMPLATE__):5", source
64
+ end
65
+
66
+ def test_comment
67
+ source = %q{
68
+ / Comment line 1
69
+ Comment line 2
70
+ = unknown_ruby_method
71
+ }
72
+
73
+ assert_ruby_error NameError,"(__TEMPLATE__):4", source
74
+ end
75
+
76
+ def test_embedded_ruby
77
+ source = %q{
78
+ ruby:
79
+ a = 1
80
+ b = 2
81
+ = a + b
82
+ = unknown_ruby_method
83
+ }
84
+
85
+ assert_ruby_error NameError,"(__TEMPLATE__):5", source
86
+ end
87
+
88
+ def test_embedded_javascript
89
+ source = %q{
90
+ javascript:
91
+ alert();
92
+ alert();
93
+ = unknown_ruby_method
94
+ }
95
+
96
+ assert_ruby_error NameError,"(__TEMPLATE__):5", source
97
+ end
98
+
99
+ def test_invalid_nested_code
100
+ source = %q{
101
+ p
102
+ - test = 123
103
+ = "Hello from within a block! "
104
+ }
105
+ assert_ruby_syntax_error "(__TEMPLATE__):5", source
106
+ end
107
+
108
+ def test_invalid_nested_output
109
+ source = %q{
110
+ p
111
+ = "Hello Ruby!"
112
+ = "Hello from within a block! "
113
+ }
114
+ assert_ruby_syntax_error "(__TEMPLATE__):5", source
115
+ end
116
+
117
+ def test_invalid_embedded_engine
118
+ source = %q{
119
+ p
120
+ embed_unknown:
121
+ 1+1
122
+ }
123
+
124
+ assert_runtime_error 'Invalid embedded engine embed_unknown', source
125
+ end
126
+
127
+ def test_explicit_end
128
+ source = %q{
129
+ div
130
+ - if show_first?
131
+ p The first paragraph
132
+ - end
133
+ }
134
+
135
+ assert_runtime_error 'Explicit end statements are forbidden', source
136
+ end
137
+
138
+ def test_id_attribute_merging2
139
+ source = %{
140
+ #alpha id="beta" Test it
141
+ }
142
+ assert_runtime_error 'Multiple id attributes specified, but id concatenation disabled', source
143
+ end
144
+ end
@@ -0,0 +1,90 @@
1
+ require 'helper'
2
+
3
+ class TestSlimLogicLess < TestSlim
4
+ def setup
5
+ Slim::Sections.set_default_options(:dictionary_access => :symbol)
6
+ end
7
+
8
+ def teardown
9
+ Slim::Sections.set_default_options(:dictionary => 'self')
10
+ end
11
+
12
+ def test_sections
13
+ source = %q{
14
+ p
15
+ - person
16
+ .name = name
17
+ }
18
+
19
+ hash = {
20
+ :person => [
21
+ { :name => 'Joe', },
22
+ { :name => 'Jack', }
23
+ ]
24
+ }
25
+
26
+ assert_html '<p><div class="name">Joe</div><div class="name">Jack</div></p>', source, :scope => hash, :sections => true
27
+ end
28
+
29
+ def test_sections_string_access
30
+ source = %q{
31
+ p
32
+ - person
33
+ .name = name
34
+ }
35
+
36
+ hash = {
37
+ 'person' => [
38
+ { 'name' => 'Joe', },
39
+ { 'name' => 'Jack', }
40
+ ]
41
+ }
42
+
43
+ assert_html '<p><div class="name">Joe</div><div class="name">Jack</div></p>', source, :scope => hash, :sections => true, :dictionary_access => :string
44
+ end
45
+
46
+ def test_flag_section
47
+ source = %q{
48
+ p
49
+ - show_person
50
+ - person
51
+ .name = name
52
+ - show_person
53
+ | shown
54
+ }
55
+
56
+ hash = {
57
+ :show_person => true,
58
+ :person => [
59
+ { :name => 'Joe', },
60
+ { :name => 'Jack', }
61
+ ]
62
+ }
63
+
64
+ assert_html '<p><div class="name">Joe</div><div class="name">Jack</div>shown</p>', source, :scope => hash, :sections => true
65
+ end
66
+
67
+ def test_inverted_section
68
+ source = %q{
69
+ p
70
+ - person
71
+ .name = name
72
+ -! person
73
+ | No person
74
+ - !person
75
+ | No person 2
76
+ }
77
+
78
+ hash = {}
79
+
80
+ assert_html '<p>No person No person 2</p>', source, :scope => hash, :sections => true
81
+ end
82
+
83
+ def test_output_with_content
84
+ source = %{
85
+ p = method_with_block do
86
+ block
87
+ }
88
+ assert_runtime_error 'Output statements with content are forbidden in sections mode', source, :sections => true
89
+ end
90
+ end
@@ -0,0 +1,123 @@
1
+ require 'helper'
2
+
3
+ class ::MockError < NameError
4
+ end
5
+
6
+ class TestSlimTemplate < MiniTest::Unit::TestCase
7
+ class Scope
8
+ end
9
+
10
+ def test_registered_extension
11
+ assert_equal Slim::Template, Tilt['test.slim']
12
+ end
13
+
14
+ def test_preparing_and_evaluating
15
+ template = Slim::Template.new { |t| "p Hello World!\n" }
16
+ assert_equal "<p>Hello World!</p>", template.render
17
+ end
18
+
19
+ def test_passing_locals
20
+ template = Slim::Template.new { "p = 'Hey ' + name + '!'\n" }
21
+ assert_equal "<p>Hey Joe!</p>", template.render(Object.new, :name => 'Joe')
22
+ end
23
+
24
+ def test_evaluating_in_an_object_scope
25
+ template = Slim::Template.new { "p = 'Hey ' + @name + '!'\n" }
26
+ scope = Object.new
27
+ scope.instance_variable_set :@name, 'Joe'
28
+ assert_equal "<p>Hey Joe!</p>", template.render(scope)
29
+ end
30
+
31
+ def test_passing_a_block_for_yield
32
+ template = Slim::Template.new { "p = 'Hey ' + yield + '!'\n" }
33
+ assert_equal "<p>Hey Joe!</p>", template.render { 'Joe' }
34
+ end
35
+
36
+ def test_backtrace_file_and_line_reporting_without_locals
37
+ data = File.read(__FILE__).split("\n__END__\n").last
38
+ fail unless data[0] == ?h
39
+ template = Slim::Template.new('test.slim', 10) { data }
40
+ begin
41
+ template.render
42
+ fail 'should have raised an exception'
43
+ rescue => boom
44
+ assert_kind_of NameError, boom
45
+ line = boom.backtrace.first
46
+ assert_equal 'test.slim', line.split(":").first
47
+ end
48
+ end
49
+
50
+ def test_backtrace_file_and_line_reporting_with_locals
51
+ data = File.read(__FILE__).split("\n__END__\n").last
52
+ fail unless data[0] == ?h
53
+ template = Slim::Template.new('test.slim') { data }
54
+ begin
55
+ res = template.render(Object.new, :name => 'Joe', :foo => 'bar')
56
+ rescue => boom
57
+ assert_kind_of MockError, boom
58
+ line = boom.backtrace.first
59
+ assert_equal 'test.slim', line.split(":").first
60
+ end
61
+ end
62
+
63
+ def test_compiling_template_source_to_a_method
64
+ template = Slim::Template.new { |t| "Hello World!" }
65
+ template.render(Scope.new)
66
+ method = template.send(:compiled_method, [])
67
+ assert_kind_of UnboundMethod, method
68
+ end
69
+
70
+
71
+ def test_passing_locals
72
+ template = Slim::Template.new { "p = 'Hey ' + name + '!'\n" }
73
+ assert_equal "<p>Hey Joe!</p>", template.render(Scope.new, :name => 'Joe')
74
+ end
75
+
76
+ def test_evaluating_in_an_object_scope
77
+ template = Slim::Template.new { "p = 'Hey ' + @name + '!'\n" }
78
+ scope = Scope.new
79
+ scope.instance_variable_set :@name, 'Joe'
80
+ assert_equal "<p>Hey Joe!</p>", template.render(scope)
81
+ end
82
+
83
+ def test_passing_a_block_for_yield
84
+ template = Slim::Template.new { "p = 'Hey ' + yield + '!'\n" }
85
+ assert_equal "<p>Hey Joe!</p>", template.render(Scope.new) { 'Joe' }
86
+ end
87
+
88
+ def backtrace_file_and_line_reporting_without_locals
89
+ data = File.read(__FILE__).split("\n__END__\n").last
90
+ fail unless data[0] == ?h
91
+ template = Slim::Template.new('test.slim', 10) { data }
92
+ begin
93
+ template.render(Scope.new)
94
+ fail 'should have raised an exception'
95
+ rescue => boom
96
+ assert_kind_of NameError, boom
97
+ line = boom.backtrace.first
98
+ assert_equal 'test.slim', line.split(":").first
99
+ end
100
+ end
101
+
102
+ def test_backtrace_file_and_line_reporting_with_locals
103
+ data = File.read(__FILE__).split("\n__END__\n").last
104
+ fail unless data[0] == ?h
105
+ template = Slim::Template.new('test.slim') { data }
106
+ begin
107
+ res = template.render(Scope.new, :name => 'Joe', :foo => 'bar')
108
+ rescue => boom
109
+ assert_kind_of MockError, boom
110
+ line = boom.backtrace.first
111
+ assert_equal 'test.slim', line.split(":").first
112
+ end
113
+ end
114
+ end
115
+
116
+ __END__
117
+ html
118
+ body
119
+ h1 = "Hey #{name}"
120
+
121
+ = raise MockError
122
+
123
+ p we never get here
@@ -0,0 +1,56 @@
1
+ require 'helper'
2
+
3
+ class TestSlimTextInterpolation < TestSlim
4
+
5
+ def test_interpolation_in_text
6
+ source = %q{
7
+ p
8
+ | #{hello_world} with "quotes"
9
+ p
10
+ |
11
+ A message from the compiler: #{hello_world}
12
+ }
13
+
14
+ assert_html '<p>Hello World from @env with "quotes"</p><p>A message from the compiler: Hello World from @env</p>', source
15
+ end
16
+
17
+ def test_interpolation_in_tag
18
+ source = %q{
19
+ p #{hello_world}
20
+ }
21
+
22
+ assert_html '<p>Hello World from @env</p>', source
23
+ end
24
+
25
+ def test_escape_interpolation
26
+ source = %q{
27
+ p \\#{hello_world}
28
+ }
29
+
30
+ assert_html '<p>#{hello_world}</p>', source
31
+ end
32
+
33
+ def test_complex_interpolation
34
+ source = %q{
35
+ p Message: #{message('hello', "user #{output_number}")}
36
+ }
37
+
38
+ assert_html '<p>Message: hello user 1337</p>', source
39
+ end
40
+
41
+ def test_interpolation_with_escaping
42
+ source = %q{
43
+ | #{evil_method}
44
+ }
45
+
46
+ assert_html '&lt;script&gt;do_something_evil();&lt;&#47;script&gt;', source
47
+ end
48
+
49
+ def test_interpolation_without_escaping
50
+ source = %q{
51
+ | #{{evil_method}}
52
+ }
53
+
54
+ assert_html '<script>do_something_evil();</script>', source
55
+ end
56
+ end
@@ -0,0 +1,47 @@
1
+ require 'helper'
2
+
3
+ class TestSlimValidator < TestSlim
4
+ def test_valid_true?
5
+ source = %q{
6
+ p Slim
7
+ }
8
+ assert_valid? true, source
9
+ end
10
+
11
+ def test_valid_false?
12
+ source = %q{
13
+ p
14
+ Slim
15
+ }
16
+ assert_valid? false, source
17
+ end
18
+
19
+ def test_valid!
20
+ source = %q{
21
+ p Slim
22
+ }
23
+ assert_valid! false, source
24
+ end
25
+
26
+ def test_invalid!
27
+ source = %q{
28
+ p
29
+ Slim
30
+ }
31
+ assert_invalid! Slim::Parser::SyntaxError, source
32
+ end
33
+
34
+ private
35
+
36
+ def assert_valid?(expected, source)
37
+ assert_equal expected, Slim::Validator.valid?(source)
38
+ end
39
+
40
+ def assert_valid!(expected, source)
41
+ assert_equal true, Slim::Validator.validate!(source)
42
+ end
43
+
44
+ def assert_invalid!(expected, source)
45
+ assert_equal expected, Slim::Validator.validate!(source).class
46
+ end
47
+ end
@@ -0,0 +1,32 @@
1
+ require 'helper'
2
+
3
+
4
+ class TestSlimWrapper < TestSlim
5
+ def setup
6
+ Slim::Sections.set_default_options(:dictionary => 'ViewEnv.new')
7
+ end
8
+
9
+ def teardown
10
+ Slim::Sections.set_default_options(:dictionary => 'self')
11
+ end
12
+
13
+ def test_sections
14
+ source = %q{
15
+ p
16
+ - person
17
+ .name = name
18
+ }
19
+ assert_html '<p><div class="name">Joe</div><div class="name">Jack</div></p>', source, :sections => true
20
+ end
21
+
22
+ def test_with_array
23
+ source = %q{
24
+ ul
25
+ - people_with_locations
26
+ li = name
27
+ li = city
28
+ }
29
+ assert_html '<ul><li>Andy</li><li>Atlanta</li><li>Fred</li><li>Melbourne</li><li>Daniel</li><li>Karlsruhe</li></ul>', source, :sections => true
30
+ end
31
+
32
+ end
metadata CHANGED
@@ -1,12 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slim
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
4
+ prerelease: true
5
5
  segments:
6
6
  - 0
7
7
  - 9
8
- - 0
9
- version: 0.9.0
8
+ - 1
9
+ - alpha
10
+ - 1
11
+ version: 0.9.1.alpha.1
10
12
  platform: ruby
11
13
  authors:
12
14
  - Andrew Stone
@@ -16,7 +18,7 @@ autorequire:
16
18
  bindir: bin
17
19
  cert_chain: []
18
20
 
19
- date: 2011-01-30 00:00:00 -05:00
21
+ date: 2011-02-03 00:00:00 +11:00
20
22
  default_executable:
21
23
  dependencies:
22
24
  - !ruby/object:Gem::Dependency
@@ -154,6 +156,7 @@ extra_rdoc_files:
154
156
  - README.md
155
157
  files:
156
158
  - README.md
159
+ - Rakefile
157
160
  - bin/slimrb
158
161
  - lib/slim.rb
159
162
  - lib/slim/command.rb
@@ -170,6 +173,62 @@ files:
170
173
  - lib/slim/validator.rb
171
174
  - lib/slim/version.rb
172
175
  - lib/slim/wrapper.rb
176
+ - test/helper.rb
177
+ - test/integration/rails/dummy/Rakefile
178
+ - test/integration/rails/dummy/app/controllers/application_controller.rb
179
+ - test/integration/rails/dummy/app/controllers/parents_controller.rb
180
+ - test/integration/rails/dummy/app/controllers/slim_controller.rb
181
+ - test/integration/rails/dummy/app/helpers/application_helper.rb
182
+ - test/integration/rails/dummy/app/models/child.rb
183
+ - test/integration/rails/dummy/app/models/parent.rb
184
+ - test/integration/rails/dummy/app/views/layouts/application.html.slim
185
+ - test/integration/rails/dummy/app/views/parents/_form.html.slim
186
+ - test/integration/rails/dummy/app/views/parents/edit.html.slim
187
+ - test/integration/rails/dummy/app/views/parents/new.html.slim
188
+ - test/integration/rails/dummy/app/views/parents/show.html.slim
189
+ - test/integration/rails/dummy/app/views/slim/_partial.html.slim
190
+ - test/integration/rails/dummy/app/views/slim/content_for.html.slim
191
+ - test/integration/rails/dummy/app/views/slim/erb.html.erb
192
+ - test/integration/rails/dummy/app/views/slim/integers.html.slim
193
+ - test/integration/rails/dummy/app/views/slim/nil.html.slim
194
+ - test/integration/rails/dummy/app/views/slim/no_layout.html.slim
195
+ - test/integration/rails/dummy/app/views/slim/normal.html.slim
196
+ - test/integration/rails/dummy/app/views/slim/partial.html.slim
197
+ - test/integration/rails/dummy/app/views/slim/variables.html.slim
198
+ - test/integration/rails/dummy/config.ru
199
+ - test/integration/rails/dummy/config/application.rb
200
+ - test/integration/rails/dummy/config/boot.rb
201
+ - test/integration/rails/dummy/config/database.yml
202
+ - test/integration/rails/dummy/config/environment.rb
203
+ - test/integration/rails/dummy/config/environments/development.rb
204
+ - test/integration/rails/dummy/config/environments/production.rb
205
+ - test/integration/rails/dummy/config/environments/test.rb
206
+ - test/integration/rails/dummy/config/initializers/backtrace_silencers.rb
207
+ - test/integration/rails/dummy/config/initializers/inflections.rb
208
+ - test/integration/rails/dummy/config/initializers/mime_types.rb
209
+ - test/integration/rails/dummy/config/initializers/secret_token.rb
210
+ - test/integration/rails/dummy/config/initializers/session_store.rb
211
+ - test/integration/rails/dummy/config/locales/en.yml
212
+ - test/integration/rails/dummy/config/routes.rb
213
+ - test/integration/rails/dummy/db/migrate/20101220223037_parents_and_children.rb
214
+ - test/integration/rails/dummy/script/rails
215
+ - test/integration/rails/test_helper.rb
216
+ - test/integration/rails/test_slim_rails.rb
217
+ - test/slim/test_code_blocks.rb
218
+ - test/slim/test_code_escaping.rb
219
+ - test/slim/test_code_evaluation.rb
220
+ - test/slim/test_code_output.rb
221
+ - test/slim/test_code_structure.rb
222
+ - test/slim/test_embedded_engines.rb
223
+ - test/slim/test_html_escaping.rb
224
+ - test/slim/test_html_structure.rb
225
+ - test/slim/test_parser_errors.rb
226
+ - test/slim/test_ruby_errors.rb
227
+ - test/slim/test_sections.rb
228
+ - test/slim/test_slim_template.rb
229
+ - test/slim/test_text_interpolation.rb
230
+ - test/slim/test_validator.rb
231
+ - test/slim/test_wrapper.rb
173
232
  has_rdoc: true
174
233
  homepage: http://github.com/stonean/slim
175
234
  licenses: []
@@ -190,11 +249,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
190
249
  required_rubygems_version: !ruby/object:Gem::Requirement
191
250
  none: false
192
251
  requirements:
193
- - - ">="
252
+ - - ">"
194
253
  - !ruby/object:Gem::Version
195
254
  segments:
196
- - 0
197
- version: "0"
255
+ - 1
256
+ - 3
257
+ - 1
258
+ version: 1.3.1
198
259
  requirements: []
199
260
 
200
261
  rubyforge_project: slim