pullentity-client 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MmU1NDNjZTAzNDBjMjY5NmNhODg1YTU4ZmRlYTQ4Yzg4NTJmYjZhMQ==
4
+ MDRmZGU0YmM2ZTIzMjU5NDFkODE5Y2E4ZjQ1YmU0MjBjYTIxNDg5OA==
5
5
  data.tar.gz: !binary |-
6
- NmJmYzViZjdiNTZkMzA2OTU5NTNmMDFiZDE4ZGE4MDg5ZDhmZDU5OQ==
6
+ ODExMGQ3YmFjYTIzNWMzYjBjZDFkY2Q1NTEyNTc1NDc1NzQzMDczNw==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- ZmVhN2JiMDJjMTVkN2M0ZjlkNzNjMjNkOGZlMmY5ZmE5OTBlM2IzYjRmMTMw
10
- NGJmZDY5ZTVhYjM0ZDk0MDA0ODE4ZDJkZmZhMGIzZTllM2I2ODc5ZmJjOWZm
11
- Y2ZhYzFiYjcyY2YzMzVjYzE1ZTg5YWRjYThjNjRmODM2OTg1NzE=
9
+ NTllZjBmMjliZTA3ZTM0MGJiZTBhOGRmYzNmNjM1MGVmNjQ4ODA5MDgzZmUw
10
+ NDI1ZDQ1NDBmMzE1NzRhMGNlZDczNzE2YzRlMDgwODI4YzY1NjljNDMzM2Ez
11
+ MjQ0NDExOWU5NzU2YTNkZDQ5NWMyMWM5Mzg1NjI5Mzc0OTEwZWU=
12
12
  data.tar.gz: !binary |-
13
- ZWNlY2M5YmFjY2U5ZGU1NWU4YWRhMjJiNzc2M2I1ZjkzN2NkZmM3OTIxYjc2
14
- YzZmODhiNDE4NWQ0N2YzYjg0NmJkMmI2NmU3ZWI0ZTMyNTI0YWY5MTU1NzY4
15
- OTlmMTc3YTM4YzA2MGQwNGMyNTU4YmY0YjUxMTU4OTU1MWE0ZDA=
13
+ OTJmMzRlNTEzM2NjOWJmNWNiMzUwOTI5NTBmYzRlMjk4ZmY0NjBkOTE5NGVi
14
+ ZjQ3ODFjMDA5NmFhZDRjOWU1NzljODk4MzE1OWE2N2QxOWUxMGNlMDIwNjFj
15
+ MDk4ZjIyOTZjNGRkOTFmODA0N2ZiOGZlNDExYmNhZTdmOGJkYTQ=
data/CHANGELOG.md CHANGED
@@ -1,4 +1,8 @@
1
1
  0.0.1
2
+ 2013/03/23
3
+ Add login interaction for api
4
+ add select sites
5
+ add export theme
2
6
  2013/03/18
3
7
  Add assets to build export json
4
8
  2013/03/17
data/README.md CHANGED
@@ -54,11 +54,11 @@ Export and install the theme for your site.
54
54
  4. Push to the branch (`git push origin my-new-feature`)
55
55
  5. Create new Pull Request
56
56
 
57
- # TODO
57
+ # TODO , path for 0.1.0
58
58
 
59
59
  1. upload assets.
60
60
  2. import data
61
- 3. setup task (login + select site)
62
- 4. make default task
63
- 5. load remote data
61
+ 3. OK setup task (login + select site)
62
+ 4. OK make default task
63
+ 5. OK load remote data
64
64
  6. use mustache server side
@@ -56,29 +56,17 @@ module Pullentity
56
56
  ::Pullentity::Client::Generate::Auth.start(['set_login', email])
57
57
  end
58
58
 
59
- map %(n) => 'sites'
60
- desc "list sites", "needs auth_token."
61
- long_desc "list sites, needs auth token , run pullentity login help"
62
- def sites
63
- ::Pullentity::Client::Generate::Auth.start(['list_sites'])
64
- end
65
-
66
- map %(ex) => 'export'
67
- desc "export", "exports a new Pullentity Client project."
68
- long_desc "builds & exports site to theme"
69
- def export
70
- ::Pullentity::Client::Generate::Exporter.start(['export'])
71
- end
72
-
73
- map %(n) => 'select'
74
- desc "select site", "needs auth_token."
59
+ #map %(n) => 'select'
60
+ desc "setup <email>", "setup login and set site and import data."
75
61
  long_desc "select site, needs auth token , run pullentity login help"
