cytoplasm 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. data/app/assets/images/cytoplasm/settings-dashboard.png +0 -0
  2. data/app/assets/images/cytoplasm/settings-settings-3.png +0 -0
  3. data/app/assets/images/cytoplasm/text-underline-color.png +0 -0
  4. data/app/assets/images/cytoplasm/transition.png +0 -0
  5. data/app/assets/javascripts/cytoplasm/cytoAjax.js.erb +31 -0
  6. data/app/assets/javascripts/cytoplasm/cytoTable.js.erb +17 -8
  7. data/app/assets/javascripts/cytoplasm/cytoplasm.js.erb +42 -38
  8. data/app/controllers/cytoplasm/settings_controller.rb +7 -0
  9. data/app/views/cytoplasm/settings/index.html.erb +56 -19
  10. data/app/views/cytoplasm/settings/precompile.html.erb +13 -0
  11. data/config/routes.rb +21 -13
  12. data/lib/cytoplasm.rb +21 -16
  13. data/lib/cytoplasm/version.rb +1 -1
  14. data/test/dummy/Gemfile.lock +2 -2
  15. data/test/dummy/log/development.log +44852 -0
  16. data/test/dummy/public/css/cytoplasm-styles.css +34 -0
  17. data/test/dummy/tmp/cache/assets/C9E/E40/sprockets%2Fe392208661e1ea61dd1a0394844aa810 +0 -0
  18. data/test/dummy/tmp/cache/assets/CB5/C10/sprockets%2Fb32690c2fc7483055b68f074912c7ae8 +0 -0
  19. data/test/dummy/tmp/cache/assets/CF3/120/sprockets%2Fe2b304b015ce82a222d634e7e544b0b3 +0 -0
  20. data/test/dummy/tmp/cache/assets/CF9/F80/sprockets%2F5e355e406bc2006a0f291b7c07d13bb8 +0 -0
  21. data/test/dummy/tmp/cache/assets/CFC/3B0/sprockets%2F745251d124911f1abe215c1b098ac8dd +0 -0
  22. data/test/dummy/tmp/cache/assets/D03/6B0/sprockets%2Fd3cfc780201b87a3439e35c5236bb71a +0 -0
  23. data/test/dummy/tmp/cache/assets/D06/7A0/sprockets%2Fa46b76e739460d2691f4121ffa8a0ca0 +0 -0
  24. data/test/dummy/tmp/cache/assets/D0A/230/sprockets%2F85ada73dac21b2d7ef7230f656393073 +0 -0
  25. data/test/dummy/tmp/cache/assets/D0E/4A0/sprockets%2F6b27287928ba630c1b25dfa80ee18b48 +0 -0
  26. data/test/dummy/tmp/cache/assets/D0E/7D0/sprockets%2F89200785fe2710582a6c1b8d04ae7fbe +0 -0
  27. data/test/dummy/tmp/cache/assets/D13/F70/sprockets%2Fbc94408277f1930765ca09f44b6f2abf +0 -0
  28. data/test/dummy/tmp/cache/assets/D14/170/sprockets%2F40a7b83bb067eea7ce2c8394e1529287 +0 -0
  29. data/test/dummy/tmp/cache/assets/D16/040/sprockets%2F714d179ac5ce93605980d5c56cf29aa3 +0 -0
  30. data/test/dummy/tmp/cache/assets/D21/A00/sprockets%2Ff9387309cc44d4c90c377ff9421bff26 +0 -0
  31. data/test/dummy/tmp/cache/assets/D26/1E0/sprockets%2Fe5dae19c52fa793785f7fa7c95326472 +0 -0
  32. data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  33. data/test/dummy/tmp/cache/assets/D83/C70/sprockets%2Ff536f7a68e692747fca1d2fcd5c07f57 +0 -0
  34. data/test/dummy/tmp/cache/assets/D87/C40/sprockets%2F9dcd7a6999affe28e91e514cee079016 +0 -0
  35. data/test/dummy/tmp/cache/assets/D93/690/sprockets%2F5cdf0adad3725045e651c97be81b2e3a +0 -0
  36. data/test/dummy/tmp/cache/assets/D9A/650/sprockets%2Fdcb422396f52c2fb755dad9b54a1b92d +0 -0
  37. data/test/dummy/tmp/cache/assets/DCC/980/sprockets%2Fd726e7bc1527db031cd5fa89cda0e98a +0 -0
  38. data/test/dummy/tmp/cache/assets/DD5/880/sprockets%2F48940ad0983c4dea6dfa0a19e99acec7 +0 -0
  39. data/test/dummy/tmp/cache/assets/DD7/B30/sprockets%2F985cd8fcea888bb6b9de7b4cd1c23103 +0 -0
  40. data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  41. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  42. data/test/dummy/tmp/cache/assets/E8C/480/sprockets%2Fdacb331ac961cf7b7cbc69abe8fb74dd +0 -0
  43. data/test/dummy/tmp/cache/assets/E8E/EF0/sprockets%2F24ff3ab0d28d6edc3fcfbf9ba643e6ec +0 -0
  44. metadata +41 -6
  45. data/test/dummy/public/cytoplasm/cytoplasm.vars.less +0 -54
