caboodle 0.2.13 → 0.2.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. data/Rakefile +1 -0
  2. data/VERSION +1 -1
  3. data/lib/caboodle/app.rb +0 -1
  4. data/lib/caboodle/app/views/layout.haml +1 -1
  5. data/lib/caboodle/kit.rb +38 -10
  6. data/lib/caboodle/kits/about/about.rb +17 -0
  7. data/lib/caboodle/kits/about/config/about.md +1 -0
  8. data/lib/caboodle/kits/analytics/analytics.rb +16 -15
  9. data/lib/caboodle/kits/beta/beta.rb +3 -0
  10. data/lib/caboodle/kits/carbonmade/carbonmade.rb +2 -1
  11. data/lib/caboodle/kits/debugger/debugger.rb +0 -2
  12. data/lib/caboodle/kits/disqus/disqus.rb +3 -1
  13. data/lib/caboodle/kits/flickr/flickr.rb +2 -0
  14. data/lib/caboodle/kits/github/github.rb +4 -4
  15. data/lib/caboodle/kits/googlelocal/config/googlelocal.yml +10 -7
  16. data/lib/caboodle/kits/googlelocal/googlelocal.rb +24 -2
  17. data/lib/caboodle/kits/googlelocal/views/googlelocal.haml +37 -30
  18. data/lib/caboodle/kits/googlelocal/views/googlelocal.scss +8 -0
  19. data/lib/caboodle/kits/gravatar/gravatar.rb +3 -0
  20. data/lib/caboodle/kits/history/history.rb +2 -10
  21. data/lib/caboodle/kits/history/views/history.haml +2 -2
  22. data/lib/caboodle/kits/jquery/jquery.rb +1 -0
  23. data/lib/caboodle/kits/lazyload/lazyload.rb +1 -0
  24. data/lib/caboodle/kits/linkedin/linkedin.rb +2 -0
  25. data/lib/caboodle/kits/onepage/onepage.rb +2 -0
  26. data/lib/caboodle/kits/posterous/posterous.rb +5 -3
  27. data/lib/caboodle/kits/seo/seo.rb +1 -0
  28. data/lib/caboodle/kits/soundcloud/soundcloud.rb +1 -0
  29. data/lib/caboodle/kits/standard/standard.rb +1 -0
  30. data/lib/caboodle/kits/susy/susy.rb +1 -1
  31. data/lib/caboodle/kits/susy/views/susy/screen.scss +5 -3
  32. data/lib/caboodle/kits/tumblr/tumblr.rb +2 -1
  33. data/lib/caboodle/kits/twitter/twitter.rb +1 -1
  34. data/lib/caboodle/kits/typekit/typekit.rb +1 -0
  35. metadata +20 -4
data/Rakefile CHANGED
@@ -22,6 +22,7 @@ begin
22
22
  gem.add_dependency "sleepy",">=0.1.4"
23
23
  gem.add_dependency "tumblr-rb"
24
24
  gem.add_dependency "rack-geo"
25
+ gem.add_dependency "maruku"
25
26
  end
26
27
  Jeweler::GemcutterTasks.new
27
28
  rescue LoadError
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.13
1
+ 0.2.14
@@ -1,6 +1,5 @@
1
1
  module Caboodle
2
2
  class App < Sinatra::Base
3
-
4
3
  set :app_file, __FILE__
5
4
  set :logging, true
6
5
  set :root, File.expand_path(".")
@@ -63,7 +63,7 @@
63
63
  - link_class << " active" if p[:kit] == self.class
64
64
  %li
65
65
  = above_nav_item
66
- %a{:href=>p[:link], :class=>link_class}
66
+ %a{:href=>p[:link], :class=>link_class, :rel=>"me"}
67
67
  = above_nav_item_title
68
68
  = p[:display]
69
69
  = below_nav_item_title
@@ -19,6 +19,12 @@ module Caboodle
19
19
  response.headers['Cache-Control'] = "public, max-age=#{Caboodle::Site.cache_for}"
20
20
  end
21
21
 
22
+ error SocketError do
23
+ @title = "Whoops!"
24
+ @message = "Sorry. There was a problem communicating with #{self.class.kit_name}."
25
+ haml File.open(File.join(Caboodle::Kit.root, "views","error.haml")).read
26
+ end
27
+
22
28
  Config = Hashie::Mash.new
