tbone 0.1.9 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -10,3 +10,21 @@ group :development do
10
10
  gem "bundler"
11
11
  gem "jeweler"
12
12
  end
13
+ group :assets do
14
+ gem 'sass-rails'
15
+ gem 'coffee-rails'
16
+ gem 'twitter-bootstrap-rails'
17
+ gem 'uglifier'
18
+ gem 'therubyracer'
19
+ gem 'less-rails'
20
+ gem 'haml_coffee_assets'
21
+ end
22
+ gem 'i18n-js'
23
+ gem 'kaminari'
24
+ gem 'haml-rails'
25
+ gem 'coffee-filter'
26
+ gem 'rabl'
27
+ gem 'jquery-rails'
28
+ gem 'yajl-ruby'
29
+ gem 'rails-backbone'
30
+ gem 'requirejs-rails'
data/Gemfile.lock CHANGED
@@ -1,21 +1,143 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
+ actionpack (3.2.8)
5
+ activemodel (= 3.2.8)
6
+ activesupport (= 3.2.8)
7
+ builder (~> 3.0.0)
8
+ erubis (~> 2.7.0)
9
+ journey (~> 1.0.4)
10
+ rack (~> 1.4.0)
11
+ rack-cache (~> 1.2)
12
+ rack-test (~> 0.6.1)
13
+ sprockets (~> 2.1.3)
14
+ activemodel (3.2.8)
15
+ activesupport (= 3.2.8)
16
+ builder (~> 3.0.0)
17
+ activesupport (3.2.8)
18
+ i18n (~> 0.6)
19
+ multi_json (~> 1.0)
20
+ builder (3.0.4)
21
+ coffee-filter (0.1.1)
22
+ coffee-script (>= 2.2.0)
23
+ haml (>= 3.0.18)
24
+ coffee-rails (3.2.2)
25
+ coffee-script (>= 2.2.0)
26
+ railties (~> 3.2.0)
27
+ coffee-script (2.2.0)
28
+ coffee-script-source
29
+ execjs
30
+ coffee-script-source (1.4.0)
31
+ commonjs (0.2.6)
32
+ ejs (1.1.1)
33
+ erubis (2.7.0)
34
+ execjs (1.4.0)
35
+ multi_json (~> 1.0)
4
36
  git (1.2.5)
37
+ haml (3.1.7)
38
+ haml-rails (0.3.5)
39
+ actionpack (>= 3.1, < 4.1)
40
+ activesupport (>= 3.1, < 4.1)
41
+ haml (~> 3.1)
42
+ railties (>= 3.1, < 4.1)
43
+ haml_coffee_assets (1.6.0)
44
+ coffee-script (>= 1.0.0)
45
+ sprockets (>= 2.0.3)
46
+ tilt (>= 1.3.3)
47
+ hike (1.2.1)
48
+ i18n (0.6.1)
49
+ i18n-js (2.1.2)
50
+ i18n
5
51
  jeweler (1.8.4)
6
52
  bundler (~> 1.0)
7
53
  git (>= 1.2.5)
8
54
  rake
9
55
  rdoc
56
+ journey (1.0.4)
57
+ jquery-rails (2.1.3)
58
+ railties (>= 3.1.0, < 5.0)
59
+ thor (~> 0.14)
10
60
  json (1.7.3)
61
+ kaminari (0.14.1)
62
+ actionpack (>= 3.0.0)
63
+ activesupport (>= 3.0.0)
64
+ less (2.2.2)
65
+ commonjs (~> 0.2.6)
66
+ less-rails (2.2.4)
67
+ actionpack (>= 3.1)
68
+ less (~> 2.2.0)
69
+ libv8 (3.3.10.4)
70
+ multi_json (1.3.6)
71
+ rabl (0.7.3)
72
+ activesupport (>= 2.3.14)
73
+ multi_json (~> 1.0)
74
+ rack (1.4.1)
75
+ rack-cache (1.2)
76
+ rack (>= 0.4)
77
+ rack-ssl (1.3.2)
78
+ rack
79
+ rack-test (0.6.2)
80
+ rack (>= 1.0)
81
+ rails-backbone (0.8.0)
82
+ coffee-script (~> 2.2.0)
83
+ ejs (~> 1.1.1)
84
+ jquery-rails (~> 2.1.3)
85
+ railties (>= 3.1.0)
86
+ railties (3.2.8)
87
+ actionpack (= 3.2.8)
88
+ activesupport (= 3.2.8)
89
+ rack-ssl (~> 1.3.2)
90
+ rake (>= 0.8.7)
91
+ rdoc (~> 3.4)
92
+ thor (>= 0.14.6, < 2.0)
11
93
  rake (0.9.2.2)