@@ -51,6 +51,37 @@
51
51
  };
52
52
  $.CytoAjax = $.cytoAjax;
53
53
  $.Cytoplasm("ready",function(){
54
+
55
+ // Set styles
56
+ var vars = $.Cytoplasm("vars");
57
+ $.Cytoplasm("addStyles","cytoajax_styles",{
58
+ '.cytoResponseMessage':{
59
+ display:'none',
60
+ padding:"10px",
61
+ 'margin-bottom':"10px",
62
+ "border-radius":"5px",
63
+ font:vars.fonts.sizes.small+" "+vars.fonts.faces.light,
64
+ '&:first-line':{
65
+ font:vars.fonts.sizes.normal+" "+vars.fonts.faces.bold
66
+ },
67
+ '&[data-type=success]':{
68
+ "border-color":"green",
69
+ color:"green",
70
+ background:"linear-gradient(top, white, #a4ffa4)"
71
+ },
72
+ '&[data-type=loading]':{
73
+ "border-color":"yellow",
74
+ color:"#777700",
75
+ background:"linear-gradient(top, white, #000077)"
76
+ },
77
+ '&[data-type=error]':{
78
+ "border-color":"red",
79
+ color:"red",
80
+ background:"linear-gradient(top, white, rgb(255,170,170))"
81
+ }
82
+ }
83
+ });
84
+
54
85
  // Setup callback messages
55
86
  $.each(["success","sending","error"],function(i,type){
56
87
  var $this = $('.cytoResponseMessage[data-type="'+type+'"]');
@@ -39,14 +39,15 @@
39
39
  cursor:'pointer'
40
40
  },
41
41
  hover:{
42
-
42
+ backgroundOffset:"-=0.1",
43
+ css:{}
43
44
  },
44
45
  img:{
45
46
  css:{
46
47
  opacity:0.5
47
48
  },
48
49
  hover:{
49
- opacity:0.8
50
+ css:{opacity:0.8}
50
51
  }
51
52
  }
52
53
  },
@@ -113,14 +114,22 @@
113
114
  break;
114
115
  case "icon":
115
116
  var img = td.children("img").css(settings.widget.table.tr.td.types.icon.img.css);
116
- var originalBg = $.Color(td,"background-color");
117
- var darkenedBg = originalBg.lightness("-=100");
118
- //console.log(originalBg);
117
+
118
+ // Calculate darkened background color
119
+ var oBg, currentParent = td;
120
+ while (true) {
121
+ oBg = currentParent.css("background-color");
122
+ if (oBg!="transparent") break;
123
+ currentParent = currentParent.parent();
124
+ }
125
+ oBg = $.Color(oBg);
126
+ var dBg = oBg.lightness(settings.widget.table.tr.td.types.icon.hover.backgroundOffset);
127
+
119
128
  td.hover(function(e){
120
- td.css("background-color",darkenedBg).css(settings.widget.table.tr.td.types.icon.hover);
121
- img.css(settings.widget.table.tr.td.types.icon.img.hover);
129
+ td.css("background-color",dBg).css(settings.widget.table.tr.td.types.icon.hover.css);
130
+ img.css(settings.widget.table.tr.td.types.icon.img.hover.css);
122
131
  },function(e){
123
- td.css("background-color",originalBg).css(settings.widget.table.tr.td.types.icon.css);
132
+ td.css("background-color",oBg).css(settings.widget.table.tr.td.types.icon.css);
124
133
  img.css(settings.widget.table.tr.td.types.icon.img.css);
125
134
  });
126
135
  break;
@@ -31,6 +31,9 @@ var Cytoplasm;
31
31
  }
32
32
  ];