23
29
 
24
30
  class << self
@@ -26,7 +32,7 @@ module Caboodle
26
32
  attr_accessor :credit_link
27
33
 
28
34
  def configure_site config_path
29
- set :config, config_path
35
+ set :config_path, config_path
30
36
  if File.exists?(config_path)
31
37
  Caboodle::Kit.load_config(config_path)
32
38
  Caboodle::Kit.setup
@@ -36,6 +42,7 @@ module Caboodle
36
42
  end
37
43
 
38
44
  def inherited subclass
45
+ set :kit_root, File.expand_path(File.dirname(caller[0].split(/:in/).last))
39
46
  c = caller[0].split(":")
40
47
  f = File.dirname(File.expand_path("#{c[0]}"))
41
48
  views = File.join(f, "views")
@@ -84,12 +91,28 @@ module Caboodle
84
91
  if File.exists?(config_path)
85
92
  load_custom_config(config_path)
86
93
  else
87
- `cp "#{File.join(root,"config",file)}" "#{File.join(Caboodle::App.root,"config",".")}"` rescue "Could not create the config yml file"
94
+ `cp "#{File.join(kit_root,"config",file)}" "#{File.join(Caboodle::App.root,"config",".")}"` rescue "Could not create the config yml file"
88
95
  puts "\nThis kit has a separate configuration file which you must edit:\n #{File.expand_path(File.join(Caboodle::App.root,"config",file))}\n"
89
96
  end
90
97
  end
91
98
  end
92
99
  end
100
+
101
+ def files array_of_files
102
+ configure do
103
+ array_of_files.each do |file|
104
+ target_path = File.expand_path(File.join(Caboodle::App.root,"config",file))
105
+ unless File.exists?(target_path)
106
+ `cp "#{File.join(kit_root,"config",file)}" "#{File.join(Caboodle::App.root,"config",".")}"` rescue "Could not create the config yml file"
107
+ end
108
+ end
109
+ end
110
+ end
111
+
112
+ def description string
113
+ puts "\n"
114
+ puts "#{name.to_s.split("::").last}: #{string}"
115
+ end
93
116
 
94
117
  def setup
95
118
  require_all
@@ -169,7 +192,7 @@ module Caboodle
169
192
  end
170
193
  end
171
194
  optional_settings.each do |r|
172
- if Caboodle::Site[r].blank?
195
+ unless defined?(Caboodle::Site[r])
173
196
  ask_user r, true
174
197
  end
175
198
  end
@@ -293,25 +316,30 @@ module Caboodle
293
316
  def credit url
294
317
  #todo there must be an easier way
295
318
  class_eval "def credit_link
296
- \"<a rel='me' href='#{url}' rel='me'>#{self.name.split("::").last}</a>\"
319
+ \"<a rel='me' href='#{url}'>#{self.name.split("::").last}</a>\"
297
320
  end"
298
321
  end
299
322
 
300
323
  def required_settings
301
- RequiredSettings[self.ancestors.first.to_s.split("::").last] ||= []
302
- RequiredSettings[self.ancestors.first.to_s.split("::").last]
324
+ RequiredSettings[kit_name] ||= []
325
+ RequiredSettings[kit_name]
303
326
  end
304
327
 
305
328
  def optional_settings
306
- OptionalSettings[self.ancestors.first.to_s.split("::").last] ||= []
307
- OptionalSettings[self.ancestors.first.to_s.split("::").last]
329
+ OptionalSettings[kit_name] ||= []
330
+ OptionalSettings[kit_name]
308
331
  end
309
332
 
333
+ def kit_name
334
+ self.ancestors.first.to_s.split("::").last
335
+ end
336
+
310
337
  def available_kits
311
338
  Dir.new(File.join(File.dirname(__FILE__),"kits")).entries.delete_if{|a| a[0,1]=="."}
312
339
  end
313
340
 
314
341
  def start
342
+
315
343
  errors = []
316
344
  self.required_settings.each do |s|
317
345
  if Site[s].blank?
@@ -323,9 +351,9 @@ module Caboodle
323
351
  Caboodle::App.use self