12
94
  rdoc (3.12)
13
95
  json (~> 1.4)
96
+ requirejs-rails (0.9.0)
97
+ railties (>= 3.1.1, < 3.3)
98
+ sass (3.2.1)
99
+ sass-rails (3.2.5)
100
+ railties (~> 3.2.0)
101
+ sass (>= 3.1.10)
102
+ tilt (~> 1.3)
103
+ sprockets (2.1.3)
104
+ hike (~> 1.2)
105
+ rack (~> 1.0)
106
+ tilt (~> 1.1, != 1.3.0)
107
+ therubyracer (0.10.2)
108
+ libv8 (~> 3.3.10)
109
+ thor (0.16.0)
110
+ tilt (1.3.3)
111
+ twitter-bootstrap-rails (2.1.4)
112
+ actionpack (>= 3.1)
113
+ less-rails (~> 2.2.3)
114
+ railties (>= 3.1)
115
+ therubyracer (>= 0.10.2)
116
+ uglifier (1.3.0)
117
+ execjs (>= 0.3.0)
118
+ multi_json (~> 1.0, >= 1.0.2)
119
+ yajl-ruby (1.1.0)
14
120
 
15
121
  PLATFORMS
16
122
  ruby
17
123
 
18
124
  DEPENDENCIES
19
125
  bundler
126
+ coffee-filter
127
+ coffee-rails
128
+ haml-rails
129
+ haml_coffee_assets
130
+ i18n-js
20
131
  jeweler
132
+ jquery-rails
133
+ kaminari
134
+ less-rails
135
+ rabl
136
+ rails-backbone
21
137
  rdoc
138
+ requirejs-rails
139
+ sass-rails
140
+ therubyracer
141
+ twitter-bootstrap-rails
142
+ uglifier
143
+ yajl-ruby
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.9
1
+ 0.2.0
@@ -3,6 +3,7 @@ define [
3
3
  'models/token'
4
4
  'views/tokens/show_view'
5
5
  'backbone-rails'
6
+ 'hamlcoffee'
6
7
  ],
7
8
 
8
9
  ($, Token, TokensView) ->
@@ -1,4 +1,4 @@
1
- - className = 'alert-' + type
1
+ - className = 'alert-' + @model.get('type')
2
2
  .alert.fade.in{class: className}
3
3
  %a.close{data-dismiss: "alert", href:"#"} &times;
4
- = message
4
+ = @model.get('message')
@@ -0,0 +1,31 @@
1
+ - pages = for i in [1..@pageInfo.pages]
2
+ - {
3
+ - url: @urlPrefix + i,
4
+ - num: i,
5
+ - class: if i == @pageInfo.page then 'active' else null
6
+ - }
7
+ -
8
+ - makeArrow = (data, urlPrefix) ->
9
+ - if data == false
10
+ - {
11
+ - class: 'disabled',
12
+ - url: '#'
13
+ - }
14
+ - else
15
+ - {
16
+ - class: null,
17
+ - url: urlPrefix + data
18
+ - }
19
+ -
20
+ - prev = makeArrow(@pageInfo.prev, @urlPrefix)
21
+ - next = makeArrow(@pageInfo.next, @urlPrefix)
22
+ - if @pageInfo.pages > 1
23
+ .pagination
24
+ %ul
25
+ %li{class: prev['class']}
26
+ %a{href: prev['url']} «
27
+ - for page in pages
28
+ %li{class: page['class']}
29
+ %a{href: page['url']}= page['num']
30
+ %li{class: next['class']}
31
+ %a{href: next['url']} »
@@ -6,15 +6,15 @@ define [
6
6
  ], ($, Backbone, App) ->
7
7
 
8
8
  class App.Views.Common.AlertMessageView extends Backbone.View
9
- template: JST["templates/common/alert_message"]
9
+ template: JST["common/alert_message"]
10
10
 
11
11
  events: ->
12
12
  'click .close': 'destroy'
13
13
 
14
14
  render: ->
15
- $(@el).html(@template(@model.toJSON()))
15
+ $(@el).html(@template @)
16
16
  @model.set('shown', true)
17
- return this
17
+ @
18
18
 
19
19
  destroy: ->