76
- def select_site
62
+ def setup(email)
63
+ ::Pullentity::Client::Generate::Auth.start(['set_login', email])
77
64
  ::Pullentity::Client::Generate::Auth.start(['select_site'])
65
+ ::Pullentity::Client::Generate::Theme.start(['import_data'])
78
66
  end
79
67
 
80
68
  register Pullentity::Client::Generate::Project, :project, "project", "project generator"
81
- #register Pullentity::Client::Generate::Exporter, :export, "export", "export theme"
69
+ register Pullentity::Client::Generate::Theme, :theme, "theme", "Theme Manager"
82
70
 
83
71
  end
84
72
  end
@@ -1,5 +1,5 @@
1
1
  require 'session'
2
- #require "debugger"
2
+
3
3
  module Pullentity
4
4
  module Client
5
5
  module Generate
@@ -71,13 +71,13 @@ module Pullentity
71
71
  File.open("#{location}/pullentity.yml", "w"){|f| YAML.dump(hsh, f)}
72
72
  end
73
73
 
74
- def site_api_call()
75
- check_for_yaml
76
- uri = URI.parse("#{domain}/api/v1/sites.json?auth_token=#{@token}")
74
+ def site_api_call(path)
75
+ #puts "#{domain}#{path}?auth_token=#{@token}"
76
+ uri = URI.parse("#{domain}#{path}?auth_token=#{@token}")
77
77
  http = Net::HTTP.new(uri.host, uri.port)
78
78
  request = Net::HTTP::Get.new(uri.request_uri)
79
- response = http.request(request)
80
- @json_body = JSON.parse(response.body)
79
+ @response = http.request(request)
80
+ @json_body = JSON.parse(@response.body)
81
81
  end
82
82
 
83
83
  def export_api_call()
@@ -96,8 +96,31 @@ module Pullentity
96
96
  say "#{@json_body[:status]} #{@json_body[:message]}", :green
97
97
  end
98
98
 
99
+ def get_site_activated_theme_data
100
+ check_for_yaml
101
+ site_api_call("/api/v1/sites/#{@site}.json")
102
+ end
103
+
104
+ def get_site_theme_data
105
+ check_for_yaml
106
+ site_api_call("/api/v1/sites/#{@site}/themes/#{@theme_name}.json")
107
+ end
108
+
109
+ def current_theme
110
+ check_for_yaml
111
+ site_api_call("/api/v1/sites/#{@site}")
112
+ say @json_body, :green
113
+ end
114
+
115
+ def make_default_for_site
116
+ check_for_yaml
117
+ site_api_call("/api/v1/sites/#{@site}/themes/#{@theme_name}/make_default.json")
118
+ say @json_body, :green
119
+ end
120
+
99
121
  def prompt_for_site_select
100
- site_api_call
122
+ check_for_yaml
123
+ site_api_call("/api/v1/sites.json")
101
124
  count = 0
102
125
  arr = {}
103
126
  @json_body.each do |site|
@@ -108,6 +131,15 @@ module Pullentity
108
131
  selector(arr)
109
132
  end
110
133
 
134
+ def get_data
135
+ check_for_yaml
136
+ site_api_call("/api/v1/sites/#{@site}/data")
137
+ File.open("#{location}/source/assets/javascripts/pullentity_data.json","w") do |f|
138
+ f.write(@json_body.to_json)
139
+ end
140
+ say "data file imported at source/assets/javascripts/pullentity_data.json", :green if File.exists?("#{location}/data.json")
141
+ end
142
+
111
143
  def selector(arr)
112
144
  answer = ask "select the site", :yellow
113
145
  if arr[answer.to_i]
@@ -121,7 +153,7 @@ module Pullentity
121
153
  end
122
154
 
123
155
  def get_sites
124
- site_api_call
156
+ site_api_call("/api/v1/sites.json")
125
157
  @json_body.each do |site|
126
158
  say "Site ID: ##{site["id"]}", :white
127
159
  say " Name: " + site["name"].to_s, :green
@@ -165,7 +197,21 @@ module Pullentity
165
197
  export_api_call
166
198
  end
167
199
 