324
352
  else
325
353
  STDERR.puts " "
326
- STDERR.puts "Warning - #{self.ancestors.first} is disabled because:"
354
+ STDERR.puts "Warning - #{kit_name} is disabled because:"
327
355
  STDERR.puts errors.join("\n")
328
- Caboodle::Errors << Hashie::Mash.new(:title=>"#{self.ancestors.first} is disable", :reason=>errors.join(";"))
356
+ Caboodle::Errors << Hashie::Mash.new(:title=>"#{kit_name} is disable", :reason=>errors.join(";"))
329
357
  end
330
358
  end
331
359
  end
@@ -0,0 +1,17 @@
1
+ require 'maruku'
2
+
3
+ module Caboodle
4
+ class About < Caboodle::Kit
5
+
6
+ description "Gives you an About page at /about. Edit the Markdown file located in your application config directory."
7
+
8
+ files ["about.md"]
9
+
10
+ menu "About", "/about" do
11
+ @title = "About"
12
+ md = File.expand_path(File.join(Caboodle::App.root,"config","about.md"))
13
+ @content = Maruku.new(open(md).read).to_html_document
14
+ haml ".page.about.thin_page= @content"
15
+ end
16
+ end
17
+ end
@@ -0,0 +1 @@
1
+ A page about me.
@@ -1,20 +1,21 @@
1
1
  module Caboodle
2
2
  class Analytics < Caboodle::Kit
3
- add_to_layout "after_body" => "<script type=\"text/javascript\">
3
+ description "Adds Google Analytics to every page of the site"
4
+ required [:analytics_id]
5
+ end
6
+ end
4
7
 
5
- var _gaq = _gaq || [];
6
- _gaq.push(['_setAccount', '#{Caboodle::Site.analytics_id}']);
7
- _gaq.push(['_setDomainName', 'none']);
8
- _gaq.push(['_setAllowLinker', true]);
9
- _gaq.push(['_trackPageview']);
8
+ Caboodle::Layout.add_to_layout "after_body" => "<script type=\"text/javascript\">
9
+ var _gaq = _gaq || [];
10
+ _gaq.push(['_setAccount', '#{Caboodle::Site.analytics_id}']);
11
+ _gaq.push(['_setDomainName', 'none']);
12
+ _gaq.push(['_setAllowLinker', true]);
13
+ _gaq.push(['_trackPageview']);
10
14
 
11
- (function() {
12
- var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
13
- ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
14
- var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
15
- })();
15
+ (function() {
16
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
17
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
18
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
19
+ })();
16
20
 
17
- </script>"
18
- required [:analytics_id]
19
- end
20
- end
21
+ </script>"
@@ -1,5 +1,8 @@
1
1
  module Caboodle
2
2
  class Beta < Caboodle::Kit
3
+
4
+ description "Displays a beta message on every page of the site"
5
+
3
6
  required [:beta_message]
4
7
  add_sass ["beta"]
5
8
  end
@@ -1,6 +1,7 @@
1
1
  module Caboodle
2
2
  class Carbonmade < Caboodle::Kit
3
-
3
+ description "Embeds a Carbonmade.com portfolio."
4
+
4
5
  menu "Portfolio", "/portfolio" do
5
6
  @title = "Portfolio"
6
7
  haml :carbonmade
@@ -1,8 +1,6 @@
1
1
  module Caboodle
2
2
  class Debugger < Caboodle::Kit
3
3
 
4
- puts "Running debugger"
5
- puts Caboodle::Debug.inspect
6
4
  Caboodle::Debug.each do |debug|
7
5
  Caboodle::Layout.below_footer = "<div id='debug'>"
8
6
  Caboodle::Layout.below_footer << "<p>#{debug}</p>"
@@ -1,6 +1,8 @@
1
1
  module Caboodle
2
2
  class Disqus < Caboodle::Kit
3
-
3
+
4
+ description "Adds a chat page and support for other kits that require comments"
5
+
4
6
  menu "Chat", "/chat" do
5
7
  @title = "Chat"
6
8
  haml :disqus
@@ -49,6 +49,8 @@ module Caboodle
49
49
 
50
50
  class Flickr < Caboodle::Kit
51
51
 
