pannier 0.3.0 → 0.4.0

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: 73f6eeb9126643df23c6620c70188f9d5cc1ac3d
4
- data.tar.gz: 1f32b050411a85102b150dc6a12d76e0719d86da
3
+ metadata.gz: 26de5e4810d23907a4665742c191d1e9be933e0c
4
+ data.tar.gz: ea743f7ab6f193646789cc8123ff4ea923f6025d
5
5
  SHA512:
6
- metadata.gz: f1fb482e967a5112f6465eb2445e521b205901907a723c0606f5f452c1b28d31caa668e74402870f60f5e87eeba36a2a365de26f06bd5cd937988931f6cc698b
7
- data.tar.gz: f3396f40dec19c4555ab9ece93bbc81f36599725b5b79e2a70b69cbd9076c3bdbd548659093481eef72bc4440db007e8b92770f218e9eaa72fa2ae468410b69b
6
+ metadata.gz: b5dffb59f31f6f4bd5991bfe3e8b99d94bd8199e47f580b124c351c7241a31a1ed7e7f913225031f996076006c8addfa4b09823439fcdedd7f0ab89d7dd55f26
7
+ data.tar.gz: deb929cceb6d85f0a97ea279746957c8e6cd3483e06b99462a61100426e71f0c6e270488ca34cc1c034a8ef3472e42f89898aecb4541c4fc85aa1774c4392c7c
@@ -11,7 +11,7 @@ module Pannier
11
11
  extend DSL
12
12
 
13
13
  attr_reader :env, :input_path, :output_path,
14
- :behaviors, :packages
14
+ :behaviors, :packages, :logger
15
15
 
16
16
  def initialize(env_name = 'development')
17
17
  @env = Environment.new(env_name)
@@ -42,14 +42,9 @@ module Pannier
42
42
  @manifest_writer ||= ManifestWriter.new(self, @env)
43
43
  end
44
44
 
45
- def log(messages, options = {})
46
- return unless @logger
47
- indent = options.fetch(:indent) { 0 }
48
- messages = Array(messages)
49
- messages.each do |msg|
50
- indent.times { msg.prepend(' ') }
51
- @logger.debug(msg)
52
- end
45
+ def clobber!
46
+ manifest_writer.clobber!(@input_path)
47
+ @packages.each(&:clobber!)
53
48
  end
54
49
 
55
50
  def process!
@@ -13,6 +13,18 @@ module Pannier
13
13
  public_send(command, *opts)
14
14
  end
15
15
 
16
+ def clobber(*opts)
17
+ opts = Slop.parse(opts, :help => true, :ignore_case => true) do
18
+ banner 'Usage: pannier clobber [options]'
19
+ on :c, :config, 'Config file', :argument => :optional, :default => '.assets.rb'
20
+ on :e, :env, 'Host environment', :argument => :optional, :default => 'development'
21
+ end
22
+
23
+ app = load_app(opts)
24
+ app.clobber!
25
+ exit
26
+ end
27
+
16
28
  def process(*opts)
17
29
  opts = Slop.parse(opts, :help => true, :ignore_case => true) do
18
30
  banner 'Usage: pannier process [options]'
@@ -21,11 +33,7 @@ module Pannier
21
33
  on :a, :assets, 'Asset paths', :argument => :optional, :as => Array
22
34
  end
23
35
 
24
- config_path = File.expand_path(opts[:config])
25
- err(no_config_msg(config_path)) && abort unless File.exists?(config_path)
26
-
27
- app = Pannier.load(config_path, opts[:env])
28
-
36
+ app = load_app(opts)
29
37
  if opts.assets?
30
38
  paths = opts[:assets].map { |path| File.expand_path(path) }
31
39
  app.process_owners!(*paths)
@@ -50,6 +58,12 @@ module Pannier
50
58
 
51
59
  private
52
60
 
61
+ def load_app(opts)
62
+ config_path = File.expand_path(opts[:config])
63
+ err(no_config_msg(config_path)) && abort unless File.exists?(config_path)
64
+ Pannier.load(config_path, opts[:env])
65
+ end
66
+
53
67
  def no_config_msg(path)
54
68
  <<-txt
55
69
  Pannier config file not found at #{path}.
@@ -59,6 +73,7 @@ module Pannier
59
73
  def usage_msg
60
74
  <<-txt
61
75
  Available commands (run any command with --help for details):
76
+ pannier clobber Remove processed assets
62
77
  pannier process Process assets
63
78
  pannier usage Show this list of commands
64
79
  txt
@@ -5,16 +5,10 @@ module Pannier
5
5
 
6
6
  def initialize(*args)
7
7
  super
