middleman-more 3.0.0.rc.4 → 3.0.0

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.
@@ -32,25 +32,25 @@ module Middleman
32
32
  def image_tag(path, params={})
33
33
  if !params.has_key?(:width) && !params.has_key?(:height) && !path.include?("://")
34
34
  params[:alt] ||= ""
35
- http_prefix = http_images_path rescue images_dir
36
35
 
37
- begin
38
- real_path = File.join(source, images_dir, path)
39
- full_path = File.expand_path(real_path, root)
40
- http_prefix = http_images_path rescue images_dir
41
- if File.exists? full_path
42
- dimensions = ::FastImage.size(full_path, :raise_on_failure => true)
43
- params[:width] = dimensions[0]
44
- params[:height] = dimensions[1]
36
+ real_path = path
37
+ real_path = File.join(images_dir, real_path) unless real_path =~ %r{^/}
38
+ full_path = File.join(source_dir, real_path)
39
+
40
+ if File.exists? full_path
41
+ begin
42
+ width, height = ::FastImage.size(full_path, :raise_on_failure => true)
43
+ params[:width] = width
44
+ params[:height] = height
45
+ rescue
46
+ warn "Couldn't determine dimensions for image #{path}: #{$!.message}"
45
47
  end
46
- rescue
47
- # $stderr.puts params.inspect
48
48
  end
49
49
  end
50
-
50
+
51
51
  super(path, params)
52
52
  end
53
53
  end
54
54
  end
55
55
  end
56
- end
56
+ end
@@ -19,14 +19,18 @@ module Middleman::Extensions
19
19
  class << self
20
20
  def registered(app, options={})
21
21
  exts = options[:exts] || %w(.js .css .html .htm)
22
-
23
- app.send :include, InstanceMethods
24
22
 
25
23
  app.after_build do |builder|
26
- Find.find(self.class.inst.build_dir) do |path|
27
- next if File.directory? path
28
- if exts.include? File.extname(path)
29
- new_size = gzip_file(path, builder)
24
+
25
+ paths = ::Middleman::Util.all_files_under(self.class.inst.build_dir)
26
+ paths.each do |path|
27
+ next unless exts.include? path.extname
28
+
29
+ output_filename, old_size, new_size = Middleman::Extensions::Gzip.gzip_file(path.to_s)
30
+
31
+ if output_filename
32
+ size_change_word = (old_size - new_size) > 0 ? 'smaller' : 'larger'
33
+ builder.say_status :gzip, "#{output_filename} (#{number_to_human_size((old_size - new_size).abs)} #{size_change_word})"
30
34
  end
31
35
  end
32
36
  end
@@ -35,37 +39,33 @@ module Middleman::Extensions
35
39
  alias :included :registered
36
40
  end
37
41
 
38
- module InstanceMethods
39
- def gzip_file(path, builder)
40
- input_file = File.open(path, 'r').read
41
- output_filename = path + '.gz'
42
- input_file_time = File.mtime(path)
43
-
44
- # Check if the right file's already there
45
- if File.exist?(output_filename) && File.mtime(output_filename) == input_file_time
46
- return
47
- end
48
-
49
- File.open(output_filename, 'w') do |f|
50
- gz = Zlib::GzipWriter.new(f, Zlib::BEST_COMPRESSION)
51
- gz.mtime = input_file_time.to_i
52
- gz.write input_file
53
- gz.close
54
- end
42
+ def self.gzip_file(path)
43
+ input_file = File.open(path, 'r').read
44
+ output_filename = path + '.gz'
45
+ input_file_time = File.mtime(path)
55
46
 
56
- # Make the file times match, both for Nginx's gzip_static extension
57
- # and so we can ID existing files. Also, so even if the GZ files are
58
- # wiped out by build --clean and recreated, we won't rsync them over
59
- # again because they'll end up with the same mtime.
60
- File.utime(File.atime(output_filename), input_file_time, output_filename)
47
+ # Check if the right file's already there
48
+ if File.exist?(output_filename) && File.mtime(output_filename) == input_file_time
49
+ return
50
+ end
61
51
 