52
+ description "A browsable Flickr.com gallery with sets"
53
+
52
54
  menu "Photography", "/photography" do
53
55
  unless Site.flickr_user_id.blank?
54
56
  @photosets = FlickrAPI.photosets rescue []
@@ -1,6 +1,8 @@
1
1
  module Caboodle
2
2
  class Github < Caboodle::Kit
3
3
 
4
+ description "A single page which links to all of a Github account's public repos"
5
+
4
6
  menu "Code", "/code" do
5
7
  @title = "Code"
6
8
  @repos = GithubAPI.repositories
@@ -16,10 +18,8 @@ module Caboodle
16
18
  end
17
19
 
18
20
  required [:github_username]
19
-
20
- defaults []
21
-
22
- credit "http://gitbhu.com/#{Site.github_username}"
21
+
22
+ credit "http://github.com/#{Site.github_username}"
23
23
  end
24
24
 
25
25
  class GithubAPI < Weary::Base
@@ -1,15 +1,18 @@
1
1
  :google_local_locations:
2
- Home:
2
+ -
3
+ title: Home
3
4
  description: My home is in North London
4
5
  address: Southgate, London, UK
5
- latitude: 51.511867
6
- longitude: -0.127587
7
- Work:
8
- description: I work at All In near Leicester Square
9
- address: 4-5 Great Newport Street, London, WC1 2EH
10
6
  latitude: 51.632483
11
7
  longitude: -0.127931
12
- Old Stomping Ground:
8
+ -
9
+ title: Work
10
+ description: I work at All In near Leicester Square
11
+ address: 4-5 Great Newport Street, London, WC1 2EH
12
+ latitude: 51.511867
13
+ longitude: -0.127587
14
+ -
15
+ title: Birmingham
13
16
  description: I used to spend a lot of time in Birmingham
14
17
  address: 4-5 Great Newport Street, London, WC1 2EH
15
18
  latitude: 52.446594
@@ -1,18 +1,40 @@
1
1
  module Caboodle
2
2
  class Googlelocal < Caboodle::Kit
3
+
4
+ description "A google map linking to a list of locations and enabling Local Search around each of them."
5
+
3
6
  required [:google_maps_api_key]
4
7
 
5
8
  config_files ["googlelocal.yml"]
6
9
 
7
10
  stylesheets ["http://www.google.com/uds/solutions/mapsearch/gsmapsearch.css", "http://www.google.com/uds/css/gsearch.css"]
8
11
 
12
+ before do
13
+ @locations = Config.google_local_locations
14
+ end
15
+
9
16
  menu "Near me", "/near_me" do
10
17
  @title = "Near me"
11
- @locations = Config.google_local_locations
12
- puts @locations.inspect
18
+ @location = Config.google_local_locations.first
13
19
  haml :googlelocal
14
20
  end
15
21
 
22
+ get "/near_me/:slug" do
23
+ Config.google_local_locations.each do |loc|
24
+ if loc.title.downcase.gsub(" ","-") == params[:slug]
25
+ @location = loc
26
+ end
27
+ end
28
+
29
+ puts @location.inspect
30
+
31
+ if @location
32
+ haml :googlelocal
33
+ else
34
+ redirect "/near_me"
35
+ end
36
+ end
37
+
16
38
  add_sass ["googlelocal"]
17
39
  end
18
40
  end
@@ -1,33 +1,40 @@
1
- #mapsearch
2
- %span
3
- Loading...
1
+ .googlelocal.page
2
+ %nav.locations
3
+ %ul
4
+ - @locations.each do |loc|
5
+ %li
6
+ %a{:href=>"/near_me/#{loc.title.downcase.gsub(" ","-")}"}
7
+ = loc.title
8
+ #mapsearch
9
+ %span
10
+ Loading...
4
11
 