33
33
 
34
+ // Default styles
35
+ var static_styles = "body{margin:0;height:100%;overflow-y:scroll}h1,h2,h3,h4,h5,h6{margin:20px 0}header{overflow:hidden;h1{margin:0;white-space:nowrap;cursor:pointer;display:inline;text-shadow:0 0 10px rgba(0,0,0,0.5)}#logo{z-index:1000}}nav{ul{padding:0;list-style:none;li{display:inline-block}}}section{min-height:400px;background:white;overflow:hidden;box-shadow:0 0 10px rgba(0,0,0,0.8);clear:both;&>:first-child{margin-top:0;padding-top:0}&>:last-child{margin-bottom:0;padding-bottom:0}}footer{overflow:hidden}.cytoField{width:100%;border:1px solid #aaa;border-radius:5px;font-size:14px;box-shadow:inset 0 0 5px rgba(0,0,0,0.25);&[type=text],&[type=password],&[type=email]{height:28px;padding:0 7px}}textarea.cytoField{resize:none;height:200px;padding:7px}button,input[type=submit]{&.cytoButton{border-radius:5px;cursor:pointer;&.large{width:100%;height:50px}}}";
36
+
34
37
  // Gradient manipulation library
35
38
  var parseGradient = function(grad,reverse){
36
39
  // Return untouched if not gradient
@@ -140,22 +143,19 @@ var Cytoplasm;
140
143
  vars = data.vars;
141
144
  $(document).ready(function(){
142
145
  $('body').data('cytoplasm',settings);
143
- methods.setStyles.apply();
146
+ methods.initStyles.apply();
144
147
  ready = true;
145
148
  $.each(readyFunctions,function(i,f){f.apply();});
146
149
  });
147
150
  }
148
151
  });
149
152
  },