62
- old_size = File.size(path)
63
- new_size = File.size(output_filename)
52
+ File.open(output_filename, 'w') do |f|
53
+ gz = Zlib::GzipWriter.new(f, Zlib::BEST_COMPRESSION)
54
+ gz.mtime = input_file_time.to_i
55
+ gz.write input_file
56
+ gz.close
57
+ end
64
58
 
65
- size_change_word = (old_size - new_size) > 0 ? 'smaller' : 'larger'
59
+ # Make the file times match, both for Nginx's gzip_static extension
60
+ # and so we can ID existing files. Also, so even if the GZ files are
61
+ # wiped out by build --clean and recreated, we won't rsync them over
62
+ # again because they'll end up with the same mtime.
63
+ File.utime(File.atime(output_filename), input_file_time, output_filename)
66
64
 
67
- builder.say_status :gzip, "#{output_filename} (#{number_to_human_size((old_size - new_size).abs)} #{size_change_word})"
68
- end
65
+ old_size = File.size(path)
66
+ new_size = File.size(output_filename)
67
+
68
+ [output_filename, old_size, new_size]
69
69
  end
70
70
  end
71
71
  end
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
24
24
  s.add_dependency("compass", [">= 0.12.2"])
25
25
  s.add_dependency("coffee-script", ["~> 2.2.0"])
26
26
  s.add_dependency("coffee-script-source", ["~> 1.3.3"])
27
- s.add_dependency("execjs", ["~> 1.3.2"])
27
+ s.add_dependency("execjs", ["~> 1.4.0"])
28
28
  s.add_dependency("maruku", ["~> 0.6.0"])
29
29
  s.add_dependency("i18n", ["~> 0.6.0"])
30
30
  s.add_dependency("padrino-helpers", ["0.10.7"])
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: middleman-more
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0.rc.4
5
- prerelease: 6
4
+ version: 3.0.0
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Thomas Reynolds
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-07-04 00:00:00.000000000 Z
13
+ date: 2012-07-09 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: middleman-core
@@ -19,7 +19,7 @@ dependencies:
19
19
  requirements:
20
20
  - - '='
21
21
  - !ruby/object:Gem::Version
22
- version: 3.0.0.rc.4
22
+ version: 3.0.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -27,7 +27,7 @@ dependencies:
27
27
  requirements:
28
28
  - - '='
29
29
  - !ruby/object:Gem::Version
30
- version: 3.0.0.rc.4
30
+ version: 3.0.0
31
31
  - !ruby/object:Gem::Dependency
32
32
  name: uglifier
33
33
  requirement: !ruby/object:Gem::Requirement
@@ -131,7 +131,7 @@ dependencies:
131
131
  requirements:
132
132
  - - ~>
133
133
  - !ruby/object:Gem::Version
134
- version: 1.3.2
134
+ version: 1.4.0
135
135
  type: :runtime
136
136
  prerelease: false
137
137
  version_requirements: !ruby/object:Gem::Requirement
@@ -139,7 +139,7 @@ dependencies:
139
139
  requirements:
140
140
  - - ~>
141
141
  - !ruby/object:Gem::Version
142
- version: 1.3.2
142
+ version: 1.4.0
143
143
  - !ruby/object:Gem::Dependency
144
144
  name: maruku
145
145
  requirement: !ruby/object:Gem::Requirement
@@ -604,16 +604,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
604
604
  version: '0'
605
605
  segments:
606
606
  - 0
607
- hash: 4292106129124880582
607
+ hash: -34936377537429209
608
608
  required_rubygems_version: !ruby/object:Gem::Requirement
609
609
  none: false
610
610
  requirements:
611
- - - ! '>'
611
+ - - ! '>='
612
612
  - !ruby/object:Gem::Version
613
- version: 1.3.1
613
+ version: '0'
614
+ segments:
615
+ - 0
616
+ hash: -34936377537429209
614
617
  requirements: []
615
618
  rubyforge_project:
616
- rubygems_version: 1.8.23
619
+ rubygems_version: 1.8.24
617
620
  signing_key:
618
621
  specification_version: 3
619
622
  summary: Hand-crafted frontend development