5
- %script{:src=>"http://maps.google.com/maps?file=api&v=2&key=#{Caboodle::Site.google_maps_api_key}", :type=>"text/javascript"}
6
- %script{:src=>"http://www.google.com/uds/api?file=uds.js&v=1.0&source=uds-msw&key=#{Caboodle::Site.google_maps_api_key}", :type=>"text/javascript"}
7
- :javascript
8
- window._uds_msw_donotrepair = true;
9
- %script{:src=>"http://www.google.com/uds/solutions/mapsearch/gsmapsearch.js?mode=new", :type=>"text/javascript"}
10
- :javascript
11
- var localSearch;
12
- function LoadMapSearchControl() {
13
- var options = {
14
- zoomControl : GSmapSearchControl.ZOOM_CONTROL_ENABLE_ALL,
15
- title : '#{Caboodle::Site.title}',
16
- url : '#{request.host}',
17
- idleMapZoom : GSmapSearchControl.ACTIVE_MAP_ZOOM+1,
18
- activeMapZoom : GSmapSearchControl.ACTIVE_MAP_ZOOM+1
19
- }
12
+ %script{:src=>"http://maps.google.com/maps?file=api&v=2&key=#{Caboodle::Site.google_maps_api_key}", :type=>"text/javascript"}
13
+ %script{:src=>"http://www.google.com/uds/api?file=uds.js&v=1.0&source=uds-msw&key=#{Caboodle::Site.google_maps_api_key}", :type=>"text/javascript"}
14
+ :javascript
15
+ window._uds_msw_donotrepair = true;
16
+ %script{:src=>"http://www.google.com/uds/solutions/mapsearch/gsmapsearch.js?mode=new", :type=>"text/javascript"}
17
+ :javascript
18
+ var localSearch;
19
+ function LoadMapSearchControl() {
20
+ var options = {
21
+ zoomControl : GSmapSearchControl.ZOOM_CONTROL_ENABLE_ALL,
22
+ title : '#{Caboodle::Site.title}',
23
+ url : '#{request.host}',
24
+ idleMapZoom : GSmapSearchControl.ACTIVE_MAP_ZOOM+1,
25
+ activeMapZoom : GSmapSearchControl.ACTIVE_MAP_ZOOM+1
26
+ }
20
27
 
21
- var center = new Object();
22
- center.lat = #{@locations.first.latitude};
23
- center.lng = #{@locations.first.longitude};
24
- localSearch = new GSmapSearchControl(
25
- document.getElementById("mapsearch"),
26
- center,
27
- options
28
- );
29
- }
30
- $(document).ready(function(){LoadMapSearchControl()});
28
+ var center = new Object();
29
+ center.lat = #{@location.latitude};
30
+ center.lng = #{@location.longitude};
31
+ localSearch = new GSmapSearchControl(
32
+ document.getElementById("mapsearch"),
33
+ center,
34
+ options
35
+ );
36
+ }
37
+ $(document).ready(function(){LoadMapSearchControl()});
31
38
 
32
- %h2
33
- Search for something in the local area
39
+ %h2
40
+ Search for something in the local area
@@ -8,4 +8,12 @@
8
8
  .gsmsc-idleMapDiv {
9
9
  height: 320px;
10
10
  }
11
+ }
12
+
13
+ .page.googlelocal {
14
+ nav {
15
+ ul {
16
+ @include inline-block-list(12px);
17
+ }
18
+ }
11
19
  }
@@ -2,6 +2,9 @@ require 'digest/md5'
2
2
 
3
3
  module Caboodle
4
4
  class Standard < Caboodle::Kit
5
+
6
+ description "Sets the logo of the site to your gravatar.com image"
7
+
5
8
  optional [:email]
6
9
 
7
10
  configure do
@@ -13,17 +13,9 @@ require "sinatra/advanced_routes"
13
13
  module Caboodle
14
14
  class History < Caboodle::Kit
15
15
 
16
- config_files ["history.yml"]
16
+ description "A list of things you have done in the past."
17
17
 
18
- configure do
19
- config_path = File.expand_path(File.join(Caboodle::App.root,"config","history.yml"))
20
- if File.exists?(config_path)
21
- Caboodle::Kit.load_config(config_path)
22
- else
23
- `cp "#{File.join(File.dirname(__FILE__),"config","history.yml")}" "#{File.join(Caboodle::App.root,"config",".")}"` rescue "Could not create the sample yml file"
24
- puts "Please enter your history items in the file #{File.expand_path(File.join(Caboodle::App.root,"config","history.yml"))}"
25
- end
26
- end
18
+ config_files ["history.yml"]
27
19
 
