tbone 0.1.9 → 0.2.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.
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']} »