trackman 0.6.9 → 0.6.10
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/trackman/assets/asset.rb +7 -5
- data/lib/trackman/assets/remote_asset.rb +1 -2
- data/lib/trackman/components/diffable.rb +19 -1
- data/lib/trackman/version.rb +1 -1
- data/spec/asset_all_spec.rb +9 -9
- data/spec/asset_spec.rb +7 -0
- data/spec/composite_asset_spec.rb +2 -1
- data/spec/css_asset_spec.rb +7 -7
- data/spec/html_asset_spec.rb +10 -10
- data/spec/rails2311/first_push_spec.rb +2 -1
- data/spec/remote_asset_spec.rb +2 -2
- metadata +1 -1
@@ -8,7 +8,6 @@ module Trackman
|
|
8
8
|
def initialize attributes = {}
|
9
9
|
@assets = []
|
10
10
|
|
11
|
-
|
12
11
|
self.path = attributes[:path]
|
13
12
|
self.virtual_path = attributes[:virtual_path]
|
14
13
|
end
|
@@ -16,14 +15,17 @@ module Trackman
|
|
16
15
|
attr_accessor :virtual_path
|
17
16
|
attr_reader :path, :assets
|
18
17
|
|
19
|
-
def to_remote
|
20
|
-
RemoteAsset.create(:path => @path, :virtual_path => self.virtual_path)
|
18
|
+
def to_remote(id = nil)
|
19
|
+
RemoteAsset.create(:path => @path, :virtual_path => self.virtual_path, :id => id)
|
21
20
|
end
|
22
21
|
|
23
22
|
def ==(other)
|
24
23
|
return false if other.nil?
|
25
24
|
other_path = other.path.is_a?(Pathname) ? other.path : Pathname.new(other.path)
|
26
|
-
other_path.to_s == path.to_s || path.cleanpath == other_path.cleanpath
|
25
|
+
path_equal = other_path.to_s == path.to_s || path.cleanpath == other_path.cleanpath
|
26
|
+
vp_equal = virtual_path.to_s == other.virtual_path.to_s
|
27
|
+
|
28
|
+
path_equal && vp_equal
|
27
29
|
end
|
28
30
|
|
29
31
|
def <=>(another)
|
@@ -50,7 +52,7 @@ module Trackman
|
|
50
52
|
end
|
51
53
|
|
52
54
|
def to_s
|
53
|
-
"<#{self.class}
|
55
|
+
"\n<#{self.class}>:\npath='#{path}'\nfile_hash='#{file_hash}'\nvirtual_path='#{virtual_path}'"
|
54
56
|
end
|
55
57
|
|
56
58
|
def self.all
|
@@ -6,7 +6,7 @@ module Trackman
|
|
6
6
|
|
7
7
|
{
|
8
8
|
:create => to_create,
|
9
|
-
:update =>
|
9
|
+
:update => define_update(local, remote),
|
10
10
|
:delete => define_deleted(local, remote) do |a|
|
11
11
|
to_create.any?{ |c| c.path.basename == a.path.basename }
|
12
12
|
end
|
@@ -23,6 +23,24 @@ module Trackman
|
|
23
23
|
|
24
24
|
to_delete.reject{|a| a.path.to_s =~ /.html$/ }.to_a
|
25
25
|
end
|
26
|
+
|
27
|
+
def define_update local, remote
|
28
|
+
to_update = local.select do |l|
|
29
|
+
remote.any? do |r|
|
30
|
+
path_eql = a.path == s.path
|
31
|
+
hash_eql = a.file_hash == s.file_hash
|
32
|
+
vp_eql = a.virtual_path == s.virtual_path
|
33
|
+
|
34
|
+
path_eql && (!hash_eql || !vp_eql)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
to_update.map do |a|
|
39
|
+
sibling = remote.select{|x| x.path == a.path }.first
|
40
|
+
a.to_remote(sibling.id)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
26
44
|
end
|
27
45
|
end
|
28
46
|
end
|
data/lib/trackman/version.rb
CHANGED
data/spec/asset_all_spec.rb
CHANGED
@@ -16,8 +16,8 @@ describe Trackman::Assets::Asset do
|
|
16
16
|
end
|
17
17
|
|
18
18
|
expected = [
|
19
|
-
TestAsset.create(:path => 'spec/test_data/all/1.css'),
|
20
|
-
TestAsset.create(:path => 'spec/test_data/all/2.gif'),
|
19
|
+
TestAsset.create(:path => 'spec/test_data/all/1.css', :virtual_path => '1.css'),
|
20
|
+
TestAsset.create(:path => 'spec/test_data/all/2.gif', :virtual_path => '2.gif'),
|
21
21
|
TestAsset.maintenance_page
|
22
22
|
]
|
23
23
|
|
@@ -45,9 +45,9 @@ describe Trackman::Assets::Asset do
|
|
45
45
|
end
|
46
46
|
|
47
47
|
expected = [
|
48
|
-
TestAsset.create(:path => 'spec/test_data/all/1.css'),
|
49
|
-
TestAsset.create(:path => 'spec/test_data/all/2.gif'),
|
50
|
-
TestAsset.create(:path => 'spec/test_data/all/3.js'),
|
48
|
+
TestAsset.create(:path => 'spec/test_data/all/1.css', :virtual_path => '1.css'),
|
49
|
+
TestAsset.create(:path => 'spec/test_data/all/2.gif', :virtual_path => '2.gif'),
|
50
|
+
TestAsset.create(:path => 'spec/test_data/all/3.js', :virtual_path => '3.js'),
|
51
51
|
TestAsset.maintenance_page,
|
52
52
|
TestAsset.error_page
|
53
53
|
]
|
@@ -74,8 +74,8 @@ describe Trackman::Assets::Asset do
|
|
74
74
|
end
|
75
75
|
|
76
76
|
expected = [
|
77
|
-
TestAsset.create(:path => 'spec/test_data/all/1.css'),
|
78
|
-
TestAsset.create(:path => 'spec/test_data/all/2.gif'),
|
77
|
+
TestAsset.create(:path => 'spec/test_data/all/1.css', :virtual_path => '1.css'),
|
78
|
+
TestAsset.create(:path => 'spec/test_data/all/2.gif', :virtual_path => '2.gif'),
|
79
79
|
TestAsset.maintenance_page,
|
80
80
|
TestAsset.error_page
|
81
81
|
]
|
@@ -108,7 +108,7 @@ describe Trackman::Assets::Asset do
|
|
108
108
|
end
|
109
109
|
end
|
110
110
|
|
111
|
-
expected = [TestAsset.create(:path => 'spec/test_data/external_paths/1.css'), TestAsset.maintenance_page]
|
111
|
+
expected = [TestAsset.create(:path => 'spec/test_data/external_paths/1.css', :virtual_path => '1.css'), TestAsset.maintenance_page]
|
112
112
|
|
113
113
|
TestAsset.all.should eq(expected)
|
114
114
|
end
|
@@ -129,7 +129,7 @@ describe Trackman::Assets::Asset do
|
|
129
129
|
end
|
130
130
|
end
|
131
131
|
|
132
|
-
expected = [TestAsset.create(:path => 'spec/test_data/external_paths/1.css'), TestAsset.maintenance_page]
|
132
|
+
expected = [TestAsset.create(:path => 'spec/test_data/external_paths/1.css', :virtual_path => '1.css'), TestAsset.maintenance_page]
|
133
133
|
TestAsset.all.should eq(expected)
|
134
134
|
end
|
135
135
|
end
|
data/spec/asset_spec.rb
CHANGED
@@ -26,6 +26,13 @@ describe Trackman::Assets::Asset do
|
|
26
26
|
|
27
27
|
asset1.should == asset2
|
28
28
|
end
|
29
|
+
|
30
|
+
it "is not equal if the virtual path is different" do
|
31
|
+
asset1 = RemoteAsset.create(:path => 'same/path', :virtual_path => '/different/virtual/path')
|
32
|
+
asset2 = RemoteAsset.create(:path => 'same/path', :virtual_path => 'different/virtual/path')
|
33
|
+
|
34
|
+
asset1.should_not == asset2
|
35
|
+
end
|
29
36
|
|
30
37
|
describe "#data" do
|
31
38
|
it "returns content of the file specified by path" do
|
@@ -22,9 +22,10 @@ describe Trackman::Assets::CompositeAsset do
|
|
22
22
|
before :each do
|
23
23
|
@composite = TestComposite.new
|
24
24
|
end
|
25
|
+
|
25
26
|
it "has children" do
|
26
27
|
asset = Asset.create(:path => 'spec/test_data/css/with-asset.css')
|
27
|
-
asset.assets.should == [Asset.create(:path => 'spec/test_data/css/imported.css')]
|
28
|
+
asset.assets.should == [Asset.create(:path => 'spec/test_data/css/imported.css', :virtual_path => 'imported.css')]
|
28
29
|
end
|
29
30
|
|
30
31
|
it "removes the translated assets that are nil" do
|
data/spec/css_asset_spec.rb
CHANGED
@@ -4,14 +4,14 @@ describe CssAsset do
|
|
4
4
|
it "returns its assets when it has import in it" do
|
5
5
|
asset = Asset.create(:path => 'spec/test_data/css/with-asset.css')
|
6
6
|
|
7
|
-
asset.assets.should == [Asset.create(:path => 'spec/test_data/css/imported.css')]
|
7
|
+
asset.assets.should == [Asset.create(:path => 'spec/test_data/css/imported.css', :virtual_path => 'imported.css')]
|
8
8
|
end
|
9
9
|
|
10
10
|
it "returns multiple assets when it has multiple imports" do
|
11
11
|
actual = Asset.create(:path => 'spec/test_data/css/with-multiple-assets.css')
|
12
12
|
expected = [
|
13
|
-
Asset.create(:path => 'spec/test_data/css/imported.css'),
|
14
|
-
Asset.create(:path => 'spec/test_data/css/imported2.css')
|
13
|
+
Asset.create(:path => 'spec/test_data/css/imported.css', :virtual_path => 'imported.css'),
|
14
|
+
Asset.create(:path => 'spec/test_data/css/imported2.css', :virtual_path => 'imported2.css')
|
15
15
|
]
|
16
16
|
|
17
17
|
actual.assets.should == expected
|
@@ -19,7 +19,7 @@ describe CssAsset do
|
|
19
19
|
|
20
20
|
it "returns an image if it is within the css" do
|
21
21
|
actual = Asset.create(:path => 'spec/test_data/css/image/with-image.css')
|
22
|
-
expected = [ Asset.create(:path => 'spec/test_data/css/image/riding-you.jpg')]
|
22
|
+
expected = [ Asset.create(:path => 'spec/test_data/css/image/riding-you.jpg', :virtual_path => 'riding-you.jpg')]
|
23
23
|
|
24
24
|
actual.assets.should == expected
|
25
25
|
end
|
@@ -27,9 +27,9 @@ describe CssAsset do
|
|
27
27
|
it "returns all recursive css imports and images under the css file" do
|
28
28
|
expected =
|
29
29
|
[
|
30
|
-
Asset.create(:path => 'spec/test_data/css/recursive/imported-lvl2.css'),
|
31
|
-
Asset.create(:path => 'spec/test_data/css/recursive/imported-lvl3.css'),
|
32
|
-
Asset.create(:path => 'spec/test_data/css/recursive/riding-you.jpg')
|
30
|
+
Asset.create(:path => 'spec/test_data/css/recursive/imported-lvl2.css', :virtual_path => 'imported-lvl2.css'),
|
31
|
+
Asset.create(:path => 'spec/test_data/css/recursive/imported-lvl3.css', :virtual_path => 'imported-lvl3.css'),
|
32
|
+
Asset.create(:path => 'spec/test_data/css/recursive/riding-you.jpg', :virtual_path => 'riding-you.jpg')
|
33
33
|
]
|
34
34
|
asset = Asset.create(:path => 'spec/test_data/css/recursive/imported-recursive.css')
|
35
35
|
actual = asset.assets
|
data/spec/html_asset_spec.rb
CHANGED
@@ -5,10 +5,10 @@ describe Trackman::Assets::HtmlAsset do
|
|
5
5
|
asset = Asset.create(:path => 'spec/test_data/sample.html')
|
6
6
|
|
7
7
|
expected = [
|
8
|
-
'spec/test_data/test1.jpeg',
|
9
|
-
'spec/test_data/test2.png',
|
10
|
-
'spec/test_data/test3.gif'
|
11
|
-
]
|
8
|
+
Asset.create(:path => 'spec/test_data/test1.jpeg', :virtual_path => 'test1.jpeg'),
|
9
|
+
Asset.create(:path => 'spec/test_data/test2.png', :virtual_path => 'test2.png'),
|
10
|
+
Asset.create(:path => 'spec/test_data/test3.gif', :virtual_path => 'test3.gif')
|
11
|
+
]
|
12
12
|
|
13
13
|
actual = asset.assets.select{|a| !(['.css', '.js'].include?(a.path.extname)) }
|
14
14
|
|
@@ -19,8 +19,8 @@ describe Trackman::Assets::HtmlAsset do
|
|
19
19
|
it "should contains every js within the html as assets" do
|
20
20
|
asset = Asset.create(:path => 'spec/test_data/sample.html')
|
21
21
|
|
22
|
-
expected = ['a', 'b', 'c'].map{|x| Asset.create(:path =>"spec/test_data/#{x}.js") }
|
23
|
-
|
22
|
+
expected = ['a', 'b', 'c'].map{|x| Asset.create(:path =>"spec/test_data/#{x}.js", :virtual_path => "#{x}.js") }
|
23
|
+
|
24
24
|
actual = asset.assets.select{|a| a.path.extname == '.js'}
|
25
25
|
|
26
26
|
actual.should eq(expected)
|
@@ -29,7 +29,7 @@ describe Trackman::Assets::HtmlAsset do
|
|
29
29
|
it "should contains every css within the html as assets" do
|
30
30
|
asset = Asset.create(:path => 'spec/test_data/sample.html')
|
31
31
|
|
32
|
-
expected = ['y', 'z'].map{|x| Asset.create(:path => "spec/test_data/#{x}.css") }
|
32
|
+
expected = ['y', 'z'].map{|x| Asset.create(:path => "spec/test_data/#{x}.css", :virtual_path => "#{x}.css") }
|
33
33
|
|
34
34
|
actual = asset.assets.select{|a| a.path.extname == '.css'}
|
35
35
|
|
@@ -38,9 +38,9 @@ describe Trackman::Assets::HtmlAsset do
|
|
38
38
|
|
39
39
|
it "returns all recursive css imports and images under the html file that contains css" do
|
40
40
|
expected = [
|
41
|
-
CssAsset.new(:path => 'spec/test_data/css/recursive/imported-lvl2.css'),
|
42
|
-
CssAsset.new(:path => 'spec/test_data/css/recursive/imported-lvl3.css'),
|
43
|
-
Asset.new(:path => 'spec/test_data/css/recursive/riding-you.jpg')
|
41
|
+
CssAsset.new(:path => 'spec/test_data/css/recursive/imported-lvl2.css', :virtual_path => "imported-lvl2.css"),
|
42
|
+
CssAsset.new(:path => 'spec/test_data/css/recursive/imported-lvl3.css', :virtual_path => "imported-lvl3.css"),
|
43
|
+
Asset.new(:path => 'spec/test_data/css/recursive/riding-you.jpg', :virtual_path => "riding-you.jpg")
|
44
44
|
]
|
45
45
|
asset = Asset.create(:path => 'spec/test_data/css/recursive/html-with-css.html')
|
46
46
|
|
@@ -3,7 +3,7 @@ require 'helpers/app_creator'
|
|
3
3
|
require 'helpers/fakable_pathman_tester'
|
4
4
|
require 'helpers/act_like_rails2311'
|
5
5
|
|
6
|
-
describe '
|
6
|
+
describe 'sync' do
|
7
7
|
before :all do
|
8
8
|
FakablePathManTester.switch_on 'spec/fixtures/rails2311/fully-loaded/'
|
9
9
|
ActLikeRails2311.switch_on
|
@@ -25,6 +25,7 @@ describe 'full path' do
|
|
25
25
|
remote = RemoteAsset.all
|
26
26
|
|
27
27
|
remote.count.should == 8
|
28
|
+
|
28
29
|
local.each{|l| remote.should include(l) }
|
29
30
|
end
|
30
31
|
end
|
data/spec/remote_asset_spec.rb
CHANGED
@@ -14,7 +14,7 @@ describe Trackman::Assets::RemoteAsset do
|
|
14
14
|
end
|
15
15
|
|
16
16
|
it "creates assets on the server" do
|
17
|
-
expected = RemoteAsset.create(:path => 'spec/test_data/test2.png')
|
17
|
+
expected = RemoteAsset.create(:path => 'spec/test_data/test2.png', :virtual_path => 'spec/test_data/test2.png')
|
18
18
|
expected.insert
|
19
19
|
|
20
20
|
actual = RemoteAsset.find expected.id
|
@@ -48,7 +48,7 @@ describe Trackman::Assets::RemoteAsset do
|
|
48
48
|
end
|
49
49
|
|
50
50
|
it "updates assets on the server" do
|
51
|
-
expected = RemoteAsset.create(:path => 'spec/test_data/y.css')
|
51
|
+
expected = RemoteAsset.create(:path => 'spec/test_data/y.css', :virtual_path => 'spec/test_data/y.css')
|
52
52
|
|
53
53
|
expected.insert
|
54
54
|
|