8
- @formatter = _formatter
9
- end
10
-
11
- private
12
-
13
- def _formatter
14
- proc do |severity, time, progname, msg|
15
- msg + "\n"
16
- end
8
+ @formatter = ->(_, _, _, message) do
9
+ message + "\n"
17
10
  end
11
+ end
18
12
 
19
13
  end
20
14
  end
@@ -0,0 +1,36 @@
1
+ module Pannier
2
+ class Logger
3
+ class PackageLogger
4
+
5
+ def initialize(logger, package)
6
+ @logger, @package = logger, package
7
+ end
8
+
9
+ def wrap(&block)
10
+ log_input!
11
+ block.call
12
+ log_output!
13
+ end
14
+
15
+ def log!(messages, indent = 0)
16
+ return unless @logger
17
+ Array(messages).each do |msg|
18
+ indent.times { msg.prepend(' ') }
19
+ @logger.info(msg)
20
+ end
21
+ end
22
+
23
+ def log_input!
24
+ log!("Package #{@package.name.inspect}")
25
+ log!('Input ->', 2)
26
+ log!(@package.input_assets.map(&:path), 4)
27
+ end
28
+
29
+ def log_output!
30
+ log!('Output ->', 2)
31
+ log!(@package.output_assets.map(&:path), 4)
32
+ end
33
+
34
+ end
35
+ end
36
+ end
@@ -20,6 +20,11 @@ module Pannier
20
20
  MultiJson.dump(@report.tree)
21
21
  end
22
22
 
23
+ def clobber!(dir_path)
24
+ path = File.join(*[dir_path, basename].compact)
25
+ FileUtils.rm_f(path)
26
+ end
27
+
23
28
  def write!(dir_path)
24
29
  @report.build!
25
30
  FileUtils.mkdir_p(dir_path)
@@ -1,3 +1,4 @@
1
+ require 'fileutils'
1
2
  require 'ostruct'
2
3
  require 'pathname'
3
4
  require 'set'
@@ -6,6 +7,7 @@ require 'pannier/asset'
6
7
  require 'pannier/concatenator'
7
8
  require 'pannier/dsl'
8
9
  require 'pannier/errors'
10
+ require 'pannier/logger/package_logger'
9
11
 
10
12
  module Pannier
11
13
  class Package
@@ -63,8 +65,17 @@ module Pannier
63
65
  @input_assets.any? { |a| paths.include?(a.path) }
64
66
  end
65
67
 
68
+ def package_logger
69
+ @package_logger ||= Logger::PackageLogger.new(@app.logger, self)
70
+ end
71
+
72
+ def clobber!
73
+ copy!
74
+ FileUtils.rm_f(@output_assets.map(&:path))
75
+ end
76
+
66
77
  def process!
67
- process_with_logs! do
78
+ package_logger.wrap do
68
79
  copy!
69
80
  !@processors.empty? && @processors.each do |instructions|
70
81
  send(*instructions)
@@ -140,20 +151,5 @@ module Pannier
140
151
  end
141
152
 
142
153
  end
143
-
144
- private
145
-
146
- def process_with_logs!(&block)
147
- @app.log("Package #{name.inspect}", :indent => 2)
148
- @app.log('-> Input', :indent => 4)
149
- @app.log(@input_assets.map(&:path), :indent => 6)
150
-
151
- block.call
152
-
153
- @app.log('-> Output', :indent => 4)
154
- @app.log(@output_assets.map(&:path), :indent => 6)
155
- @app.log("\n")
156
- end
157
-
158
154
  end
159
155
  end
@@ -1,3 +1,3 @@
1
1
  module Pannier
2
- VERSION = '0.3.0'
2
+ VERSION = '0.4.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pannier
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe Corcoran
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-10 00:00:00.000000000 Z
11
+ date: 2014-04-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -116,7 +116,7 @@ dependencies:
116
116
  requirements:
117
117
  - - "~>"
118
118
  - !ruby/object:Gem::Version
119
- version: '0.14'
119
+ version: '1.0'
120
120
  - - ">="
121
121
  - !ruby/object:Gem::Version
122
122
  version: 0.14.0
@@ -126,7 +126,7 @@ dependencies:
126
126
  requirements:
127
127
  - - "~>"
128
128
  - !ruby/object:Gem::Version
129
- version: '0.14'
129
+ version: '1.0'
130
130
  - - ">="
131
131
  - !ruby/object:Gem::Version
132
132
  version: 0.14.0
@@ -214,6 +214,7 @@ files:
214
214
  - lib/pannier/errors.rb
215
215
  - lib/pannier/file_handler.rb
216
216
  - lib/pannier/logger.rb
217
+ - lib/pannier/logger/package_logger.rb
217
218
  - lib/pannier/manifest_writer.rb
218
219
  - lib/pannier/mounted.rb
219
220
  - lib/pannier/mounted/app.rb