pannier 0.3.0 → 0.4.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.
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