150
- setStyles:function(userstyles){
153
+ initStyles:function(userstyles){
151
154
  if (typeof userstyles != "object") userstyles = {};
152
- // Remove existing cytoplasm styles
153
- if ($('#cytoplasm_dynamic_styles').is("*")) $('#cytoplasm_dynamic_styles').remove();
154
155
 
155
156
  // Set variables
156
157
  var boldweight = (vars.fonts.faces.bold==vars.fonts.faces.regular)?"bold":"normal";
157
158
  var lightweight = (vars.fonts.faces.light==vars.fonts.faces.regular)?"lighter":"normal";
158
- var styletag = "body{margin:0;height:100%;overflow-y:scroll}h1,h2,h3,h4,h5,h6{margin:20px 0}header{overflow:hidden;h1{margin:0;white-space:nowrap;cursor:pointer;display:inline;text-shadow:0 0 10px rgba(0,0,0,0.5)}#logo{z-index:1000}}nav{ul{padding:0;list-style:none;li{display:inline-block}}}section{min-height:400px;background:white;overflow:hidden;box-shadow:0 0 10px rgba(0,0,0,0.8);clear:both;&>:first-child{margin-top:0;padding-top:0}&>:last-child{margin-bottom:0;padding-bottom:0}}footer{overflow:hidden}.cytoField{width:100%;border:1px solid #aaa;border-radius:5px;font-size:14px;box-shadow:inset 0 0 5px rgba(0,0,0,0.25);&[type=text],&[type=password],&[type=email]{height:28px;padding:0 7px}}textarea.cytoField{resize:none;height:200px;padding:7px}button,input[type=submit]{&.cytoButton{border-radius:5px;cursor:pointer;&.large{width:100%;height:50px}}}";
159
159
  var styles = $.extend(true,{},{
160
160
  body:{
161
161
  background:vars.colors.global.background,
@@ -251,31 +251,6 @@ var Cytoplasm;
251
251
  background:"linear-gradient(to right,#ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%)",
252
252
  "box-shadow":"inset 0px 0px 5px hsla(0,0%,0%,0.5)"
253
253
  }
254
- },
255
- '.cytoResponseMessage':{
256
- display:'none',
257
- padding:"10px",
258
- 'margin-bottom':"10px",
259
- "border-radius":"5px",
260
- font:vars.fonts.sizes.small+" "+vars.fonts.faces.light,
261
- '&:first-line':{
262
- font:vars.fonts.sizes.normal+" "+vars.fonts.faces.bold
263
- },
264
- '&[data-type=success]':{
265
- "border-color":"green",
266
- color:"green",
267
- background:"linear-gradient(top, white, #a4ffa4)"
268
- },
269
- '&[data-type=loading]':{
270
- "border-color":"yellow",
271
- color:"#777700",
272
- background:"linear-gradient(top, white, #000077)"
273
- },
274
- '&[data-type=error]':{
275
- "border-color":"red",
276
- color:"red",
277
- background:"linear-gradient(top, white, rgb(255,170,170))"
278
- }
279
254
  }
280
255
  },userstyles);
281
256
 
@@ -298,9 +273,44 @@ var Cytoplasm;
298
273
  else styles.header["#logo"][vars.layout.header.logo.align] = vars.layout.header.logo.x+10;
299
274
 
300
275
  // Compile the styles for HTML and add to <head>
301
- $.each(styles,function(e,s){styletag += compileStyles(e,s);});
276
+ methods.addStyles.apply(this,["cytoplasm_static_styles",static_styles]);
277
+ methods.addStyles.apply(this,["cytoplasm_dynamic_styles",styles]);
278
+ },
279
+ addStyles:function(id,styles){
280
+ if (typeof id != "string") return console.warn("$.Cytoplasm's addStyles method requires an id string as the first parameter!");
281
+
282
+ // Compile the styles for HTML and add to <head>
283
+ var styletag = "";
284
+ switch (typeof styles) {
285
+ case "object":
286
+ $.each(styles,function(e,s){styletag += compileStyles(e,s);});
287
+ break;
288
+ case "string":
289
+ styletag += styles;
290
+ break;
291
+ default:
292
+ return console.warn("$.Cytoplasm's addStyles method requires either an object containing JSON-formatted LESS CSS or a string containing LESS CSS as its second parameter!");
293
+ }
294
+
295
+ // Set styles
296
+ methods.removeStyles.apply(this,[id]);
302
297
  var parser = new(less.Parser)({});
303
- parser.parse(styletag,function(e,tree){$("<style type='text/css' rel='stylesheet' media='screen' id='cytoplasm_dynamic_styles'>"+tree.toCSS({compress:true})+"</style>").appendTo("head");});
298
+ parser.parse(styletag,function(e,tree){$("<style type='text/css' rel='stylesheet' media='screen' id='"+id+"' class='cytoplasm-dynamic-stylesheet'>"+tree.toCSS({compress:true})+"</style>").appendTo("head");});
299
+ },
300
+ removeStyles:function(id){
301
+ if (typeof id != "string") return console.warn("$.Cytoplasm's addStyles method requires an id string as the first parameter!");
302
+ if ($('style#'+id).is("*")) $('style#'+id).remove();
303
+ },
304
+ resetStyles:function(){
305
+ $('style.cytoplasm-dynamic-stylesheet').remove();
306
+ methods.initStyles.apply(this);
307
+ },
308
+ saveStyles:function(){
309
+ var styletag = "";
310
+ $('.cytoplasm-dynamic-stylesheet').each(function(){styletag += $(this).text();});
311
+ $.post("/cytoplasm/precompile",{styles:styletag},function(data){
312
+ $.cytoAjaxResponse("Styles saved successfully!");
313
+ });
304
314
  },
305
315
  vars:function(which,value){
306
316
  var returnvar;
@@ -324,12 +334,6 @@ var Cytoplasm;
324
334
  exp += " = "+value.toString();
325
335
  return eval(exp);
326
336
  }