20
20
  @model.destroy()
@@ -6,7 +6,7 @@ define [
6
6
  ], ($, Backbone, App) ->
7
7
 
8
8
  class App.Views.Common.ConfirmView extends Backbone.View
9
- template: JST["templates/common/confirm"]
9
+ template: JST["common/confirm"]
10
10
 
11
11
  events:
12
12
  "click .yes": "accept"
@@ -57,15 +57,15 @@ define [
57
57
  @addErrorAlert(@errors.error)
58
58
  @renderAlerts()
59
59
  @markErrorField(name, error) for name, error of @errors
60
- return this
60
+ @
61
61
 
62
62
  render: ->
63
- $(@el).html(@template(@model.toJSON() ))
63
+ $(@el).html(@template(@))
64
64
  @renderAlerts()
65
65
  @trigger('databind')
66
66
  @form = $(@el)
67
67
  @form.backboneLink(@model)
68
- return this
68
+ @
69
69
 
70
70
  back: ->
71
71
  window.history.back()
@@ -7,13 +7,16 @@ define [
7
7
  ], ($, Backbone, App, AlertView) ->
8
8
 
9
9
  class App.Views.Common.PagerView extends AlertView
10
- template: JST["templates/common/pager"]
10
+ template: JST["common/pager"]
11
11
 
12
12
  initialize: ->
13
13
  @collection.on('add', @render, this)
14
14
  @collection.on('remove', @render, this)
15
15
 
16
+ stub: (e) ->
17
+ e.preventDefault()
18
+
16
19
  render: ->
17
20
  super
18
21
  $(@el).html(@template({pageInfo: @collection.toJSON().pageInfo, urlPrefix: @options.urlPrefix}))
19
- return this
22
+ @
@@ -8,4 +8,11 @@ class HomeController < ApplicationController
8
8
  end
9
9
  end
10
10
  end
11
+ def render_bootstrap_data(template)
12
+ old_format = lookup_context.rendered_format
13
+ lookup_context.rendered_format = :json
14
+ data = Rabl.render(nil, template, :view_path => 'app/views', :format => :hash, :scope => self.view_context)
15
+ lookup_context.rendered_format = old_format
16
+ data
17
+ end
11
18
  end
@@ -1,5 +1,5 @@
1
1
  module TboneHelper
2
2
  def tbone_include_tag(name)
3
- javascript_tag("var __params = #{ Tbone.config.params.to_json }")
3
+ requirejs_include_tag(name) + javascript_tag("var __params = #{ Tbone.config.params.to_json }")
4
4
  end
5
5
  end
@@ -4,7 +4,7 @@ module Tbone
4
4
  module Generators
5
5
  class BackboneModelGenerator < ::Rails::Generators::NamedBase
6
6
  source_root File.expand_path("../templates", __FILE__)
7
- desc "This generator generates simple T-bone generator"
7
+ desc "This generator generates simple T-bone model"
8
8
  def create_controller
9
9
  template "model.coffee.erb", "app/assets/javascripts/models/#{single_name}.js.coffee"
10
10
  template "collection.coffee.erb", "app/assets/javascripts/collections/#{plural_name}.js.coffee"
data/tbone.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{tbone}
8
- s.version = "0.1.9"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = [%q{Pavel Tatarsky}]
12
- s.date = %q{2012-10-01}
12
+ s.date = %q{2012-11-09}
13
13
  s.description = %q{Library for mixing together requirejs backbone and twitter bootstrap}
14
14
  s.email = %q{fazzzenda@mail.ru}
15
15
  s.extra_rdoc_files = [
@@ -34,9 +34,9 @@ Gem::Specification.new do |s|
34
34
  "app/assets/javascripts/tbone.js.coffee",
35
35
  "app/assets/javascripts/tbone_backbone_datalink.js.coffee",
36
36
  "app/assets/javascripts/templates/.gitkeep",
37
- "app/assets/javascripts/templates/common/alert_message.jst.hamljs",
38
- "app/assets/javascripts/templates/common/confirm.jst.hamljs",
39
- "app/assets/javascripts/templates/common/pager.jst.hamljs",
37
+ "app/assets/javascripts/templates/common/alert_message.hamlc",
38
+ "app/assets/javascripts/templates/common/confirm.hamlc",
39
+ "app/assets/javascripts/templates/common/pager.hamlc",
40
40
  "app/assets/javascripts/views/.gitkeep",
41
41
  "app/assets/javascripts/views/common/alert_message_view.js.coffee",
42
42
  "app/assets/javascripts/views/common/alert_view.js.coffee",
@@ -91,15 +91,42 @@ Gem::Specification.new do |s|
91
91
  s.specification_version = 3
92
92
 
93
93
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
94
+ s.add_runtime_dependency(%q<i18n-js>, [">= 0"])
95
+ s.add_runtime_dependency(%q<kaminari>, [">= 0"])
96
+ s.add_runtime_dependency(%q<haml-rails>, [">= 0"])
97
+ s.add_runtime_dependency(%q<coffee-filter>, [">= 0"])
98
+ s.add_runtime_dependency(%q<rabl>, [">= 0"])
99
+ s.add_runtime_dependency(%q<jquery-rails>, [">= 0"])
100
+ s.add_runtime_dependency(%q<yajl-ruby>, [">= 0"])
101
+ s.add_runtime_dependency(%q<rails-backbone>, [">= 0"])
102
+ s.add_runtime_dependency(%q<requirejs-rails>, [">= 0"])
94
103
  s.add_development_dependency(%q<rdoc>, [">= 0"])
95
104
  s.add_development_dependency(%q<bundler>, [">= 0"])
96
105
  s.add_development_dependency(%q<jeweler>, [">= 0"])
97
106
  else
107
+ s.add_dependency(%q<i18n-js>, [">= 0"])
108
+ s.add_dependency(%q<kaminari>, [">= 0"])
109
+ s.add_dependency(%q<haml-rails>, [">= 0"])
110
+ s.add_dependency(%q<coffee-filter>, [">= 0"])
111
+ s.add_dependency(%q<rabl>, [">= 0"])
112
+ s.add_dependency(%q<jquery-rails>, [">= 0"])
113
+ s.add_dependency(%q<yajl-ruby>, [">= 0"])
114
+ s.add_dependency(%q<rails-backbone>, [">= 0"])
115
+ s.add_dependency(%q<requirejs-rails>, [">= 0"])
98
116
  s.add_dependency(%q<rdoc>, [">= 0"])
99
117
  s.add_dependency(%q<bundler>, [">= 0"])
100
118
  s.add_dependency(%q<jeweler>, [">= 0"])
101
119
  end
102
120
  else
121
+ s.add_dependency(%q<i18n-js>, [">= 0"])
122
+ s.add_dependency(%q<kaminari>, [">= 0"])
123
+ s.add_dependency(%q<haml-rails>, [">= 0"])
124
+ s.add_dependency(%q<coffee-filter>, [">= 0"])
125
+ s.add_dependency(%q<rabl>, [">= 0"])
126
+ s.add_dependency(%q<jquery-rails>, [">= 0"])
127
+ s.add_dependency(%q<yajl-ruby>, [">= 0"])
128
+ s.add_dependency(%q<rails-backbone>, [">= 0"])
129
+ s.add_dependency(%q<requirejs-rails>, [">= 0"])
103
130
  s.add_dependency(%q<rdoc>, [">= 0"])
104
131
  s.add_dependency(%q<bundler>, [">= 0"])
105
132
  s.add_dependency(%q<jeweler>, [">= 0"])
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tbone
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,110 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-01 00:00:00.000000000 Z
12
+ date: 2012-11-09 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: i18n-js
16
+ requirement: &70191079091780 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70191079091780
25
+ - !ruby/object:Gem::Dependency
26
+ name: kaminari
27
+ requirement: &70191079089800 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70191079089800
36
+ - !ruby/object:Gem::Dependency
37
+ name: haml-rails
38
+ requirement: &70191079103900 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *70191079103900
47
+ - !ruby/object:Gem::Dependency
48
+ name: coffee-filter
49
+ requirement: &70191079101960 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *70191079101960
58
+ - !ruby/object:Gem::Dependency
59
+ name: rabl
60
+ requirement: &70191079099800 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: *70191079099800
69
+ - !ruby/object:Gem::Dependency
70
+ name: jquery-rails
71
+ requirement: &70191079098360 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: *70191079098360
80
+ - !ruby/object:Gem::Dependency
81
+ name: yajl-ruby
82
+ requirement: &70191079097480 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :runtime
89
+ prerelease: false
90
+ version_requirements: *70191079097480
91
+ - !ruby/object:Gem::Dependency
92
+ name: rails-backbone
93
+ requirement: &70191079114320 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ type: :runtime
100
+ prerelease: false
101
+ version_requirements: *70191079114320
102
+ - !ruby/object:Gem::Dependency
103
+ name: requirejs-rails
104
+ requirement: &70191079113060 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: *70191079113060
14
113
  - !ruby/object:Gem::Dependency
15
114
  name: rdoc
16
- requirement: &70128924335140 !ruby/object:Gem::Requirement
115
+ requirement: &70191079129480 !ruby/object:Gem::Requirement
17
116
  none: false
18
117
  requirements:
19
118
  - - ! '>='
@@ -21,10 +120,10 @@ dependencies:
21
120
  version: '0'
22
121
  type: :development
23
122
  prerelease: false
24
- version_requirements: *70128924335140
123
+ version_requirements: *70191079129480
25
124
  - !ruby/object:Gem::Dependency
26
125
  name: bundler
27
- requirement: &70128924334600 !ruby/object:Gem::Requirement
126
+ requirement: &70191079127320 !ruby/object:Gem::Requirement
28
127
  none: false
29
128
  requirements:
30
129
  - - ! '>='
@@ -32,10 +131,10 @@ dependencies:
32
131
  version: '0'
33
132
  type: :development
34
133
  prerelease: false
35
- version_requirements: *70128924334600
134
+ version_requirements: *70191079127320
36
135
  - !ruby/object:Gem::Dependency
37
136
  name: jeweler
38
- requirement: &70128924334100 !ruby/object:Gem::Requirement
137
+ requirement: &70191079142520 !ruby/object:Gem::Requirement
39
138
  none: false
40
139
  requirements:
41
140
  - - ! '>='
@@ -43,7 +142,7 @@ dependencies:
43
142
  version: '0'
44
143
  type: :development
45
144
  prerelease: false
46
- version_requirements: *70128924334100
145
+ version_requirements: *70191079142520
47
146
  description: Library for mixing together requirejs backbone and twitter bootstrap
48
147
  email: fazzzenda@mail.ru
49
148
  executables: []
@@ -69,9 +168,9 @@ files:
69
168
  - app/assets/javascripts/tbone.js.coffee
70
169
  - app/assets/javascripts/tbone_backbone_datalink.js.coffee
71
170
  - app/assets/javascripts/templates/.gitkeep
72
- - app/assets/javascripts/templates/common/alert_message.jst.hamljs
73
- - app/assets/javascripts/templates/common/confirm.jst.hamljs
74
- - app/assets/javascripts/templates/common/pager.jst.hamljs
171
+ - app/assets/javascripts/templates/common/alert_message.hamlc
172
+ - app/assets/javascripts/templates/common/confirm.hamlc
173
+ - app/assets/javascripts/templates/common/pager.hamlc
75
174
  - app/assets/javascripts/views/.gitkeep
76
175
  - app/assets/javascripts/views/common/alert_message_view.js.coffee
77
176
  - app/assets/javascripts/views/common/alert_view.js.coffee
@@ -130,7 +229,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
130
229
  version: '0'
131
230
  segments:
132
231
  - 0
133
- hash: -2019851828257661572
232
+ hash: 4460083678279688216
134
233
  required_rubygems_version: !ruby/object:Gem::Requirement
135
234
  none: false
136
235
  requirements:
@@ -1,32 +0,0 @@
1
- - var pages = [];
2
- - for(var i = 1; i <= pageInfo.pages; i++) {
3
- - var page = {}
4
- - page['url'] = urlPrefix + i
5
- - page['num'] = i
6
- - page['class'] = null
7
- - if(i == pageInfo.page) page['class'] = 'active'
8
- - pages.push(page)
9
- - }
10
- - function makeArrow(data, urlPrefix) {
11
- - var res = {}
12
- - if(data == false) {
13
- - res['class'] = 'disabled'
14
- - res['url'] = '#'
15
- - } else {
16
- - res['class'] = null
17
- - res['url'] = urlPrefix + data
18
- - }
19
- - return res
20
- - }
21
- - var prev = makeArrow(pageInfo.prev, urlPrefix)
22
- - var next = makeArrow(pageInfo.next, urlPrefix)
23
- :if pageInfo.pages > 1
24
- .pagination
25
- %ul
26
- %li{class: prev['class']}
27
- %a{href: prev['url']} «
28
- :each page in pages
29
- %li{class: page['class']}
30
- %a{href: page['url']}= page['num']
31
- %li{class: next['class']}
32
- %a{href: next['url']} »