200
+ desc "make default theme", ""
201
+ def make_default
202
+ say "set theme to default", :green
203
+ make_default_for_site
204
+ end
205
+
206
+ desc "show theme", ""
207
+ def show_theme
208
+ current_theme
209
+ end
168
210
 
211
+ desc "download theme", ""
212
+ def download_json_data
213
+ get_data
214
+ end
169
215
 
170
216
  end
171
217
  end
@@ -45,7 +45,7 @@ module Pullentity
45
45
 
46
46
  FileUtils.cp_r(templates("app/."), location.join("source/") )
47
47
 
48
- create_with_template('source/assets/javascripts/test-data.js', 'defaults/test-data.js', full_app_hash)
48
+ create_with_template('source/assets/javascripts/test-data.js.coffee', 'defaults/test-data.js', full_app_hash)
49
49
  create_with_template('source/layout.haml', 'defaults/layout.haml', full_app_hash)
50
50
 
51
51
  end
@@ -0,0 +1,55 @@
1
+ require 'session'
2
+
3
+ module Pullentity
4
+ module Client
5
+ module Generate
6
+ class Theme < Thor
7
+
8
+ include ::Pullentity::Client::Utils
9
+
10
+ #map %(n) => 'sites'
11
+ desc "sites", "list sites, needs auth_token."
12
+ long_desc "sites, needs auth token, run pullentity login help."
13
+ def sites
14
+ ::Pullentity::Client::Generate::Auth.start(['list_sites'])
15
+ end
16
+
17
+ #map %(x) => 'export'
18
+ desc "export", "exports a new Pullentity Client project."
19
+ long_desc "builds & exports site to theme."
20
+ def export
21
+ ::Pullentity::Client::Generate::Exporter.start(['export'])
22
+ end
23
+
24
+ #map %(n) => 'select'
25
+ desc "select_site", "needs auth_token."
26
+ long_desc "select_site, needs auth token , run pullentity login help."
27
+ def select_site
28
+ ::Pullentity::Client::Generate::Auth.start(['select_site'])
29
+ end
30
+
31
+ #map %(n) => 'select'
32
+ desc "make_defalt", "needs auth_token."
33
+ long_desc "make default site"
34
+ def make_default
35
+ ::Pullentity::Client::Generate::Exporter.start(['export'])
36
+ ::Pullentity::Client::Generate::Auth.start(['make_default'])
37
+ end
38
+
39
+ #map %(n) => 'select'
40
+ desc "make_defalt", "needs auth_token."
41
+ long_desc "make default site"
42
+ def current
43
+ ::Pullentity::Client::Generate::Auth.start(['show_theme'])
44
+ end
45
+
46
+ #map %(n) => 'select'
47
+ desc "import_data", "download site data"
48
+ def import_data
49
+ ::Pullentity::Client::Generate::Auth.start(['download_json_data'])
50
+ end
51
+
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1 @@
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:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"}};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);
@@ -1,15 +1,12 @@
1
1
 
2
-
3
2
  = content_for :principal do
4
3
 
5
4
  - theme_list = Dir.foreach(Dir.pwd + ("/source/views/themes") ).grep(/.haml/)
6
5
 
7
6
  - theme_list.each do |o|
8
- - theme_name = o.gsub(".haml", "")
9
- %div{ id: "#{theme_name}", style: "display:none"}
10
- = partial "views/themes/#{theme_name}"
11
-
12
- %div{ id: "list", style: "display:none"}
13
- = partial "views/list"
14
-
7
+ %script{ type: "template/text", id: "#{o.gsub(".haml", "")}", class: "pullentity-themes"}
8
+ %div{ id: "#{o.gsub(".haml", "")}", style: "display:none"}
9
+ = partial "views/themes/#{o.gsub(".haml", "")}"
15
10
 
11
+ %script{ type: "template/text", id: "list", class: "pullentity-themes"}
12
+ = partial "views/list"
@@ -3,7 +3,7 @@
3
3
  .container-fluid
4
4
  .page-header
5
5
  %h1
6
- %a.pjax{:href => "{{site_link}}"} Hello, welcom to {{site.name}}
6
+ %a.pjax{:href => "{{site_link}}"} Welcome to {{site.name}} site
7
7
  .row-fluid
8
8
  %ul#menu
