linner 0.1.3 → 0.1.4

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