28
20
  menu "History", "/history" do
29
21
  @title = "History"
@@ -1,8 +1,8 @@
1
1
  - #todo - this should be a vcalendar
2
2
  #history.page
3
3
  %dl
4
- - if Caboodle::History.config.history_years.respond_to?(:sort)
5
- - Caboodle::History.config.history_years.sort.reverse.each do |year,items|
4
+ - if Caboodle::History::Config.history_years.respond_to?(:sort)
5
+ - Caboodle::History::Config.history_years.sort.reverse.each do |year,items|
6
6
  %dt.year{:class=>year}
7
7
  = year
8
8
  %dd
@@ -1,5 +1,6 @@
1
1
  module Caboodle
2
2
  class Jquery < Caboodle::Kit
3
+ description "Adds Jquery to every page of the site"
3
4
  javascripts ["http://ajax.googleapis.com/ajax/libs/jquery/#{Caboodle::Site.jquery_version || "1.4.2"}/jquery.min.js"]
4
5
  end
5
6
  end
@@ -1,5 +1,6 @@
1
1
  module Caboodle
2
2
  class LazyLoad < Caboodle::Kit
3
+ description "Improves page load times for javascript-enabled browsers by loading images on demand as the user scrolls the page."
3
4
  javascripts ["/jquery.lazyload.mini.js","/lazyload.js"]
4
5
  end
5
6
  end
@@ -16,6 +16,8 @@ module Caboodle
16
16
 
17
17
  class Linkedin < Caboodle::Kit
18
18
 
19
+ description "Displays a Linkedin profile as a CV with consistent layout with the rest of the site."
20
+
19
21
  menu "CV", "/cv" do
20
22
  @title = "Curriculum Vitae"
21
23
  @linkedin = LinkedinAPI.new #rescue nil
@@ -1,6 +1,8 @@
1
1
  module Caboodle
2
2
  class Onepage < Caboodle::Kit
3
3
 
4
+ description "Embeds a Onepage.com contact card and loads it at /contact"
5
+
4
6
  menu "Contact", "/contact" do
5
7
  @title = "Contact"
6
8
  haml :contact
@@ -132,15 +132,17 @@ module Caboodle
132
132
 
133
133
  class Posterous < Caboodle::Kit
134
134
 
135
+ description "Displays a Posterous blog with permalinks, pagination and commends if the Disqus kit is included"
136
+
135
137
  get "/posterous/:page_number" do |page_number|
136
- @posts = PosterousPost.page(page_number) rescue nil
138
+ @posts = PosterousPost.page(page_number)
137
139
  not_found if @posts.class == Array && @posts.blank?
138
140
  haml :posts
139
141
  end
140
142
 
141
143
  get "/:year/:month/:slug" do |year, month, slug|
142
144
  STDERR.puts "Get a post"
143
- post = PosterousPost.from_slug(slug) rescue nil
145
+ post = PosterousPost.from_slug(slug)
144
146
  STDERR.puts "Slug not found: #{slug}"
145
147
  not_found unless post
146
148
  @title = post.title
@@ -148,7 +150,7 @@ module Caboodle
148
150
  end
149
151
 
150
152
  menu "Blog", "/posterous" do
151
- @posts = PosterousPost.all(:page=>(params[:page] || 1)) rescue []
153
+ @posts = PosterousPost.all(:page=>(params[:page] || 1))
152
154
  haml :posts.to_sym
153
155
  end
154
156
 
@@ -1,5 +1,6 @@
1
1
  module Caboodle
2
2
  class SEO < Caboodle::Kit
3
+ description "Adds basic search engine optimisation"
3
4
  add_to_layout "meta" => "<meta type='keywords' value='#{Caboodle::Site.seo_keywords}' /><meta type='description' value='#{Caboodle::Site.seo_description}' />"
4
5
  optional [:seo_keywords,:seo_description]
5
6
  end
@@ -1,5 +1,6 @@
1
1
  module Caboodle
2
2
  class Soundcloud < Caboodle::Kit
3
+ description "Displays a search of soundcloud as embedded players on a single page."
3
4
 
4
5
  menu "Mixes", "/mixes" do
5
6
  @title = "Mixes"