9
9
  {{#sections}}
@@ -12,15 +12,9 @@
12
12
  %a.pjax{:href => "{{public_url}}"} {{title}}
13
13
  {{/show_in_menu}}
14
14
  {{/sections}}
15
- .row-fluid{"data-pjax-container" => ""}
15
+ #content.row-fluid{"data-pjax-container" => ""}
16
16
  / Don't remove this line
17
- #loadScripts
18
- %pre Content should...
19
- #yield-scripts
20
- = yield_content(:principal)
21
- {{{content}}}
22
-
23
-
17
+ {{{content}}}
24
18
 
25
19
  {{{loader}}}
26
20
 
@@ -2,7 +2,7 @@
2
2
  %h2 {{project.title}}
3
3
  {{{project.body}}}
4
4
  .span8
5
- #myCarousel.carousel.slide{:style => "float:left"}
5
+ .myCarousel.carousel.slide{:style => "float:left"}
6
6
  .carousel-inner
7
7
  {{#photos}}
8
8
 
@@ -14,8 +14,8 @@
14
14
 
15
15
  {{/photos}}
16
16
 
17
- %a.left.carousel-control{"data-slide" => "prev", :href => "#myCarousel"} ‹
17
+ %a.left.carousel-control{"data-slide" => "prev", :href => ".myCarousel"} ‹
18
18
 
19
- %a.right.carousel-control{"data-slide" => "next", :href => "#myCarousel"} ›
19
+ %a.right.carousel-control{"data-slide" => "next", :href => ".myCarousel"} ›
20
20
 
21
21
  {{{fb_comments}}}
@@ -10,4 +10,7 @@
10
10
 
11
11
  = partial("views/shared/body")
12
12
 
13
+ = yield_content(:principal)
14
+
15
+
13
16
 
@@ -1,87 +1,192 @@
1
- //= require "mustache"
2
-
3
- $(document).ready(function() {
4
-
5
- var template, html;
6
-
7
- window.data = {
8
- site_link: "/",
9
- site: {
10
- name: "<%= app_name %>",
11
- },
12
- sections: [
13
- { public_url: "#home", title: "photos", show_in_menu: true },
14
- { public_url: "#list", title: "books", show_in_menu: true },
15
- { public_url: "#theme1", title: "theme1", show_in_menu: true }
16
- ],
17
- project: {
18
- title: "My Awesome Project",
19
- body: "lorem bla bla"
20
- },
21
- photos: [
22
- { title: "my favorite things",
23
- caption: "donuts, pizza, computers",
24
- img_large: "http://farm7.staticflickr.com/6161/6187349656_4be054c2d8_z_d.jpg"
25
- },
26
- {
27
- title: "mexican",
28
- caption: "Mexican letters",
29
- img_large: "http://farm7.staticflickr.com/6155/6187348764_4565f30184_z_d.jpg"
30
- },
31
- {
32
- title: "Rome",
33
- caption: "When in Rome",
34
- img_large: "http://farm7.staticflickr.com/6158/6186830089_81d4fc3382_z_d.jpg"
35
- },
36
- {
37
- title: "Salvo",
38
- caption: "Salvo",
39
- img_large: "http://farm7.staticflickr.com/6065/6132525393_6a61e20cd9_z_d.jpg"
40
- }
41
-
42
- ],
43
- section: {
44
- title: "some section here"
45
- },
46
- projects: [
47
- {
48
- project_photo: "http://farm7.staticflickr.com/6161/6187349656_4be054c2d8_z_d.jpg",
49
- title: "project title",
50
- project_path: "#home"
51
- },
52
- {
53
- project_photo: "http://farm7.staticflickr.com/6161/6187349656_4be054c2d8_z_d.jpg",
54
- title: "project title 2",
55
- project_path: "#home"
56
- },
57
- {
58
- project_photo: "http://farm7.staticflickr.com/6161/6187349656_4be054c2d8_z_d.jpg",
59
- title: "project title 3",
60
- project_path: "#home"
61
- }
62
- ],
63
- public_url: "http://artenlinea.com",
64
- url : function () {
65
- return function (text, render) {
66
- text = render(text);
67
- var url = text.trim().toLowerCase().split('tuts+')[0] + '.tutsplus.com';
68
- return '<a href="' + url + '">' + text + '</a>';
69
- }
70
- }
71
- };
72
-
73
- // layout
74
- template = $("#layout").html();
75
- layout = Mustache.to_html(template, data);
76
- $("body").html(layout);
77
-
78
-
79
- $(window).on('hashchange', function(e) {
80
- theme = $("#yield-scripts " + window.location.hash + " ").html();
81
- console.log( theme );
82
- view = Mustache.to_html(theme, window.data);
83
- $("#loadScripts").html(view);
84
- });
85
-
86
-
87
- });
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 = "http://pullentity.com"
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
+ url: ->
20
+ (text, render) ->
21
+ text = render(text)
22
+ url = text.trim().toLowerCase().split("tuts+")[0] + ".tutsplus.com"
23
+ "<a href=\"" + url + "\">" + text + "</a>"
24
+
25
+ $.getJSON( "/assets/javascripts/pullentity_data.json", (json_data) ->
26
+ ).success((json_data)->
27
+ items = []
28
+ #debugger
29
+ window.data["site"] =
30
+ name: json_data.name
31
+ subdomain: json_data.subdomain
32
+
33
+ window.data["sections"] = []
34
+
35
+ $.each json_data.sections, (key, val) ->
36
+ window.data["sections"].push val
37
+
38
+ window.data["projects"] = []
39
+ $.each json_data.projects, (key, val) ->
40
+ window.data["projects"].push val
41
+
42
+ window.init_themes()
43
+ )
44
+ .error(->
45
+ html = "<div style='margin:20px'><h1>data file not found<h1>"
46
+ html += "<pre>please run 'pullentity setup' in console to setup autentication and import data</pre>"
47
+ html += "<pre>or 'pullentity theme import_data' in console, if you already have authenticated your theme</pre></div>"
48
+ $("body").html(html)
49
+ )
50
+
51
+ # layout initialization
52
+ window.init_themes = ()->
53
+
54
+ window.theme = ""
55
+
56
+ window.data["project"] = {}
57
+
58
+ template = $("#layout").html()
59
+
60
+ window.mustache_themes = $(".pullentity-themes")
61
+
62
+ window.list_theme = $(".pullentity-themes#list")
63
+
64
+ layout = Mustache.to_html(template, data)
65
+
66
+ $("body").html layout
67
+
68
+ simple_router(window.location.hash)
69
+
70
+ $(window).on "hashchange", (e) ->
71
+ simple_router(window.location.hash)
72
+
73
+ window.simple_router = (url)->
74
+ # find section by window.location, then find project and theme
75
+ url = window.location.hash
76
+ #console.log "changed to #{url}"
77
+ m = switch
78
+ when url == "" then render_home_project()
79
+ when /(\w)\/\d/.test(url) then find_project_by_id()
80
+ when /(\w)/.test(url) then find_in_section()
81
+ else
82
+ console.warn("not matching url")
83
+
84
+ window.render_theme = (theme_html)->
85
+ if theme_html?
86
+ view = Mustache.to_html(theme_html, window.data)
87
+ $("#content").html view
88
+ else
89
+ html = "<div style='margin:20px'><h1>Theme \"#{window.data.project.theme_template.name}\" not found!<h1>"
90
+ html += "<pre>Please create it in /source/views/themes/#{window.data.project.theme_template.name}.haml</pre></div>"
91
+ $("body").html(html)
92
+
93
+
94
+ # get home project and render it
95
+ window.render_home_project = ()->
96
+
97
+ window.data["project"] = _.find(window.data.projects, (p) ->
98
+ p.home
99
+ )
100
+
101
+ fill_projects(window.data["project"].photos)
102
+
103
+ find_theme_for_project()
104
+
105
+ render_theme($(window.theme[0]).html())
106
+
107
+ # points path for remote image resources
108
+ window.remote_path = (path)->
109
+ "#{window.base_image_path}/#{path}"
110
+
111
+
112
+ # builds the project photos hsh
113
+ window.fill_projects = (collection)->
114
+ window.data["photos"] = []
115
+ $.each collection, (key, val) ->
116
+ window.data["photos"].push
117
+ img_medium: remote_path( val.image.image.medium.url)
118
+ img_large: remote_path(val.image.image.large.url)
119
+ img_thumb: remote_path(val.image.image.thumb.url)
120
+ title: val.title
121
+ caption: val.caption
122
+
123
+
124
+ # display project or list
125
+ window.display_project_or_list = (_tis)->
126
+
127
+ if _tis.list_or_project == "project"
128
+
129
+ #console.log("trying theme #{window.data["project"].theme_template.name}")
130
+
131
+ find_theme_for_project()
132
+
133
+ fill_projects(window.data["project"].photos)
134
+
135
+ render_theme($(window.theme[0]).html())
136
+
137
+ else
138
+ #console.log "should be list!!"
139
+ data_projects = data_projects_for_list()
140
+ render_theme($(window.list_theme).html())
141
+
142
+ false
143
+
144
+
145
+ # finds the theme for project
146
+ window.find_theme_for_project = ()->
147
+ window.theme = $($(_.find($(window.mustache_themes), (num) ->
148
+ $(num).attr("id") == window.data["project"].theme_template.name
149
+ )).html())
150
+
151
+ # find data for project list
152
+ window.data_projects_for_list = ()->
153
+ section = _.find( window.data["sections"] , (num) ->
154
+ num.public_url == window.location.hash
155
+ )
156
+
157
+ a = _.filter(window.data["projects"], (num) ->
158
+ true if num.section.public_url is section.public_url
159
+ )
160
+ project_collection = _.map a, (p)->
161
+ p["project_photo"] = remote_path(p.photos[0].image.image.medium.url) unless p.photos.length == 0
162
+ p
163
+
164
+ {section: section, projects: project_collection }
165
+
166
+ # maps project for section
167
+ window.find_in_section = ()->
168
+
169
+ $.each window.data.sections, ()->
170
+
171
+ if this.public_url == window.location.hash
172
+ _tis = this
173
+ _tis.finds = false
174
+
175
+ window.data["project"] = _.find( window.data.projects , (p)->
176
+ p.section.public_url == _tis.public_url
177
+ )
178
+
179
+ if window.data["project"]?
180
+ display_project_or_list(_tis)
181
+ else
182
+ $("#content").html("<pre>Couldn´t find projects in #{_tis.public_url} yet</pre>")
183
+ console.warn "Couldn´t find projects in #{_tis.public_url} yet"
184
+
185
+ # find by id
186
+ window.find_project_by_id = ()->
187
+
188
+ window.data["project"] = _.where(window.data.projects, { project_path: window.location.hash })[0]
189
+
190
+ find_theme_for_project()
191
+ fill_projects(window.data["project"].photos)
192
+ render_theme($(window.theme[0]).html())
@@ -1,5 +1,5 @@
1
1
  module Pullentity
2
2
  module Client
3
- VERSION = "0.0.6"
3
+ VERSION = "0.0.7"
4
4
  end
5
5
  end
@@ -45,6 +45,7 @@ module Pullentity
45
45
  autoload :Model, "pullentity-client/generate/model.rb"
46
46
  autoload :Exporter, "pullentity-client/generate/exporter.rb"
47
47
  autoload :Auth, "pullentity-client/generate/auth.rb"
48
+ autoload :Theme, "pullentity-client/generate/theme.rb"
48
49
 
49
50
  end
50
51
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pullentity-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - miguel michelson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-03-26 00:00:00.000000000 Z
11
+ date: 2013-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: coffee-script
@@ -244,6 +244,7 @@ files:
244
244
  - lib/pullentity-client/generate/auth.rb
245
245
  - lib/pullentity-client/generate/exporter.rb
246
246
  - lib/pullentity-client/generate/project.rb
247
+ - lib/pullentity-client/generate/theme.rb
247
248
  - lib/pullentity-client/generate/view.rb
248
249
  - lib/pullentity-client/helpers.rb
249
250
  - lib/pullentity-client/logger.rb
@@ -258,6 +259,7 @@ files:
258
259
  - lib/pullentity-client/templates/app/assets/images/favicon.ico
259
260
  - lib/pullentity-client/templates/app/assets/javascripts/application.js.erb
260
261
  - lib/pullentity-client/templates/app/assets/javascripts/mustache.js
262
+ - lib/pullentity-client/templates/app/assets/javascripts/underscore-min.js
261
263
  - lib/pullentity-client/templates/app/assets/stylesheets/application.css.scss
262
264
  - lib/pullentity-client/templates/app/assets/stylesheets/customtheme.css.scss
263
265
  - lib/pullentity-client/templates/app/index.html.haml