caboodle 0.1.4 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/lib/caboodle/app.rb +1 -4
- data/lib/caboodle/app/views/layout.haml +21 -5
- data/lib/caboodle/config.rb +2 -1
- data/lib/caboodle/config/defaults.yml +1 -0
- data/lib/caboodle/helpers.rb +4 -0
- data/lib/caboodle/kit.rb +37 -6
- data/lib/caboodle/kits/flickr/flickr.rb +4 -6
- data/lib/caboodle/kits/flickr/public/galleria.noconflict.min.js +1 -1
- data/lib/caboodle/kits/flickr/views/photography.haml +0 -2
- data/lib/caboodle/kits/github/github.rb +3 -3
- data/lib/caboodle/kits/lazyload/public/lazyload.js +4 -2
- data/lib/caboodle/kits/linkedin/linkedin.rb +3 -3
- data/lib/caboodle/kits/onepage/onepage.rb +3 -3
- data/lib/caboodle/kits/portfolio/portfolio.rb +1 -2
- data/lib/caboodle/kits/posterous/posterous.rb +5 -1
- data/lib/caboodle/kits/soundcloud/soundcloud.rb +2 -4
- data/lib/caboodle/kits/twitter/twitter.rb +3 -3
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.5
|
data/lib/caboodle/app.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
module Caboodle
|
2
|
-
|
3
2
|
class App < Sinatra::Base
|
4
3
|
register Sinatra::Compass
|
5
4
|
|
@@ -22,9 +21,7 @@ module Caboodle
|
|
22
21
|
if File.exists?(config_path)
|
23
22
|
Caboodle::Kit.load_config(config_path)
|
24
23
|
Caboodle::Kit.setup
|
25
|
-
end
|
26
|
-
|
27
|
-
puts Caboodle::Site.inspect
|
24
|
+
end
|
28
25
|
end
|
29
26
|
# get '/:kit/stylesheet.css' do
|
30
27
|
# header 'Content-Type' => 'text/css; charset=utf-8'
|
@@ -3,6 +3,7 @@
|
|
3
3
|
%head{:profile => "http://gmpg.org/xfn/11"}
|
4
4
|
%meta{:content => "text/html; charset=utf-8", "http-equiv" => "content-type"}/
|
5
5
|
%meta{:content => "index,follow", :name => "robots"}/
|
6
|
+
%meta{:content => "Caboodle", :name => "generator"}/
|
6
7
|
|
7
8
|
= meta
|
8
9
|
|
@@ -20,8 +21,13 @@
|
|
20
21
|
- Caboodle::Javascripts.each do |js|
|
21
22
|
%script{:charset => "utf-8", :src => js, :type => "text/javascript"}
|
22
23
|
|
24
|
+
- Caboodle::RSS.each do |rss|
|
25
|
+
%link{:href => rss, :rel => "alternate", :type => "application/rss+xml"}/
|
26
|
+
|
23
27
|
= head
|
24
28
|
|
29
|
+
= root
|
30
|
+
|
25
31
|
%body.caboodle
|
26
32
|
= before_page
|
27
33
|
#page.hfeed
|
@@ -37,7 +43,7 @@
|
|
37
43
|
%h1
|
38
44
|
%a{:href => "/", :rel => "home", :title => Caboodle::Site.title }
|
39
45
|
= Caboodle::Site.title
|
40
|
-
- if description
|
46
|
+
- if Caboodle::Site.description
|
41
47
|
#site-description
|
42
48
|
%h2= Caboodle::Site.description
|
43
49
|
#access
|
@@ -47,15 +53,18 @@
|
|
47
53
|
- if Caboodle::MenuItems.size > 0
|
48
54
|
= before_nav
|
49
55
|
%nav
|
56
|
+
= above_nav
|
50
57
|
%ul
|
51
|
-
%li
|
52
|
-
%a{:href=>"/"}
|
53
|
-
= Caboodle::Site.home_title
|
54
58
|
- Caboodle::MenuItems.each do |p|
|
55
59
|
%li
|
60
|
+
= above_nav_item
|
56
61
|
%a{:href=>p[:link]}
|
62
|
+
= above_nav_item_title
|
57
63
|
= p[:display]
|
58
|
-
|
64
|
+
= below_nav_item_title
|
65
|
+
= below_nav_item
|
66
|
+
= below_nav
|
67
|
+
= after_nav
|
59
68
|
= below_header
|
60
69
|
= after_header
|
61
70
|
= before_main
|
@@ -70,6 +79,13 @@
|
|
70
79
|
= yield
|
71
80
|
= below_content
|
72
81
|
= after_content
|
82
|
+
- if credit
|
83
|
+
= before_credit
|
84
|
+
%section#credit
|
85
|
+
= above_credit
|
86
|
+
= credit
|
87
|
+
= below_credit
|
88
|
+
= after_credit
|
73
89
|
= after_main
|
74
90
|
= before_footer
|
75
91
|
%footer#footer
|
data/lib/caboodle/config.rb
CHANGED
@@ -3,6 +3,8 @@ module Caboodle
|
|
3
3
|
MenuItems = []
|
4
4
|
Javascripts = []
|
5
5
|
Stylesheets = []
|
6
|
+
RSS = []
|
7
|
+
|
6
8
|
Defaults = Hashie::Mash.new(Hashie::Mash.new(YAML.load_file(File.join(File.dirname(__FILE__), 'config','defaults.yml'))))
|
7
9
|
RequiredSettings = Hashie::Mash.new()
|
8
10
|
Layout = Hashie::Mash.new()
|
@@ -10,5 +12,4 @@ module Caboodle
|
|
10
12
|
|
11
13
|
Site.required_settings = []
|
12
14
|
Site.kits = [] unless Site.kits
|
13
|
-
puts Site.inspect
|
14
15
|
end
|
data/lib/caboodle/helpers.rb
CHANGED
data/lib/caboodle/kit.rb
CHANGED
@@ -59,7 +59,7 @@ module Caboodle
|
|
59
59
|
kit_name = kit_name.downcase
|
60
60
|
puts "Loading Kit: #{kit_name}"
|
61
61
|
orig = Caboodle.constants
|
62
|
-
require "caboodle/kits/#{kit_name}/#{kit_name}" rescue puts "Problem loading Kit: #{kit_name}"
|
62
|
+
require "caboodle/kits/#{kit_name}/#{kit_name}" #rescue puts "Problem loading Kit: #{kit_name}"
|
63
63
|
added = Caboodle.constants - orig
|
64
64
|
added.each do |d|
|
65
65
|
c = Caboodle.const_get(d)
|
@@ -77,7 +77,7 @@ module Caboodle
|
|
77
77
|
kit_name = kit_name.downcase
|
78
78
|
puts "Loading Kit: #{kit_name}"
|
79
79
|
orig = Caboodle.constants
|
80
|
-
require "caboodle/kits/#{kit_name}/#{kit_name}" rescue puts "Problem loading Kit: #{kit_name}"
|
80
|
+
require "caboodle/kits/#{kit_name}/#{kit_name}" #rescue puts "Problem loading Kit: #{kit_name}"
|
81
81
|
added = Caboodle.constants - orig
|
82
82
|
added.each do |d|
|
83
83
|
c = Caboodle.const_get(d)
|
@@ -101,12 +101,14 @@ module Caboodle
|
|
101
101
|
Site.kits << self.to_s.split("::").last
|
102
102
|
Site.kits.uniq!
|
103
103
|
Caboodle::Kits << self
|
104
|
+
Caboodle::Kits
|
104
105
|
end
|
105
106
|
|
106
107
|
def unregister
|
107
108
|
Caboodle::Kits.delete(self)
|
108
109
|
Caboodle::Site.kits.delete(self.to_s)
|
109
110
|
Caboodle::Kit.dump_config
|
111
|
+
Caboodle::Kits
|
110
112
|
end
|
111
113
|
|
112
114
|
def require_all
|
@@ -115,14 +117,17 @@ module Caboodle
|
|
115
117
|
else
|
116
118
|
STDERR.puts "Kits not registered"
|
117
119
|
end
|
120
|
+
Caboodle::Kits
|
118
121
|
end
|
119
122
|
|
120
123
|
def use_all
|
121
124
|
Caboodle::Kits.each { |p| p.start }
|
122
125
|
end
|
123
126
|
|
124
|
-
def menu display,
|
125
|
-
Caboodle::
|
127
|
+
def menu display, path, &block
|
128
|
+
path = "/" if Site.home_kit == self.to_s.gsub("Caboodle::","")
|
129
|
+
Caboodle::MenuItems << {:display=>display, :link=>path}
|
130
|
+
self.get path, &block
|
126
131
|
end
|
127
132
|
|
128
133
|
def required keys
|
@@ -133,18 +138,40 @@ module Caboodle
|
|
133
138
|
else
|
134
139
|
self.required_settings << keys
|
135
140
|
end
|
141
|
+
self.required_settings
|
136
142
|
end
|
137
143
|
|
138
144
|
def stylesheets array_of_css_files
|
139
|
-
array_of_css_files.
|
145
|
+
if array_of_css_files.class == Array
|
146
|
+
array_of_css_files.each { |a| Caboodle::Stylesheets << a.to_s }
|
147
|
+
else
|
148
|
+
Caboodle::Stylesheets << array_of_css_files.to_s
|
149
|
+
end
|
140
150
|
Caboodle::Stylesheets.uniq!
|
141
151
|
end
|
142
152
|
|
153
|
+
alias_method :stylesheet, :stylesheets
|
154
|
+
|
143
155
|
def javascripts array_of_js_files
|
144
|
-
array_of_js_files.
|
156
|
+
if array_of_js_files.class == Array
|
157
|
+
array_of_js_files.each { |a| Caboodle::Javascripts << a.to_s }
|
158
|
+
else
|
159
|
+
Caboodle::Javascripts << array_of_js_files.to_s
|
160
|
+
end
|
145
161
|
Caboodle::Javascripts.uniq!
|
146
162
|
end
|
147
163
|
|
164
|
+
alias_method :javascript, :javascripts
|
165
|
+
|
166
|
+
def rss array_of_feeds
|
167
|
+
if array_of_feeds.class == Array
|
168
|
+
array_of_feeds.each { |a| Caboodle::RSS << a.to_s }
|
169
|
+
else
|
170
|
+
Caboodle::RSS << array_of_feeds.to_s
|
171
|
+
end
|
172
|
+
Caboodle::RSS.uniq!
|
173
|
+
end
|
174
|
+
|
148
175
|
def add_to_layout hash_of_items
|
149
176
|
hash_of_items.each do |k,v|
|
150
177
|
unless Caboodle::Layout[k.to_sym].blank?
|
@@ -162,6 +189,10 @@ module Caboodle
|
|
162
189
|
hash.each {|k,v| Site[k] = v }
|
163
190
|
end
|
164
191
|
end
|
192
|
+
|
193
|
+
def original url
|
194
|
+
set :credit, "<a href='#{url}' rel='me'>via #{self.class.name.split("::").last}</a>"
|
195
|
+
end
|
165
196
|
|
166
197
|
def required_settings
|
167
198
|
r = RequiredSettings[self.ancestors.first.to_s.split("::").last] ||= [:title, :description, :logo_url, :author]
|
@@ -44,16 +44,12 @@ module Caboodle
|
|
44
44
|
|
45
45
|
class Flickr < Caboodle::Kit
|
46
46
|
|
47
|
-
|
47
|
+
menu "Photography", "/photography" do
|
48
48
|
@photosets = FlickrAPI.photosets rescue []
|
49
49
|
@title = "Photography"
|
50
50
|
haml :photography
|
51
51
|
end
|
52
52
|
|
53
|
-
get "/photography" do
|
54
|
-
home
|
55
|
-
end
|
56
|
-
|
57
53
|
get "/photography/:set_id" do |set_id|
|
58
54
|
@photosets = FlickrAPI.photosets rescue []
|
59
55
|
@set_id = set_id
|
@@ -64,6 +60,8 @@ module Caboodle
|
|
64
60
|
|
65
61
|
required [:flickr_username, :flickr_api_key]
|
66
62
|
|
67
|
-
|
63
|
+
javascripts ["/galleria.noconflict.min.js"]
|
64
|
+
|
65
|
+
original "http://flickr.com/#{Caboodle::Site.flickr_username}"
|
68
66
|
end
|
69
67
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
$j=jQuery
|
1
|
+
$j=jQuery;$j(function(){var $$;$$=$j.fn.galleria=function($options){if(!$$.hasCSS()){return false;}
|
2
2
|
$j.historyInit($$.onPageLoad);var $defaults={insert:'.galleria_container',history:true,clickNext:true,onImage:function(image,caption,thumb){},onThumb:function(thumb){}};var $opts=$j.extend($defaults,$options);for(var i in $opts){if(i){$j.galleria[i]=$opts[i];}}
|
3
3
|
var _insert=($j($opts.insert).is($opts.insert))?$j($opts.insert):jQuery(document.createElement('div')).insertBefore(this);var _div=$j(document.createElement('div')).addClass('galleria_wrapper');var _span=$j(document.createElement('span')).addClass('caption');_insert.addClass('galleria_container').append(_div).append(_span);return this.each(function(){$j(this).addClass('galleria');$j(this).children('li').each(function(i){var _container=$j(this);var _o=$j.meta?$j.extend({},$opts,_container.data()):$opts;_o.clickNext=$j(this).is(':only-child')?false:_o.clickNext;var _a=$j(this).find('a').is('a')?$j(this).find('a'):false;var _img=$j(this).children('img').css('display','none');var _src=_a?_a.attr('href'):_img.attr('src');var _title=_a?_a.attr('title'):_img.attr('title');var _loader=new Image();if(_o.history&&(window.location.hash&&window.location.hash.replace(/\#/,'')==_src)){_container.siblings('.active').removeClass('active');_container.addClass('active');}
|
4
4
|
$j(_loader).load(function(){$j(this).attr('alt',_img.attr('alt'));var _thumb=_a?_a.find('img').addClass('thumb noscale').css('display','none'):_img.clone(true).addClass('thumb').css('display','none');if(_a){_a.replaceWith(_thumb);}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Caboodle
|
2
2
|
class Github < Caboodle::Kit
|
3
3
|
|
4
|
-
|
4
|
+
menu "Code", "/code" do
|
5
5
|
@title = "Code"
|
6
6
|
@repos = GithubAPI.repositories
|
7
7
|
|
@@ -15,11 +15,11 @@ module Caboodle
|
|
15
15
|
haml :github
|
16
16
|
end
|
17
17
|
|
18
|
-
menu "Code", "/code"
|
19
|
-
|
20
18
|
required [:github_username]
|
21
19
|
|
22
20
|
defaults []
|
21
|
+
|
22
|
+
original "http://gitbhu.com/#{Site.github_username}"
|
23
23
|
end
|
24
24
|
|
25
25
|
class GithubAPI < Weary::Base
|
@@ -16,14 +16,14 @@ module Caboodle
|
|
16
16
|
|
17
17
|
class Linkedin < Caboodle::Kit
|
18
18
|
|
19
|
-
|
19
|
+
menu "CV", "/cv" do
|
20
20
|
@title = "Curriculum Vitae"
|
21
21
|
@linkedin = LinkedinAPI.new #rescue nil
|
22
22
|
haml :cv
|
23
23
|
end
|
24
24
|
|
25
|
-
menu "CV", "/cv"
|
26
|
-
|
27
25
|
required [:linkedin_full_name, :linkedin_profile_url]
|
26
|
+
|
27
|
+
original Caboodle::Site.linkedin_profile_url
|
28
28
|
end
|
29
29
|
end
|
@@ -1,13 +1,13 @@
|
|
1
1
|
module Caboodle
|
2
2
|
class Onepage < Caboodle::Kit
|
3
3
|
|
4
|
-
|
4
|
+
menu "Contact", "/contact" do
|
5
5
|
@title = "Contact"
|
6
6
|
haml :contact
|
7
7
|
end
|
8
8
|
|
9
|
-
menu "Contact", "/contact"
|
10
|
-
|
11
9
|
required [:onepage_username]
|
10
|
+
|
11
|
+
original "http://myonepage.com/#{Caboodle::Site.onepage_username}"
|
12
12
|
end
|
13
13
|
end
|
@@ -147,7 +147,7 @@ module Caboodle
|
|
147
147
|
haml :post, :locals => { :post => post }
|
148
148
|
end
|
149
149
|
|
150
|
-
|
150
|
+
menu "Blog", "/blog" do
|
151
151
|
@posts = Post.all(:page=>(params[:page] || 1))
|
152
152
|
haml :posts.to_sym
|
153
153
|
end
|
@@ -155,6 +155,10 @@ module Caboodle
|
|
155
155
|
required [:posterous_sitename, :posterous_username, :posterous_password, :disqus]
|
156
156
|
|
157
157
|
stylesheets ["http://disqus.com/stylesheets/#{Caboodle::Site.disqus}/disqus.css?v=2.0"]
|
158
|
+
|
159
|
+
rss ["feed://stef.posterous.com/rss.xml"]
|
160
|
+
|
161
|
+
original "http://#{Caboodle::Site.posterous_sitename}.posterous.com"
|
158
162
|
end
|
159
163
|
end
|
160
164
|
|
@@ -1,14 +1,12 @@
|
|
1
1
|
module Caboodle
|
2
2
|
class Soundcloud < Caboodle::Kit
|
3
3
|
|
4
|
-
|
4
|
+
menu "Mixes", "/mixes" do
|
5
5
|
@title = "Mixes"
|
6
6
|
@mixes = SoundcloudAPI.sets
|
7
7
|
haml :soundcloud
|
8
8
|
end
|
9
|
-
|
10
|
-
menu "Mixes", "/mixes"
|
11
|
-
|
9
|
+
|
12
10
|
required [:soundcloud_query]
|
13
11
|
end
|
14
12
|
|
@@ -1,13 +1,13 @@
|
|
1
1
|
module Caboodle
|
2
2
|
class Twitter < Caboodle::Kit
|
3
3
|
|
4
|
-
|
4
|
+
menu "Twitter", "/twitter" do
|
5
5
|
@title = "Twitter"
|
6
6
|
haml :twitter
|
7
7
|
end
|
8
8
|
|
9
|
-
menu "Twitter", "/twitter"
|
10
|
-
|
11
9
|
required [:twitter_username]
|
10
|
+
|
11
|
+
original "http://twitter.com/#{Caboodle::Site.twitter_username}"
|
12
12
|
end
|
13
13
|
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:
|
4
|
+
hash: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 5
|
10
|
+
version: 0.1.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- steflewandowski
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-08-
|
18
|
+
date: 2010-08-15 00:00:00 +01:00
|
19
19
|
default_executable: caboodle
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|