@@ -1,5 +1,6 @@
1
1
  module Caboodle
2
2
  class Standard < Caboodle::Kit
3
+ description "The default home page and site options"
3
4
  required [:title, :description, :author]
4
5
  optional [:logo_url]
5
6
  if Caboodle::Site.home_kit.blank?
@@ -11,7 +11,7 @@ require "sinatra/advanced_routes"
11
11
 
12
12
  module Caboodle
13
13
  class Susy < Caboodle::Kit
14
-
14
+ description "Adds Susy CSS formatting"
15
15
  get("/susy/:name.css") do
16
16
  content_type 'text/css', :charset => 'utf-8'
17
17
  sass_dir = File.expand_path(File.join(File.dirname(__FILE__),"views","susy"))
@@ -51,9 +51,7 @@ header#site-header {
51
51
  color: #ddd;
52
52
  }
53
53
  }
54
- #access {
55
- @include skip-link();
56
- }
54
+
57
55
  nav {
58
56
  @include trailer(1,32px);
59
57
  @include prefix(2);
@@ -66,6 +64,10 @@ header#site-header {
66
64
  }
67
65
  }
68
66
 
67
+ #access {
68
+ @include skip-link();
69
+ }
70
+
69
71
  section#main {
70
72
  @include full;
71
73
  header#page_title
@@ -3,7 +3,8 @@ require 'tumblr'
3
3
 
4
4
  module Caboodle
5
5
  class Tumblr < Caboodle::Kit
6
-
6
+ description "Includes a tumblr.com account"
7
+
7
8
  helpers do
8
9
  def semantic_date post
9
10
  date = Date.parse(post.date)
@@ -1,6 +1,6 @@
1
1
  module Caboodle
2
2
  class Twitter < Caboodle::Kit
3
-
3
+ description "Display recent tweets from a given twitter account, with infinite scrolling for looking back in time."
4
4
  menu "Twitter", "/twitter" do
5
5
  @title = "Twitter"
6
6
  haml :twitter
@@ -1,5 +1,6 @@
1
1
  module Caboodle
2
2
  class Typekit < Caboodle::Kit
3
+ description "Adds support for Typekit.com CSS options"
3
4
  javascripts ["http://use.typekit.com/#{Caboodle::Site.typekit}.js","/typekit.js"]
4
5
  required [:typekit]
5
6
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: caboodle
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
4
+ hash: 11
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 13
10
- version: 0.2.13
9
+ - 14
10
+ version: 0.2.14
11
11
  platform: ruby
12
12
  authors:
13
13
  - Stef Lewandowski
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-08-28 00:00:00 +01:00
18
+ date: 2010-08-31 00:00:00 +01:00
19
19
  default_executable: caboodle
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -205,6 +205,20 @@ dependencies:
205
205
  version: "0"
206
206
  type: :runtime
207
207
  version_requirements: *id012
208
+ - !ruby/object:Gem::Dependency
209
+ name: maruku
210
+ prerelease: false
211
+ requirement: &id013 !ruby/object:Gem::Requirement
212
+ none: false
213
+ requirements:
214
+ - - ">="
215
+ - !ruby/object:Gem::Version
216
+ hash: 3
217
+ segments:
218
+ - 0
219
+ version: "0"
220
+ type: :runtime
221
+ version_requirements: *id013
208
222
  description: Caboodle is a Rack and Sinatra-based framework for creating websites which combine information from various online services. There are Kits for many of the larger services, which provide a way to retrieve and display photos, videos, blog posts, status updates and so on. Caboodle normalises the display of all of these discrete Kits so that you can create a website which looks seamless but is made up of a variety of things from a variety of sources.
209
223
  email: stef@stef.io
210
224
  executables:
@@ -252,6 +266,8 @@ files:
252
266
  - lib/caboodle/config/defaults.yml
253
267
  - lib/caboodle/helpers.rb
254
268
  - lib/caboodle/kit.rb
269
+ - lib/caboodle/kits/about/about.rb
270
+ - lib/caboodle/kits/about/config/about.md
255
271
  - lib/caboodle/kits/analytics/analytics.rb
256
272
  - lib/caboodle/kits/beta/beta.rb
257
273
  - lib/caboodle/kits/beta/views/beta.scss