static-bartender 0.0.1 → 0.0.2

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.
@@ -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