linner 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 59bef00386f78c40d3d65b73210508c6655fa56d
4
- data.tar.gz: b64d9317df2b2c194bd9706d180df5fb10bfd0f6
3
+ metadata.gz: 4f49490c9d7de60f45fc468071d82bb18be42262
4
+ data.tar.gz: 4fad0cab96426cf961a673cb59d6b11cbf04d728
5
5
  SHA512:
6
- metadata.gz: d603e4a09eb95a9216a2bbb45053b8b793a269217ccc4c1d0fc4170d0806145fbf5505abbbc0114e1fe71194c3c58a769f83c241237bfe86b8e3e62c0309c360
7
- data.tar.gz: 4f7dc261117e786f902800ee729668eefb9b428abf4d25f4ec48a10cabffb68efbb5ce868798920136c5b5e32bb795ee7351e5190dba206137b50fd0cf52e692
6
+ metadata.gz: 3786d46e3bbd50ad28759e4bfc70792f9f79b4442125e23a7227e0bf7161ecdf91f7fc6b5dff47a993f34d8e33d7d4dbf4ee2221213305043bd752c57e5a2a83
7
+ data.tar.gz: 45b1a9103596414b330cb783fe3ae7bba341026aa6c09737f495d04a881e5557966d38a7a8bbbfa527d02e086ce385eeceeefdfbad59f6fdb65b469b5cf1cf39
@@ -15,6 +15,10 @@ module Linner
15
15
  @root ||= Pathname('.').expand_path
16
16
  end
17
17
 
18
+ def cache
19
+ @cache ||= {}
20
+ end
21
+
18
22
  def environment
19
23
  @env ||= Environment.new root.join("config.yml")
20
24
  end
@@ -29,32 +33,38 @@ module Linner
29
33
  private
30
34
  def concat(config)
31
35
  assets = []
32
- config["concat"].each do |dist, regex|
36
+ config["concat"].each do |dest, regex|
33
37
  Thread.new do
34
- dist = Asset.new(File.join environment.public_folder, dist)
35
- dist.content = ""
38
+ dest = Asset.new(File.join environment.public_folder, dest)
39
+ dest.content = ""
36
40
  Dir.glob(regex).uniq.sort_by_before_and_after(config["order"]["before"], config["order"]["after"]).each do |m|
37
41
  asset = Asset.new(m)
38
42
  content = asset.content
39
43
  if asset.wrappable?
40
44
  content = asset.wrap
41
45
  end
42
- dist.content << content
46
+ dest.content << content
43
47
  end
44
- assets << dist
48
+ assets << dest
45
49
  end.join
46
50
  end
47
51
  assets
48
52
  end
49
53
 
50
54
  def copy(config)
51
- config["copy"].each do |dist, regex|
55
+ config["copy"].each do |dest, regex|
52
56
  Thread.new do
53
57
  Dir.glob(regex).each do |path|
54
- asset = Asset.new(path)
55
- asset.path = File.join(environment.public_folder, dist, asset.logical_path)
56
- next if File.exist?(asset.path) and File.identical?(path, asset.path)
57
- asset.write
58
+ mtime = File.mtime(path).to_i
59
+ if cache[path]
60
+ next if mtime == cache[path]
61
+ else
62
+ cache[path] = mtime
63
+ logical_path = Asset.new(path).logical_path
64
+ dest_path = File.join(environment.public_folder, dest, logical_path)
65
+ FileUtils.mkdir_p File.dirname(dest_path)
66
+ FileUtils.cp_r path, dest_path
67
+ end
58
68
  end
59
69
  end.join
60
70
  end
@@ -4,11 +4,17 @@ require "listen"
4
4
  module Linner
5
5
  class Command < Thor
6
6
  include Thor::Actions
7
+ map "-v" => :version
7
8
 
8
9
  def self.source_root
9
10
  File.dirname(__FILE__)
10
11
  end
11
12
 
13
+ desc "version", "show version"
14
+ def version
15
+ puts Linner::VERSION
16
+ end
17
+
12
18
  desc "build", "build assets"
13
19
  def build
14
20
  Notifier.info do
@@ -1,5 +1,5 @@
1
1
  require "uglifier"
2
- require "yui/compressor"
2
+ require "cssminify"
3
3
 
4
4
  module Linner
5
5
  class Compressor
@@ -8,7 +8,7 @@ module Linner
8
8
  if Template.template_for_script? asset.path
9
9
  Uglifier.compile asset.content, comments: "none"
10
10
  elsif Template.template_for_style? asset.path
11
- YUI::CssCompressor.new.compress asset.content
11
+ CSSminify.new.compress asset.content
12
12
  end
13
13
  end
14
14
  end
@@ -1,3 +1,3 @@
1
1
  module Linner
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
@@ -24,8 +24,8 @@ Gem::Specification.new do |spec|
24
24
  spec.add_dependency "listen", "~> 1.2"
25
25
  spec.add_dependency "uglifier", "~> 2.1"
26
26
  spec.add_dependency "multi_json", "~> 1.7"
27
+ spec.add_dependency "cssminify", "~> 1.0.2"
27
28
  spec.add_dependency "coffee-script", "~> 2.2"
28
- spec.add_dependency "yui-compressor", "~> 0.9.6"
29
29
  spec.add_dependency "terminal-notifier", "~> 1.4"
30
30
 
31
31
  spec.add_development_dependency "rake"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: linner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Saito
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-24 00:00:00.000000000 Z
11
+ date: 2013-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -95,33 +95,33 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '1.7'
97
97
  - !ruby/object:Gem::Dependency
98
- name: coffee-script
98
+ name: cssminify
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ~>
102
102
  - !ruby/object:Gem::Version
103
- version: '2.2'
103
+ version: 1.0.2
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - ~>
109
109
  - !ruby/object:Gem::Version
110
- version: '2.2'
110
+ version: 1.0.2
111
111
  - !ruby/object:Gem::Dependency
112
- name: yui-compressor
112
+ name: coffee-script
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ~>
116
116
  - !ruby/object:Gem::Version
117
- version: 0.9.6
117
+ version: '2.2'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - ~>
123
123
  - !ruby/object:Gem::Version
124
- version: 0.9.6
124
+ version: '2.2'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: terminal-notifier
127
127
  requirement: !ruby/object:Gem::Requirement