static-bartender 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,10 +8,10 @@ module Bartender
8
8
  if @sprockets_object
9
9
  @found = true
10
10
  split_file_name = file.split("/")
11
- @file = split_file_name[-1] # asset
12
- @site_path = @sprockets_object.digest_path # folder/asset-digest.ext
13
- @src_file = @sprockets_object.pathname # site/asset-folder/asset.ext
14
- @dest_path = File.join(Bartender::DEFAULTS["output"], site_path) # output/folder/asset-digest.ext
11
+ @file = split_file_name[-1] # asset
12
+ @site_path = "#{@sprockets_object.logical_path}?#{@sprockets_object.digest}" # folder/asset.ext?digest
13
+ @src_file = @sprockets_object.pathname # asset-folder/asset.ext
14
+ @dest_path = File.join(Bartender::DEFAULTS["output"], @sprockets_object.logical_path) # output/folder/asset.ext
15
15
  else
16
16
  @found = false #asset doesn't exist, return nothing
17
17
  end
@@ -0,0 +1,35 @@
1
+ module Bartender
2
+
3
+ class Partial
4
+ include ViewHelpers
5
+
6
+ def initialize(partial, sprockets_env, variables={})
7
+ @tempalte = ""
8
+ @sprockets_env = sprockets_env
9
+ variables.each {|k,v| instance_variable_set "@#{k}", v}
10
+ search_string = File.join(Bartender::DEFAULTS['pages'], '_' + partial + "*")
11
+ file = Dir.glob(search_string)[0]
12
+ if file && File.exists?(file)
13
+ @template = Tilt.new(file).render(self)
14
+ else
15
+ $stderr.puts "ERROR: Could not find partial file '#{partial}' in #{Bartender::DEFAULTS['pages']} for page #{self.page}"
16
+ exit 0
17
+ end
18
+ end #Function init
19
+
20
+ def to_s
21
+ @template.to_s
22
+ end #Function to_s
23
+
24
+
25
+ def method_missing(m, *args)
26
+ if m =~ /^(\w+)=$/
27
+ instance_variable_set "@#{$1}", args[0]
28
+ else
29
+ instance_variable_get "@#{m}"
30
+ end
31
+ end #Funciton method_missing
32
+
33
+ end #Class partial
34
+
35
+ end #Module Bartender
@@ -13,24 +13,34 @@ module Bartender
13
13
  compile_assets
14
14
 
15
15
  Dir.glob(File.join(Bartender::DEFAULTS["pages"], '/**/*')).each do |page|
16
- Page.new(page, @sprockets_env).compile unless page.split('/')[-1].match /^_/
16
+ compile_page(page) unless page.split('/')[-1].match /^_/ #compile the page unless it is a partial
17
17
  end
18
18
  end #Function initialize
19
19
 
20
+ #compile the page
21
+ #expects to be passed a path to a tilt template
22
+ def compile_page(page)
23
+ Page.new(page, @sprockets_env).compile
24
+ end #Function compile_page
20
25
 
21
26
  #compile the css and js assets for use in the page
22
27
  #uses sprokets set an environment, compile them, then get accessed
23
28
  def compile_assets
29
+ Dir.glob(File.join(Bartender::DEFAULTS["output"], '/**/*')).each {|asset| File.delete(asset) unless File.directory?(asset)}#delete the old files
24
30
  Dir.glob(File.join(Bartender::DEFAULTS["assets"], '/**/*')).each do |asset|
25
- asset = Bartender::Asset.new(asset.gsub(File.join(Bartender::DEFAULTS["assets"], '/'), ''), @sprockets_env)
26
-
27
- if asset.found #make sure sprockets can find the asset
28
- asset.sprockets_object.write_to(asset.dest_path)
29
- end
31
+ compile_asset(asset)
30
32
  end
31
33
  end #Function compile_assets
32
34
 
35
+ #compile each asset
36
+ #expects a file name to be passed to it
37
+ def compile_asset(asset)
38
+ asset = Bartender::Asset.new(asset.gsub(File.join(Bartender::DEFAULTS["assets"], '/'), ''), @sprockets_env)
33
39
 
40
+ if asset.found #make sure sprockets can find the asset
41
+ asset.sprockets_object.write_to(asset.dest_path)
42
+ end
43
+ end #Function compile_asset
34
44
 
35
45
  def self.create(name)
36
46
  name = File.join(Bartender::DEFAULTS["root"], name)
@@ -1,3 +1,3 @@
1
1
  module Bartender
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -5,14 +5,7 @@ module Bartender
5
5
  #render a simple partial, use Tilt to render it
