pullentity-client 0.1.3 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/CHANGELOG.md +2 -0
- data/README.md +1 -1
- data/lib/pullentity-client/cli.rb +1 -1
- data/lib/pullentity-client/generate/auth.rb +32 -18
- data/lib/pullentity-client/generate/exporter.rb +14 -2
- data/lib/pullentity-client/generate/theme.rb +3 -3
- data/lib/pullentity-client/templates/app/assets/javascripts/application.js.erb +2 -1
- data/lib/pullentity-client/templates/app/assets/javascripts/config.js.erb +6 -0
- data/lib/pullentity-client/templates/app/assets/stylesheets/customtheme.css.scss +14 -8
- data/lib/pullentity-client/templates/app/index.html.haml +5 -3
- data/lib/pullentity-client/templates/app/views/list.haml +6 -6
- data/lib/pullentity-client/templates/app/views/shared/body.haml +5 -5
- data/lib/pullentity-client/templates/app/views/shared/head.haml +1 -9
- data/lib/pullentity-client/templates/app/views/shared/js.haml +0 -3
- data/lib/pullentity-client/templates/app/views/themes/home.haml +0 -1
- data/lib/pullentity-client/templates/app/views/themes/list-2.haml +13 -0
- data/lib/pullentity-client/templates/app/views/themes/theme1.haml +7 -8
- data/lib/pullentity-client/version.rb +1 -1
- data/spec/pullentity-client/generate/exporter_spec.rb +3 -3
- data/vendor/.DS_Store +0 -0
- data/vendor/assets/javascripts/{pullentity → backbone}/.DS_Store +0 -0
- data/vendor/assets/javascripts/backbone/backbone.js +1571 -0
- data/vendor/assets/javascripts/backbone/underscore.js +1227 -0
- data/vendor/assets/javascripts/bootstrap.js +1964 -0
- data/vendor/assets/javascripts/bootstrap.min.js +6 -0
- data/vendor/assets/javascripts/galleria/LICENSE +21 -0
- data/vendor/assets/javascripts/galleria/galleria-1.2.9.js +6121 -0
- data/vendor/assets/javascripts/galleria/galleria-1.2.9.min.js +9 -0
- data/vendor/assets/javascripts/galleria/plugins/flickr/flickr-demo.html +62 -0
- data/vendor/assets/javascripts/galleria/plugins/flickr/flickr-loader.gif +0 -0
- data/vendor/assets/javascripts/galleria/plugins/flickr/galleria.flickr.js +383 -0
- data/vendor/assets/javascripts/galleria/plugins/flickr/galleria.flickr.min.js +8 -0
- data/vendor/assets/javascripts/galleria/plugins/flickr/loader.gif +0 -0
- data/vendor/assets/javascripts/galleria/plugins/history/galleria.history.js +146 -0
- data/vendor/assets/javascripts/galleria/plugins/history/galleria.history.min.js +8 -0
- data/vendor/assets/javascripts/galleria/plugins/history/history-demo.html +100 -0
- data/vendor/assets/javascripts/galleria/plugins/picasa/galleria.picasa.js +320 -0
- data/vendor/assets/javascripts/galleria/plugins/picasa/galleria.picasa.min.js +8 -0
- data/vendor/assets/javascripts/galleria/plugins/picasa/loader.gif +0 -0
- data/vendor/assets/javascripts/galleria/plugins/picasa/picasa-demo.html +55 -0
- data/vendor/assets/javascripts/galleria/themes/classic/classic-demo.html +124 -0
- data/vendor/assets/javascripts/galleria/themes/classic/classic-loader.gif +0 -0
- data/vendor/assets/javascripts/galleria/themes/classic/classic-map.png +0 -0
- data/vendor/assets/javascripts/galleria/themes/classic/galleria.classic.css +220 -0
- data/vendor/assets/javascripts/galleria/themes/classic/galleria.classic.js +95 -0
- data/vendor/assets/javascripts/galleria/themes/classic/galleria.classic.min.js +8 -0
- data/vendor/assets/javascripts/handlebars.js +2278 -0
- data/vendor/assets/javascripts/jquery.infinite-scroll.min.js +1 -0
- data/vendor/assets/javascripts/jquery.isotope.min.js +11 -0
- data/vendor/assets/javascripts/jquery.loadimage.js +3 -0
- data/vendor/assets/javascripts/jquery.masonry.min.js +10 -0
- data/vendor/assets/javascripts/jquery.waitforimages.js +4 -0
- data/vendor/assets/javascripts/pullentity-backbone/.DS_Store +0 -0
- data/vendor/assets/javascripts/pullentity-backbone/app/helpers/app_helper.js.coffee +12 -0
- data/vendor/assets/javascripts/pullentity-backbone/app/models/project.js.coffee +11 -0
- data/vendor/assets/javascripts/pullentity-backbone/app/models/section.js.coffee +13 -0
- data/vendor/assets/javascripts/pullentity-backbone/app/models/site.js.coffee +7 -0
- data/vendor/assets/javascripts/pullentity-backbone/app/routers/router.coffee +7 -0
- data/vendor/assets/javascripts/pullentity-backbone/app/site.js.coffee +33 -0
- data/vendor/assets/javascripts/pullentity-backbone/app/views/main.js.coffee +123 -0
- data/vendor/assets/javascripts/pullentity-backbone/application.js.coffee +8 -0
- data/vendor/assets/javascripts/pullentity.js +3 -0
- data/vendor/assets/stylesheets/bootstrap.css +4677 -0
- data/vendor/assets/stylesheets/bootstrap.min.css +9 -0
- data/vendor/assets/stylesheets/galleria/LICENSE +21 -0
- data/vendor/assets/stylesheets/galleria/galleria-1.2.9.js +6121 -0
- data/vendor/assets/stylesheets/galleria/galleria-1.2.9.min.js +9 -0
- data/vendor/assets/stylesheets/galleria/plugins/flickr/flickr-demo.html +62 -0
- data/vendor/assets/stylesheets/galleria/plugins/flickr/flickr-loader.gif +0 -0
- data/vendor/assets/stylesheets/galleria/plugins/flickr/galleria.flickr.js +383 -0
- data/vendor/assets/stylesheets/galleria/plugins/flickr/galleria.flickr.min.js +8 -0
- data/vendor/assets/stylesheets/galleria/plugins/flickr/loader.gif +0 -0
- data/vendor/assets/stylesheets/galleria/plugins/history/galleria.history.js +146 -0
- data/vendor/assets/stylesheets/galleria/plugins/history/galleria.history.min.js +8 -0
- data/vendor/assets/stylesheets/galleria/plugins/history/history-demo.html +100 -0
- data/vendor/assets/stylesheets/galleria/plugins/picasa/galleria.picasa.js +320 -0
- data/vendor/assets/stylesheets/galleria/plugins/picasa/galleria.picasa.min.js +8 -0
- data/vendor/assets/stylesheets/galleria/plugins/picasa/loader.gif +0 -0
- data/vendor/assets/stylesheets/galleria/plugins/picasa/picasa-demo.html +55 -0
- data/vendor/assets/stylesheets/galleria/themes/classic/classic-demo.html +124 -0
- data/vendor/assets/stylesheets/galleria/themes/classic/classic-loader.gif +0 -0
- data/vendor/assets/stylesheets/galleria/themes/classic/classic-map-original.png +0 -0
- data/vendor/assets/stylesheets/galleria/themes/classic/galleria.classic.css +217 -0
- data/vendor/assets/stylesheets/galleria/themes/classic/galleria.classic.js +95 -0
- data/vendor/assets/stylesheets/galleria/themes/classic/galleria.classic.min.js +8 -0
- metadata +70 -8
- data/lib/pullentity-client/templates/defaults/test-data.js.erb +0 -193
- data/vendor/assets/javascripts/mustache.js +0 -535
- data/vendor/assets/javascripts/pullentity/development.js.coffee +0 -222
- data/vendor/assets/javascripts/pullentity.js.erb +0 -3
- data/vendor/assets/javascripts/underscore-min.js +0 -1
@@ -1,222 +0,0 @@
|
|
1
|
-
# Don't edit this file unless you know you are doing
|
2
|
-
# this file is for local testing only and will not be uploaded within theme to pullentity.com
|
3
|
-
#= require "underscore-min"
|
4
|
-
#= require "mustache"
|
5
|
-
|
6
|
-
$(document).ready ->
|
7
|
-
template = undefined
|
8
|
-
html = undefined
|
9
|
-
window.base_image_path = ""
|
10
|
-
window.theme = ""
|
11
|
-
window.list_theme = ""
|
12
|
-
window.mustache_themes = ""
|
13
|
-
window.data = {}
|
14
|
-
window.data =
|
15
|
-
site_link: "/"
|
16
|
-
public_url: "http://pullentity.com"
|
17
|
-
project: {}
|
18
|
-
photos: []
|
19
|
-
current_section: ""
|
20
|
-
url: ->
|
21
|
-
(text, render) ->
|
22
|
-
text = render(text)
|
23
|
-
url = text.trim().toLowerCase().split("tuts+")[0] + ".tutsplus.com"
|
24
|
-
"<a href=\"" + url + "\">" + text + "</a>"
|
25
|
-
|
26
|
-
$.getJSON( "/assets/javascripts/pullentity_data.json", (json_data) ->
|
27
|
-
).success((json_data)->
|
28
|
-
items = []
|
29
|
-
#debugger
|
30
|
-
window.data["site"] =
|
31
|
-
name: json_data.name
|
32
|
-
subdomain: json_data.subdomain
|
33
|
-
|
34
|
-
window.data["sections"] = []
|
35
|
-
|
36
|
-
$.each json_data.sections, (key, val) ->
|
37
|
-
window.data["sections"].push val
|
38
|
-
|
39
|
-
window.data["projects"] = []
|
40
|
-
$.each json_data.projects, (key, val) ->
|
41
|
-
window.data["projects"].push val
|
42
|
-
|
43
|
-
window.init_themes()
|
44
|
-
)
|
45
|
-
.error(->
|
46
|
-
html = "<div style='margin:20px'><h1>data file not found<h1>"
|
47
|
-
html += "<pre>please run 'pullentity setup' in console to setup autentication and import data</pre>"
|
48
|
-
html += "<pre>or 'pullentity theme import_data' in console, if you already have authenticated your theme</pre></div>"
|
49
|
-
$("body").html(html)
|
50
|
-
)
|
51
|
-
|
52
|
-
# layout initialization
|
53
|
-
window.init_themes = ()->
|
54
|
-
|
55
|
-
window.theme = ""
|
56
|
-
|
57
|
-
window.data["project"] = {}
|
58
|
-
|
59
|
-
template = $("#layout").html()
|
60
|
-
|
61
|
-
window.mustache_themes = $(".pullentity-themes")
|
62
|
-
|
63
|
-
window.list_theme = $(".pullentity-themes#list")
|
64
|
-
|
65
|
-
layout = Mustache.to_html(template, data)
|
66
|
-
|
67
|
-
$("body").html layout
|
68
|
-
|
69
|
-
simple_router(window.location.hash)
|
70
|
-
|
71
|
-
$(window).on "hashchange", (e) ->
|
72
|
-
simple_router(window.location.hash)
|
73
|
-
|
74
|
-
window.simple_router = (url)->
|
75
|
-
# find section by window.location, then find project and theme
|
76
|
-
url = window.location.hash
|
77
|
-
#console.log "changed to #{url}"
|
78
|
-
m = switch
|
79
|
-
when url == "" then render_home_project()
|
80
|
-
when /(\w)\/\d/.test(url) then find_project_by_id()
|
81
|
-
when /(\w)/.test(url) then find_in_section()
|
82
|
-
else
|
83
|
-
console.warn("not matching url")
|
84
|
-
|
85
|
-
window.render_theme = (theme_html, data_hsh = window.data)->
|
86
|
-
if theme_html?
|
87
|
-
view = Mustache.to_html(theme_html, data_hsh)
|
88
|
-
$("#content").html view
|
89
|
-
else
|
90
|
-
html = "<div style='margin:20px'><h1>Theme \"#{window.data.project.theme_template.name}\" not found!<h1>"
|
91
|
-
html += "<pre>Please create it in /source/views/themes/#{window.data.project.theme_template.name}.haml</pre></div>"
|
92
|
-
$("body").html(html)
|
93
|
-
|
94
|
-
window.render_list_theme = (theme_html, data_hsh = window.data)->
|
95
|
-
if theme_html?
|
96
|
-
view = Mustache.to_html(theme_html, data_hsh)
|
97
|
-
$("#content").html view
|
98
|
-
else
|
99
|
-
html = "<div style='margin:20px'><h1>Theme \"#{window.data.current_section.theme_template.name}\" not found!<h1>"
|
100
|
-
html += "<pre>Please create it in /source/views/themes/#{window.data.current_section.theme_template.name}.haml</pre></div>"
|
101
|
-
$("body").html(html)
|
102
|
-
|
103
|
-
|
104
|
-
# get home project and render it
|
105
|
-
window.render_home_project = ()->
|
106
|
-
|
107
|
-
window.data["project"] = _.find(window.data.projects, (p) ->
|
108
|
-
p.home
|
109
|
-
)
|
110
|
-
|
111
|
-
fill_projects(window.data["project"].photos)
|
112
|
-
|
113
|
-
find_theme_for_project()
|
114
|
-
|
115
|
-
render_theme($(window.theme[0]).html())
|
116
|
-
|
117
|
-
# points path for remote image resources
|
118
|
-
window.remote_path = (path)->
|
119
|
-
"#{path}"
|
120
|
-
|
121
|
-
|
122
|
-
# builds the project photos hsh
|
123
|
-
window.fill_projects = (collection)->
|
124
|
-
window.data["photos"] = []
|
125
|
-
$.each collection, (key, val) ->
|
126
|
-
window.data["photos"].push
|
127
|
-
img_medium: remote_path( val.image.image.medium.url)
|
128
|
-
img_large: remote_path(val.image.image.xlarge.url)
|
129
|
-
img_thumb: remote_path(val.image.image.thumb.url)
|
130
|
-
title: val.title
|
131
|
-
caption: val.caption
|
132
|
-
|
133
|
-
|
134
|
-
# display project or list
|
135
|
-
window.display_project_or_list = (_tis)->
|
136
|
-
|
137
|
-
if _tis.list_or_project == "project"
|
138
|
-
|
139
|
-
#console.log("trying theme #{window.data["project"].theme_template.name}")
|
140
|
-
|
141
|
-
find_theme_for_project()
|
142
|
-
|
143
|
-
fill_projects(window.data["project"].photos)
|
144
|
-
|
145
|
-
render_theme($(window.theme[0]).html())
|
146
|
-
|
147
|
-
else
|
148
|
-
#console.log "should be list!!"
|
149
|
-
data_projects = data_projects_for_list()
|
150
|
-
|
151
|
-
if data_projects.section.theme_template?
|
152
|
-
#debugger
|
153
|
-
#theme = data_projects.section.theme_template.name
|
154
|
-
find_theme_for_list()
|
155
|
-
render_list_theme($(window.theme[0]).html(), data_projects)
|
156
|
-
else
|
157
|
-
render_theme($(window.list_theme).html(), data_projects)
|
158
|
-
|
159
|
-
false
|
160
|
-
|
161
|
-
|
162
|
-
# finds the theme for project
|
163
|
-
window.find_theme_for_project = ()->
|
164
|
-
window.theme = $($(_.find($(window.mustache_themes), (num) ->
|
165
|
-
$(num).attr("id") == window.data["project"].theme_template.name
|
166
|
-
)).html())
|
167
|
-
|
168
|
-
# finds the theme for list
|
169
|
-
window.find_theme_for_list = ()->
|
170
|
-
window.theme = $($(_.find($(window.mustache_themes), (num) ->
|
171
|
-
$(num).attr("id") == window.data["current_section"].theme_template.name
|
172
|
-
)).html())
|
173
|
-
|
174
|
-
# find data for project list
|
175
|
-
window.data_projects_for_list = ()->
|
176
|
-
section = _.find( window.data["sections"] , (num) ->
|
177
|
-
num.public_url == window.location.hash
|
178
|
-
)
|
179
|
-
window.data.current_section = section
|
180
|
-
|
181
|
-
a = _.filter(window.data["projects"], (num) ->
|
182
|
-
true if num.section.public_url is section.public_url
|
183
|
-
)
|
184
|
-
|
185
|
-
project_collection = _.map a, (p)->
|
186
|
-
p["project_photo"] = remote_path(p.photos[0].image.image.medium.url) unless p.photos.length == 0
|
187
|
-
p["project_photo_large"] = remote_path(p.photos[0].image.image.large.url) unless p.photos.length == 0
|
188
|
-
p["project_photo_xlarge"] = remote_path(p.photos[0].image.image.xlarge.url) unless p.photos.length == 0
|
189
|
-
p["project_photo_medium_thumb"] = remote_path(p.photos[0].image.image.medium_thumb.url) unless p.photos.length == 0
|
190
|
-
p["project_photo_medium_thumb_exact"] = remote_path(p.photos[0].image.image.medium_thumb_exact.url) unless p.photos.length == 0
|
191
|
-
|
192
|
-
p
|
193
|
-
|
194
|
-
{section: section, projects: project_collection }
|
195
|
-
|
196
|
-
# maps project for section
|
197
|
-
window.find_in_section = ()->
|
198
|
-
|
199
|
-
$.each window.data.sections, ()->
|
200
|
-
|
201
|
-
if this.public_url == window.location.hash
|
202
|
-
_tis = this
|
203
|
-
_tis.finds = false
|
204
|
-
|
205
|
-
window.data["project"] = _.find( window.data.projects , (p)->
|
206
|
-
p.section.public_url == _tis.public_url
|
207
|
-
)
|
208
|
-
|
209
|
-
if window.data["project"]?
|
210
|
-
display_project_or_list(_tis)
|
211
|
-
else
|
212
|
-
$("#content").html("<pre>Couldn´t find projects in #{_tis.public_url} yet</pre>")
|
213
|
-
console.warn "Couldn´t find projects in #{_tis.public_url} yet"
|
214
|
-
|
215
|
-
# find by id
|
216
|
-
window.find_project_by_id = ()->
|
217
|
-
|
218
|
-
window.data["project"] = _.where(window.data.projects, { project_path: window.location.hash })[0]
|
219
|
-
|
220
|
-
find_theme_for_project()
|
221
|
-
fill_projects(window.data["project"].photos)
|
222
|
-
render_theme($(window.theme[0]).html())
|
@@ -1 +0,0 @@
|
|
1
|
-
(function(){var n=this,t=n._,r={},e=Array.prototype,u=Object.prototype,i=Function.prototype,a=e.push,o=e.slice,c=e.concat,l=u.toString,f=u.hasOwnProperty,s=e.forEach,p=e.map,h=e.reduce,v=e.reduceRight,d=e.filter,g=e.every,m=e.some,y=e.indexOf,b=e.lastIndexOf,x=Array.isArray,_=Object.keys,j=i.bind,w=function(n){return n instanceof w?n:this instanceof w?(this._wrapped=n,void 0):new w(n)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=w),exports._=w):n._=w,w.VERSION="1.4.4";var A=w.each=w.forEach=function(n,t,e){if(null!=n)if(s&&n.forEach===s)n.forEach(t,e);else if(n.length===+n.length){for(var u=0,i=n.length;i>u;u++)if(t.call(e,n[u],u,n)===r)return}else for(var a in n)if(w.has(n,a)&&t.call(e,n[a],a,n)===r)return};w.map=w.collect=function(n,t,r){var e=[];return null==n?e:p&&n.map===p?n.map(t,r):(A(n,function(n,u,i){e[e.length]=t.call(r,n,u,i)}),e)};var O="Reduce of empty array with no initial value";w.reduce=w.foldl=w.inject=function(n,t,r,e){var u=arguments.length>2;if(null==n&&(n=[]),h&&n.reduce===h)return e&&(t=w.bind(t,e)),u?n.reduce(t,r):n.reduce(t);if(A(n,function(n,i,a){u?r=t.call(e,r,n,i,a):(r=n,u=!0)}),!u)throw new TypeError(O);return r},w.reduceRight=w.foldr=function(n,t,r,e){var u=arguments.length>2;if(null==n&&(n=[]),v&&n.reduceRight===v)return e&&(t=w.bind(t,e)),u?n.reduceRight(t,r):n.reduceRight(t);var i=n.length;if(i!==+i){var a=w.keys(n);i=a.length}if(A(n,function(o,c,l){c=a?a[--i]:--i,u?r=t.call(e,r,n[c],c,l):(r=n[c],u=!0)}),!u)throw new TypeError(O);return r},w.find=w.detect=function(n,t,r){var e;return E(n,function(n,u,i){return t.call(r,n,u,i)?(e=n,!0):void 0}),e},w.filter=w.select=function(n,t,r){var e=[];return null==n?e:d&&n.filter===d?n.filter(t,r):(A(n,function(n,u,i){t.call(r,n,u,i)&&(e[e.length]=n)}),e)},w.reject=function(n,t,r){return w.filter(n,function(n,e,u){return!t.call(r,n,e,u)},r)},w.every=w.all=function(n,t,e){t||(t=w.identity);var u=!0;return null==n?u:g&&n.every===g?n.every(t,e):(A(n,function(n,i,a){return(u=u&&t.call(e,n,i,a))?void 0:r}),!!u)};var E=w.some=w.any=function(n,t,e){t||(t=w.identity);var u=!1;return null==n?u:m&&n.some===m?n.some(t,e):(A(n,function(n,i,a){return u||(u=t.call(e,n,i,a))?r:void 0}),!!u)};w.contains=w.include=function(n,t){return null==n?!1:y&&n.indexOf===y?n.indexOf(t)!=-1:E(n,function(n){return n===t})},w.invoke=function(n,t){var r=o.call(arguments,2),e=w.isFunction(t);return w.map(n,function(n){return(e?t:n[t]).apply(n,r)})},w.pluck=function(n,t){return w.map(n,function(n){return n[t]})},w.where=function(n,t,r){return w.isEmpty(t)?r?null:[]:w[r?"find":"filter"](n,function(n){for(var r in t)if(t[r]!==n[r])return!1;return!0})},w.findWhere=function(n,t){return w.where(n,t,!0)},w.max=function(n,t,r){if(!t&&w.isArray(n)&&n[0]===+n[0]&&65535>n.length)return Math.max.apply(Math,n);if(!t&&w.isEmpty(n))return-1/0;var e={computed:-1/0,value:-1/0};return A(n,function(n,u,i){var a=t?t.call(r,n,u,i):n;a>=e.computed&&(e={value:n,computed:a})}),e.value},w.min=function(n,t,r){if(!t&&w.isArray(n)&&n[0]===+n[0]&&65535>n.length)return Math.min.apply(Math,n);if(!t&&w.isEmpty(n))return 1/0;var e={computed:1/0,value:1/0};return A(n,function(n,u,i){var a=t?t.call(r,n,u,i):n;e.computed>a&&(e={value:n,computed:a})}),e.value},w.shuffle=function(n){var t,r=0,e=[];return A(n,function(n){t=w.random(r++),e[r-1]=e[t],e[t]=n}),e};var k=function(n){return w.isFunction(n)?n:function(t){return t[n]}};w.sortBy=function(n,t,r){var e=k(t);return w.pluck(w.map(n,function(n,t,u){return{value:n,index:t,criteria:e.call(r,n,t,u)}}).sort(function(n,t){var r=n.criteria,e=t.criteria;if(r!==e){if(r>e||r===void 0)return 1;if(e>r||e===void 0)return-1}return n.index<t.index?-1:1}),"value")};var F=function(n,t,r,e){var u={},i=k(t||w.identity);return A(n,function(t,a){var o=i.call(r,t,a,n);e(u,o,t)}),u};w.groupBy=function(n,t,r){return F(n,t,r,function(n,t,r){(w.has(n,t)?n[t]:n[t]=[]).push(r)})},w.countBy=function(n,t,r){return F(n,t,r,function(n,t){w.has(n,t)||(n[t]=0),n[t]++})},w.sortedIndex=function(n,t,r,e){r=null==r?w.identity:k(r);for(var u=r.call(e,t),i=0,a=n.length;a>i;){var o=i+a>>>1;u>r.call(e,n[o])?i=o+1:a=o}return i},w.toArray=function(n){return n?w.isArray(n)?o.call(n):n.length===+n.length?w.map(n,w.identity):w.values(n):[]},w.size=function(n){return null==n?0:n.length===+n.length?n.length:w.keys(n).length},w.first=w.head=w.take=function(n,t,r){return null==n?void 0:null==t||r?n[0]:o.call(n,0,t)},w.initial=function(n,t,r){return o.call(n,0,n.length-(null==t||r?1:t))},w.last=function(n,t,r){return null==n?void 0:null==t||r?n[n.length-1]:o.call(n,Math.max(n.length-t,0))},w.rest=w.tail=w.drop=function(n,t,r){return o.call(n,null==t||r?1:t)},w.compact=function(n){return w.filter(n,w.identity)};var R=function(n,t,r){return A(n,function(n){w.isArray(n)?t?a.apply(r,n):R(n,t,r):r.push(n)}),r};w.flatten=function(n,t){return R(n,t,[])},w.without=function(n){return w.difference(n,o.call(arguments,1))},w.uniq=w.unique=function(n,t,r,e){w.isFunction(t)&&(e=r,r=t,t=!1);var u=r?w.map(n,r,e):n,i=[],a=[];return A(u,function(r,e){(t?e&&a[a.length-1]===r:w.contains(a,r))||(a.push(r),i.push(n[e]))}),i},w.union=function(){return w.uniq(c.apply(e,arguments))},w.intersection=function(n){var t=o.call(arguments,1);return w.filter(w.uniq(n),function(n){return w.every(t,function(t){return w.indexOf(t,n)>=0})})},w.difference=function(n){var t=c.apply(e,o.call(arguments,1));return w.filter(n,function(n){return!w.contains(t,n)})},w.zip=function(){for(var n=o.call(arguments),t=w.max(w.pluck(n,"length")),r=Array(t),e=0;t>e;e++)r[e]=w.pluck(n,""+e);return r},w.object=function(n,t){if(null==n)return{};for(var r={},e=0,u=n.length;u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},w.indexOf=function(n,t,r){if(null==n)return-1;var e=0,u=n.length;if(r){if("number"!=typeof r)return e=w.sortedIndex(n,t),n[e]===t?e:-1;e=0>r?Math.max(0,u+r):r}if(y&&n.indexOf===y)return n.indexOf(t,r);for(;u>e;e++)if(n[e]===t)return e;return-1},w.lastIndexOf=function(n,t,r){if(null==n)return-1;var e=null!=r;if(b&&n.lastIndexOf===b)return e?n.lastIndexOf(t,r):n.lastIndexOf(t);for(var u=e?r:n.length;u--;)if(n[u]===t)return u;return-1},w.range=function(n,t,r){1>=arguments.length&&(t=n||0,n=0),r=arguments[2]||1;for(var e=Math.max(Math.ceil((t-n)/r),0),u=0,i=Array(e);e>u;)i[u++]=n,n+=r;return i},w.bind=function(n,t){if(n.bind===j&&j)return j.apply(n,o.call(arguments,1));var r=o.call(arguments,2);return function(){return n.apply(t,r.concat(o.call(arguments)))}},w.partial=function(n){var t=o.call(arguments,1);return function(){return n.apply(this,t.concat(o.call(arguments)))}},w.bindAll=function(n){var t=o.call(arguments,1);return 0===t.length&&(t=w.functions(n)),A(t,function(t){n[t]=w.bind(n[t],n)}),n},w.memoize=function(n,t){var r={};return t||(t=w.identity),function(){var e=t.apply(this,arguments);return w.has(r,e)?r[e]:r[e]=n.apply(this,arguments)}},w.delay=function(n,t){var r=o.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},w.defer=function(n){return w.delay.apply(w,[n,1].concat(o.call(arguments,1)))},w.throttle=function(n,t){var r,e,u,i,a=0,o=function(){a=new Date,u=null,i=n.apply(r,e)};return function(){var c=new Date,l=t-(c-a);return r=this,e=arguments,0>=l?(clearTimeout(u),u=null,a=c,i=n.apply(r,e)):u||(u=setTimeout(o,l)),i}},w.debounce=function(n,t,r){var e,u;return function(){var i=this,a=arguments,o=function(){e=null,r||(u=n.apply(i,a))},c=r&&!e;return clearTimeout(e),e=setTimeout(o,t),c&&(u=n.apply(i,a)),u}},w.once=function(n){var t,r=!1;return function(){return r?t:(r=!0,t=n.apply(this,arguments),n=null,t)}},w.wrap=function(n,t){return function(){var r=[n];return a.apply(r,arguments),t.apply(this,r)}},w.compose=function(){var n=arguments;return function(){for(var t=arguments,r=n.length-1;r>=0;r--)t=[n[r].apply(this,t)];return t[0]}},w.after=function(n,t){return 0>=n?t():function(){return 1>--n?t.apply(this,arguments):void 0}},w.keys=_||function(n){if(n!==Object(n))throw new TypeError("Invalid object");var t=[];for(var r in n)w.has(n,r)&&(t[t.length]=r);return t},w.values=function(n){var t=[];for(var r in n)w.has(n,r)&&t.push(n[r]);return t},w.pairs=function(n){var t=[];for(var r in n)w.has(n,r)&&t.push([r,n[r]]);return t},w.invert=function(n){var t={};for(var r in n)w.has(n,r)&&(t[n[r]]=r);return t},w.functions=w.methods=function(n){var t=[];for(var r in n)w.isFunction(n[r])&&t.push(r);return t.sort()},w.extend=function(n){return A(o.call(arguments,1),function(t){if(t)for(var r in t)n[r]=t[r]}),n},w.pick=function(n){var t={},r=c.apply(e,o.call(arguments,1));return A(r,function(r){r in n&&(t[r]=n[r])}),t},w.omit=function(n){var t={},r=c.apply(e,o.call(arguments,1));for(var u in n)w.contains(r,u)||(t[u]=n[u]);return t},w.defaults=function(n){return A(o.call(arguments,1),function(t){if(t)for(var r in t)null==n[r]&&(n[r]=t[r])}),n},w.clone=function(n){return w.isObject(n)?w.isArray(n)?n.slice():w.extend({},n):n},w.tap=function(n,t){return t(n),n};var I=function(n,t,r,e){if(n===t)return 0!==n||1/n==1/t;if(null==n||null==t)return n===t;n instanceof w&&(n=n._wrapped),t instanceof w&&(t=t._wrapped);var u=l.call(n);if(u!=l.call(t))return!1;switch(u){case"[object String]":return n==t+"";case"[object Number]":return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case"[object Date]":case"[object Boolean]":return+n==+t;case"[object RegExp]":return n.source==t.source&&n.global==t.global&&n.multiline==t.multiline&&n.ignoreCase==t.ignoreCase}if("object"!=typeof n||"object"!=typeof t)return!1;for(var i=r.length;i--;)if(r[i]==n)return e[i]==t;r.push(n),e.push(t);var a=0,o=!0;if("[object Array]"==u){if(a=n.length,o=a==t.length)for(;a--&&(o=I(n[a],t[a],r,e)););}else{var c=n.constructor,f=t.constructor;if(c!==f&&!(w.isFunction(c)&&c instanceof c&&w.isFunction(f)&&f instanceof f))return!1;for(var s in n)if(w.has(n,s)&&(a++,!(o=w.has(t,s)&&I(n[s],t[s],r,e))))break;if(o){for(s in t)if(w.has(t,s)&&!a--)break;o=!a}}return r.pop(),e.pop(),o};w.isEqual=function(n,t){return I(n,t,[],[])},w.isEmpty=function(n){if(null==n)return!0;if(w.isArray(n)||w.isString(n))return 0===n.length;for(var t in n)if(w.has(n,t))return!1;return!0},w.isElement=function(n){return!(!n||1!==n.nodeType)},w.isArray=x||function(n){return"[object Array]"==l.call(n)},w.isObject=function(n){return n===Object(n)},A(["Arguments","Function","String","Number","Date","RegExp"],function(n){w["is"+n]=function(t){return l.call(t)=="[object "+n+"]"}}),w.isArguments(arguments)||(w.isArguments=function(n){return!(!n||!w.has(n,"callee"))}),"function"!=typeof/./&&(w.isFunction=function(n){return"function"==typeof n}),w.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},w.isNaN=function(n){return w.isNumber(n)&&n!=+n},w.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"==l.call(n)},w.isNull=function(n){return null===n},w.isUndefined=function(n){return n===void 0},w.has=function(n,t){return f.call(n,t)},w.noConflict=function(){return n._=t,this},w.identity=function(n){return n},w.times=function(n,t,r){for(var e=Array(n),u=0;n>u;u++)e[u]=t.call(r,u);return e},w.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))};var M={escape:{"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"}};M.unescape=w.invert(M.escape);var S={escape:RegExp("["+w.keys(M.escape).join("")+"]","g"),unescape:RegExp("("+w.keys(M.unescape).join("|")+")","g")};w.each(["escape","unescape"],function(n){w[n]=function(t){return null==t?"":(""+t).replace(S[n],function(t){return M[n][t]})}}),w.result=function(n,t){if(null==n)return null;var r=n[t];return w.isFunction(r)?r.call(n):r},w.mixin=function(n){A(w.functions(n),function(t){var r=w[t]=n[t];w.prototype[t]=function(){var n=[this._wrapped];return a.apply(n,arguments),D.call(this,r.apply(w,n))}})};var N=0;w.uniqueId=function(n){var t=++N+"";return n?n+t:t},w.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var T=/(.)^/,q={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"},B=/\\|'|\r|\n|\t|\u2028|\u2029/g;w.template=function(n,t,r){var e;r=w.defaults({},r,w.templateSettings);var u=RegExp([(r.escape||T).source,(r.interpolate||T).source,(r.evaluate||T).source].join("|")+"|$","g"),i=0,a="__p+='";n.replace(u,function(t,r,e,u,o){return a+=n.slice(i,o).replace(B,function(n){return"\\"+q[n]}),r&&(a+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'"),e&&(a+="'+\n((__t=("+e+"))==null?'':__t)+\n'"),u&&(a+="';\n"+u+"\n__p+='"),i=o+t.length,t}),a+="';\n",r.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{e=Function(r.variable||"obj","_",a)}catch(o){throw o.source=a,o}if(t)return e(t,w);var c=function(n){return e.call(this,n,w)};return c.source="function("+(r.variable||"obj")+"){\n"+a+"}",c},w.chain=function(n){return w(n).chain()};var D=function(n){return this._chain?w(n).chain():n};w.mixin(w),A(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=e[n];w.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!=n&&"splice"!=n||0!==r.length||delete r[0],D.call(this,r)}}),A(["concat","join","slice"],function(n){var t=e[n];w.prototype[n]=function(){return D.call(this,t.apply(this._wrapped,arguments))}}),w.extend(w.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}})}).call(this);
|