jbundle 0.0.5 → 0.0.6
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.
- data/Gemfile.lock +1 -1
- data/README.md +16 -1
- data/lib/jbundle/config.rb +7 -2
- data/lib/jbundle/version.rb +1 -1
- data/lib/jbundle/writer.rb +5 -1
- data/lib/jbundle.rb +7 -1
- data/spec/JFile +12 -1
- data/spec/jbundle_spec.rb +5 -0
- data/spec/test_src/foo.txt +1 -0
- metadata +4 -3
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -91,7 +91,7 @@ You can add configuration in a Jfile in the root of your project.
|
|
91
91
|
file 'page.html'
|
92
92
|
|
93
93
|
filter do |src, config|
|
94
|
-
src.gsub! /<VERSION>/, config.version
|
94
|
+
src.gsub! /<VERSION>/, config.version.to_s
|
95
95
|
end
|
96
96
|
|
97
97
|
target_dir 'dist'
|
@@ -100,6 +100,21 @@ Then you can bundle everything up with the command line tool
|
|
100
100
|
|
101
101
|
$ jbundle
|
102
102
|
|
103
|
+
You can run arbitrary code after writing all versioned files by registering an after_write block in your JFile. The following example copies a .swf file from the src dir to all versioned directories
|
104
|
+
|
105
|
+
after_write do |config|
|
106
|
+
|
107
|
+
config.version.releaseable.each do |version|
|
108
|
+
from = "#{config.src_dir}/foo.swf"
|
109
|
+
to = "#{config.target_dir}/#{version}/foo.swf"
|
110
|
+
puts "copying #{to}"
|
111
|
+
FileUtils.cp(from, to)
|
112
|
+
end
|
113
|
+
|
114
|
+
end
|
115
|
+
|
116
|
+
config.version.releaseble returns an array with with all created versions (ie. ['1.6.1', '1.6'] or just ['1.6.1-pre'] for prereleases).
|
117
|
+
|
103
118
|
## Pre-releases
|
104
119
|
|
105
120
|
If you want a prerelease not to overwrite the previous point release, suffix it with "-pre", as in:
|
data/lib/jbundle/config.rb
CHANGED
@@ -2,16 +2,17 @@ module JBundle
|
|
2
2
|
|
3
3
|
class Config
|
4
4
|
|
5
|
-
attr_reader :bundles, :files, :
|
5
|
+
attr_reader :bundles, :files, :filters, :after_write_blocks
|
6
6
|
|
7
7
|
def initialize
|
8
8
|
@bundles = []
|
9
9
|
@files = []
|
10
10
|
@filters = []
|
11
|
+
@after_write_blocks = []
|
11
12
|
end
|
12
13
|
|
13
14
|
def version(v = nil)
|
14
|
-
@version = v if v
|
15
|
+
@version = JBundle::Version.new(v) if v
|
15
16
|
@version
|
16
17
|
end
|
17
18
|
|
@@ -43,6 +44,10 @@ module JBundle
|
|
43
44
|
filters << block
|
44
45
|
end
|
45
46
|
|
47
|
+
def after_write(&block)
|
48
|
+
after_write_blocks << block
|
49
|
+
end
|
50
|
+
|
46
51
|
def bundles_and_files
|
47
52
|
@bundles + @files
|
48
53
|
end
|
data/lib/jbundle/version.rb
CHANGED
data/lib/jbundle/writer.rb
CHANGED
@@ -22,6 +22,10 @@ module JBundle
|
|
22
22
|
def to_s
|
23
23
|
full
|
24
24
|
end
|
25
|
+
|
26
|
+
def inspect
|
27
|
+
"[JBundle::Version] #{full}"
|
28
|
+
end
|
25
29
|
|
26
30
|
protected
|
27
31
|
|
@@ -34,7 +38,7 @@ module JBundle
|
|
34
38
|
class Writer
|
35
39
|
|
36
40
|
def initialize(compiler, version, target_dir)
|
37
|
-
@compiler, @version, @target_dir = compiler,
|
41
|
+
@compiler, @version, @target_dir = compiler, version, target_dir
|
38
42
|
@out = []
|
39
43
|
end
|
40
44
|
|
data/lib/jbundle.rb
CHANGED
@@ -34,9 +34,11 @@ module JBundle
|
|
34
34
|
end
|
35
35
|
|
36
36
|
def write!
|
37
|
-
output.map do |compiler|
|
37
|
+
out = output.map do |compiler|
|
38
38
|
Writer.new(compiler, config.version, config.target_dir || './dist').write
|
39
39
|
end.flatten
|
40
|
+
run_after_write unless config.after_write_blocks.empty?
|
41
|
+
out
|
40
42
|
end
|
41
43
|
|
42
44
|
def build(name)
|
@@ -51,6 +53,10 @@ module JBundle
|
|
51
53
|
config.instance_eval( ::File.read(file), file )
|
52
54
|
end
|
53
55
|
|
56
|
+
def run_after_write
|
57
|
+
config.after_write_blocks.each {|block| block.call(config)}
|
58
|
+
end
|
59
|
+
|
54
60
|
end
|
55
61
|
|
56
62
|
self.logger = lambda {|msg| puts "#{msg}\n"}
|
data/spec/JFile
CHANGED
@@ -19,5 +19,16 @@ file 'file4.js'
|
|
19
19
|
file 'text.txt'
|
20
20
|
|
21
21
|
filter do |src, config|
|
22
|
-
src.gsub!(/<VERSION>/, config.version)
|
22
|
+
src.gsub!(/<VERSION>/, config.version.full)
|
23
|
+
end
|
24
|
+
|
25
|
+
after_write do |config|
|
26
|
+
|
27
|
+
config.version.releaseable.each do |v|
|
28
|
+
from = "#{config.src_dir}/foo.txt"
|
29
|
+
to = "#{config.target_dir}/#{v}/foo.txt"
|
30
|
+
puts "copying #{to}"
|
31
|
+
FileUtils.cp(from, to)
|
32
|
+
end
|
33
|
+
|
23
34
|
end
|
data/spec/jbundle_spec.rb
CHANGED
@@ -66,6 +66,11 @@ describe "JBundle" do
|
|
66
66
|
File.exist?(DIST + '/1.6/text.min.txt').should be_false
|
67
67
|
end
|
68
68
|
|
69
|
+
it 'should have run after_write block' do
|
70
|
+
File.exist?(DIST + '/1.6.1/foo.txt').should be_true
|
71
|
+
File.exist?(DIST + '/1.6/foo.txt').should be_true
|
72
|
+
end
|
73
|
+
|
69
74
|
it 'should return a list of files written' do
|
70
75
|
@written_files.should == [
|
71
76
|
DIST + '/1.6.1/foo.js',
|
@@ -0,0 +1 @@
|
|
1
|
+
# This file should just be copied, not processed nor minified
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jbundle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 6
|
10
|
+
version: 0.0.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ismael Celis
|
@@ -96,6 +96,7 @@ files:
|
|
96
96
|
- spec/test_src/file2.js
|
97
97
|
- spec/test_src/file3.js
|
98
98
|
- spec/test_src/file4.js
|
99
|
+
- spec/test_src/foo.txt
|
99
100
|
- spec/test_src/license.txt
|
100
101
|
- spec/test_src/text.txt
|
101
102
|
has_rdoc: true
|