6
6
  #display an error if the partial isn't found
7
7
  def partial(filename, variables={})
8
- search_string = File.join(Bartender::DEFAULTS['pages'], '_' + filename + "*")
9
- file = Dir.glob(search_string)[0]
10
- if file && File.exists?(file)
11
- Tilt.new(file).render(variables, variables)
12
- else
13
- $stderr.puts "ERROR: Could not find partial file '#{filename}' in #{Bartender::DEFAULTS['pages']} for page #{self.page}"
14
- exit 0
15
- end
8
+ Bartender::Partial.new(filename, self.sprockets_env, variables).to_s
16
9
  end
17
10
 
18
11
  #link the appropriate stylesheet
@@ -23,7 +16,7 @@ module Bartender
23
16
  asset = Bartender::Asset.new(file_path, self.sprockets_env)
24
17
 
25
18
  if asset
26
- return "<link #{opts.to_a.collect{|opt_a| "#{opt_a[0]}=\"#{opt_a[1]}\""}.join(' ')} src=\"#{asset.site_path}\"/>"
19
+ return "<link #{opts.to_a.collect{|opt_a| "#{opt_a[0]}=\"#{opt_a[1]}\""}.join(' ')} href=\"#{asset.site_path}\"/>"
27
20
  else
28
21
  $stderr.puts "WARNING: Could not find stylesheet '#{filename}' in #{Bartender::DEFAULTS['assets']} for page #{self.page}"
29
22
  return "<!-- WARNING: Could not link stylesheet #{filename} -->"
@@ -59,6 +52,19 @@ module Bartender
59
52
  return "<!-- WARNING: Could not link img #{filename} -->"
60
53
  end
61
54
  end #Function link_image
55
+
56
+ #provide the path to the asset
57
+ def asset_url(filename)
58
+
59
+ asset = Bartender::Asset.new(filename, self.sprockets_env)
60
+
61
+ if asset
62
+ return asset.site_path
63
+ else
64
+ $stderr.puts "WARNING: Could not find asset '#{filename}' in #{Bartender::DEFAULTS['assets']} for page #{self.page}"
65
+ return "<!-- WARNING: Could not find asset #{filename} -->"
66
+ end
67
+ end #Function link_image
62
68
 
63
69
  end #Module ViewHelpers
64
70
 
data/lib/bartender.rb CHANGED
@@ -8,6 +8,7 @@ require 'deep_merge'
8
8
 
9
9
  require 'bartender/view_helpers'
10
10
  require 'bartender/asset'
11
+ require 'bartender/partial'
11
12
  require 'bartender/site'
12
13
  require 'bartender/page'
13
14
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: static-bartender
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-07-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: deep_merge
16
- requirement: !ruby/object:Gem::Requirement
16
+ requirement: &70102636979800 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,15 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
24
+ version_requirements: *70102636979800
30
25
  - !ruby/object:Gem::Dependency
31
26
  name: tilt
32
- requirement: !ruby/object:Gem::Requirement
27
+ requirement: &70102636979380 !ruby/object:Gem::Requirement
33
28
  none: false
34
29
  requirements:
35
30
  - - ! '>='
@@ -37,15 +32,10 @@ dependencies:
37
32
  version: '0'
38
33
  type: :runtime
39
34
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
35
+ version_requirements: *70102636979380
46
36
  - !ruby/object:Gem::Dependency
47
37
  name: sprockets
48
- requirement: !ruby/object:Gem::Requirement
38
+ requirement: &70102636978960 !ruby/object:Gem::Requirement
49
39
  none: false
50
40
  requirements:
51
41
  - - ! '>='
@@ -53,12 +43,7 @@ dependencies:
53
43
  version: '0'
54
44
  type: :runtime
55
45
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
46
+ version_requirements: *70102636978960
62
47
  description: Build static websites smartly
63
48
  email:
64
49
  - daniel@prowestech.com
@@ -77,6 +62,7 @@ files:
77
62
  - lib/bartender.rb
78
63
  - lib/bartender/asset.rb
79
64
  - lib/bartender/page.rb
65
+ - lib/bartender/partial.rb
80
66
  - lib/bartender/site.rb
81
67
  - lib/bartender/version.rb
82
68
  - lib/bartender/view_helpers.rb
@@ -104,7 +90,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
90
  version: '0'
105
91
  requirements: []
106
92
  rubyforge_project:
107
- rubygems_version: 1.8.23
93
+ rubygems_version: 1.8.11
108
94
  signing_key:
109
95
  specification_version: 3
110
96
  summary: Use layouts, link helpers, and the asset pipeline to create static websites