327
- },
328
- style:function(){
329
-
330
- },
331
- refresh:function(){
332
-
333
337
  },
334
338
  destroy:function(){
335
339
  $('body').data('cytoplasm',null);
@@ -27,6 +27,13 @@ module Cytoplasm
27
27
  redirect_to cytoplasm_settings_url
28
28
  end
29
29
 
30
+ def precompile
31
+ if request.post?
32
+ Cytoplasm.precompile_styles(params[:styles])
33
+ render :text => Cytoplasm::Ajax.success()
34
+ end
35
+ end
36
+
30
37
  def fetch_vars
31
38
  Cytoplasm.load_vars_from("config/cytoplasm-config.yml")
32
39
  return Cytoplasm.vars()
@@ -1,28 +1,65 @@
1
1
  <h2 style="margin:0px;">Cytoplasm Backstage</h2>
2
2
  <hr />
3
3
 
4
- <h3><%=link_to("Settings",cytoplasm_general_settings_url)%></h3>
5
- <ul>
6
- <li><%=link_to("Layout Settings",cytoplasm_layout_settings_url)%></li>
7
- <li><%=link_to("Colors Settings",cytoplasm_colors_settings_url)%></li>
8
- <li><%=link_to("Advanced Configuration Tool",cytoplasm_advanced_config_url)%></li>
9
- </ul>
10
-
11
- <h3><%=link_to("Fonts",cytoplasm_fonts_url)%></h3>
12
- <ul>
13
- <li><%=link_to("Install New Fonts","#")%></li>
14
- <li><%=link_to("Manage Installed Fonts",cytoplasm_fonts_url)%></li>
15
- <li><%=link_to("Layout Font Settings","#")%></li>
16
- </ul>
17
-
18
- <h3><%=link_to("Transitions","#")%></h3>
19
- <ul>
20
- <li><%=link_to("Layout Transition Settings","#")%></li>
21
- <li><%=link_to("Create a Transition","#")%></li>
4
+ <ul class="tile_list">
5
+ <li>
6
+ <%=image_tag("cytoplasm/settings-settings-3.png",:width => 256)%>
7
+ <h3><%=link_to("Settings",cytoplasm_general_settings_url)%></h3>
8
+ <ul>
9
+ <li><%=link_to("Layout Settings",cytoplasm_layout_settings_url)%></li>
10
+ <li><%=link_to("Colors Settings",cytoplasm_colors_settings_url)%></li>
11
+ <li><%=link_to("Advanced Configuration Tool",cytoplasm_advanced_config_url)%></li>
12
+ </ul>
13
+ </li>
14
+
15
+ <li>
16
+ <%=image_tag("cytoplasm/text-underline-color.png",:width => 256)%>
17
+ <h3><%=link_to("Fonts",cytoplasm_fonts_url)%></h3>
18
+ <ul>
19
+ <li><%=link_to("Install New Fonts","#")%></li>
20
+ <li><%=link_to("Manage Installed Fonts",cytoplasm_fonts_url)%></li>
21
+ <li><%=link_to("Layout Font Settings","#")%></li>
22
+ </ul>
23
+ </li>
24
+
25
+ <li>
26
+ <%=image_tag("cytoplasm/transition.png",:width => 256)%>
27
+ <h3><%=link_to("Transitions","#")%></h3>
28
+ <ul>
29
+ <li><%=link_to("Layout Transition Settings","#")%></li>
30
+ <li><%=link_to("Create a Transition","#")%></li>
31
+ </ul>
32
+ </li>
33
+
34
+ <li>
35
+ <%=image_tag("cytoplasm/settings-dashboard.png",:width => 256)%>
36
+ <h3><%=link_to("Performance","#")%></h3>
37
+ <ul>
38
+ <li><%=link_to("Precompile CSS",cytoplasm_precompile_url)%></li>
39
+ </ul>
40
+ </li>
22
41
  </ul>
23
42
 
24
43
  <script type="text/javascript">
44
+ (function($){
25
45
  $.Cytoplasm("ready",function(){
26
-
46
+ $('.tile_list').css({
47
+ 'list-style':'none',
48
+ margin:0,
49
+ padding:"25px 0px"
50
+ }).children('li').css({
51
+ float:'left',
52
+ width:'25%',
53
+ 'text-align':'center'
54
+ }).children('img').click(function(e){
55
+ window.location = $(this).siblings("h3").find("a").attr("href");
56
+ }).end().children('ul').css({
57
+ 'list-style':'none',
58
+ padding:0,
59
+ margin:0
60
+ }).children('li').css({
61
+
62
+ });
27
63
  });
64
+ })(jQuery);
28
65
  </script>
@@ -0,0 +1,13 @@
1
+ <h2>Precompile Cytoplasm's Dynamic CSS</h2>
2
+ <p>This will save your current dynamic CSS settings to a minified CSS file at public/css/cytoplasm-styles.css. Use this once you're satisfied with the layout you've created to eliminate preprocessing and speed up loading times.</p>
3
+ <button id="go_button" class="cytoButton large">Precompile Dynamic CSS!</button>
4
+
5
+ <script type="text/javascript">
6
+ (function($){
7
+ $.Cytoplasm("ready",function(){
8
+ $('#go_button').click(function(e){
9
+ $.Cytoplasm("saveStyles");
10
+ });
11
+ });
12
+ })(jQuery);
13
+ </script>
data/config/routes.rb CHANGED
@@ -1,21 +1,29 @@
1
1
  Rails.application.routes.draw do
2
+ # Development environment only
3
+ if Rails.env.development?
4
+ # Settings
5
+ get "/cytoplasm" => "Cytoplasm/settings#index", :as => :cytoplasm_settings
6
+ get "/cytoplasm/general" => "Cytoplasm/settings#general", :as => :cytoplasm_general_settings
7
+ get "/cytoplasm/layout" => "Cytoplasm/settings#layout", :as => :cytoplasm_layout_settings
8
+ get "/cytoplasm/colors" => "Cytoplasm/settings#colors", :as => :cytoplasm_colors_settings
9
+ get "/cytoplasm/advanced" => "Cytoplasm/settings#advanced", :as => :cytoplasm_advanced_config
10
+ post "/cytoplasm/update" => "Cytoplasm/settings#update", :as => :cytoplasm_update
11
+
12
+ # Fonts
13
+ get "/cytoplasm/fonts" => "Cytoplasm/fonts#index", :controller => Cytoplasm::FontsController, :action => :index, :as => :cytoplasm_fonts
14
+ get "/cytoplasm/fonts/:directory/:family" => "Cytoplasm/fonts#show", :controller => Cytoplasm::FontsController, :action => :show, :as => :cytoplasm_show_font
15
+ post "/cytoplasm/fonts/import" => "Cytoplasm/fonts#import"
16
+ post "/cytoplasm/fonts/remove" => "Cytoplasm/fonts#remove"
17
+ post "/cytoplasm/fonts/enable" => "Cytoplasm/fonts#enable"
18
+ post "/cytoplasm/fonts/disable" => "Cytoplasm/fonts#disable"
19
+ end
2
20
 
21
+ # All environments
3
22
  # Settings
4
- get "/cytoplasm" => "Cytoplasm/settings#index", :as => :cytoplasm_settings
5
- get "/cytoplasm/general" => "Cytoplasm/settings#general", :as => :cytoplasm_general_settings
6
- get "/cytoplasm/layout" => "Cytoplasm/settings#layout", :as => :cytoplasm_layout_settings
7
- get "/cytoplasm/colors" => "Cytoplasm/settings#colors", :as => :cytoplasm_colors_settings
8
- get "/cytoplasm/advanced" => "Cytoplasm/settings#advanced", :as => :cytoplasm_advanced_config
23
+ get "/cytoplasm/precompile" => "Cytoplasm/settings#precompile", :as => :cytoplasm_precompile
24
+ post "/cytoplasm/precompile" => "Cytoplasm/settings#precompile"
9
25
  post "/cytoplasm/settings/fetch" => "Cytoplasm/settings#fetch"
10
- post "/cytoplasm/update" => "Cytoplasm/settings#update", :as => :cytoplasm_update
11
26
 
12
27
  # Fonts
13
- get "/cytoplasm/fonts" => "Cytoplasm/fonts#index", :controller => Cytoplasm::FontsController, :action => :index, :as => :cytoplasm_fonts
14
- get "/cytoplasm/fonts/:directory/:family" => "Cytoplasm/fonts#show", :controller => Cytoplasm::FontsController, :action => :show, :as => :cytoplasm_show_font
15
28
  post "/cytoplasm/fonts/fetch_all" => "Cytoplasm/fonts#fetch_all"
16
- post "/cytoplasm/fonts/import" => "Cytoplasm/fonts#import"
17
- post "/cytoplasm/fonts/remove" => "Cytoplasm/fonts#remove"
18
- post "/cytoplasm/fonts/enable" => "Cytoplasm/fonts#enable"
19
- post "/cytoplasm/fonts/disable" => "Cytoplasm/fonts#disable"
20
-
21
29
  end
data/lib/cytoplasm.rb CHANGED
@@ -175,7 +175,6 @@ module Cytoplasm
175
175
  puts "YAML configuration file contains invalid syntax. Using defaults."; return
176
176
  end
177
177
  load_vars(vars)
178
- compile_css()
179
178
  end
180
179
 
181
180
  def self.save_config(opts={})
@@ -184,6 +183,27 @@ module Cytoplasm
184
183
  File.open("config/cytoplasm-config.yml", 'w+') {|f| f.write(@vars.to_yaml) }
185
184
  end
186
185
 
186
+ def self.precompile_styles(styles)
187
+ puts "PRECOMPILING CSS TO FILE"
188
+ File.open(create_path_unless_exists("public/css")+"/cytoplasm-styles.css", 'w+') {|f| f.write(styles)} if styles.is_a? String and styles!=""
189
+ end
190
+
191
+ def self.create_path_unless_exists(path)
192
+ unless File.exists?(path)
193
+ count = 0
194
+ path.split("/").each do |dir|
195
+ Dir.mkdir(dir) unless File.exists?(dir)
196
+ Dir.chdir(dir)
197
+ count += 1
198
+ end
199
+ while count > 0 do
200
+ Dir.chdir("../")
201
+ count -= 1
202
+ end
203
+ end
204
+ return path
205
+ end
206
+
187
207
  # Getters and setters
188
208
  def self.traverse_hash(hash,which=nil,value=nil)
189
209
  return hash if which.nil?
@@ -246,21 +266,6 @@ module Cytoplasm
246
266
  def self.js()
247
267
  return dependencies("js")
248
268
  end
249
- def self.compile_css()
250
- varfile = ::Rails.root+"public/cytoplasm/cytoplasm.vars.less"
251
- # Check for varfile, create one if it doesn't exist
252
- unless File.exists?("public/cytoplasm")
253
- Dir.chdir("public")
254
- Dir.mkdir("cytoplasm")
255
- Dir.chdir("../")
256
- end
257
-
258
- File.open(varfile,"wb") do |f|
259
- css = ""
260
- @vars.each {|k,v| css += hash_to_css(k,v)}
261
- f.write(css)
262
- end
263
- end
264
269
 
265
270
  def self.hash_to_css(k,v,parent="")
266
271
  output = ""
@@ -1,3 +1,3 @@
1
1
  module Cytoplasm
2
- VERSION = "0.3.1"
2
+ VERSION = "0.3.3"
3
3
  end
@@ -37,7 +37,7 @@ GEM
37
37
  coffee-script-source
38
38
  execjs
39
39
  coffee-script-source (1.4.0)
40
- cytoplasm (0.3.0)
40
+ cytoplasm (0.3.2)
41
41
  jquery-rails
42
42
  jquery-ui-rails
43
43
  rails (~> 3.2.9)
@@ -59,7 +59,7 @@ GEM
59
59
  i18n (>= 0.4.0)
60
60
  mime-types (~> 1.16)
61
61
  treetop (~> 1.4.8)
62
- mime-types (1.20.1)
62
+ mime-types (1.21)
63
63
  multi_json (1.5.0)
64
64
  polyglot (0.3.3)
65
65
  rack (1.4.5)