montage 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. data/History.md +23 -0
  2. data/Rakefile +2 -4
  3. data/VERSION +1 -1
  4. data/bin/montage +11 -4
  5. data/lib/montage/commands/generate.rb +72 -11
  6. data/lib/montage/commands/init.rb +5 -11
  7. data/lib/montage/commands.rb +51 -18
  8. data/lib/montage/project.rb +54 -39
  9. data/lib/montage/source.rb +15 -44
  10. data/lib/montage/sprite.rb +25 -37
  11. data/lib/montage/sprite_definition.rb +127 -0
  12. data/lib/montage/templates/montage.yml +29 -19
  13. data/lib/montage/templates/sass_mixins.erb +1 -1
  14. data/lib/montage/templates/sources/{book.png → one/book.png} +0 -0
  15. data/lib/montage/templates/sources/{box-label.png → one/box-label.png} +0 -0
  16. data/lib/montage/templates/sources/{calculator.png → one/calculator.png} +0 -0
  17. data/lib/montage/templates/sources/{calendar-month.png → one/calendar-month.png} +0 -0
  18. data/lib/montage/templates/sources/{camera.png → one/camera.png} +0 -0
  19. data/lib/montage/templates/sources/{eraser.png → one/eraser.png} +0 -0
  20. data/lib/montage/templates/sources/two/inbox-image.png +0 -0
  21. data/lib/montage/templates/sources/two/magnet.png +0 -0
  22. data/lib/montage/templates/sources/two/newspaper.png +0 -0
  23. data/lib/montage/templates/sources/two/television.png +0 -0
  24. data/lib/montage/templates/sources/two/wand-hat.png +0 -0
  25. data/lib/montage/templates/sources/two/wooden-box-label.png +0 -0
  26. data/lib/montage.rb +10 -1
  27. data/montage.gemspec +17 -34
  28. data/spec/lib/project_helper.rb +41 -6
  29. data/spec/lib/shared_project_specs.rb +10 -11
  30. data/spec/montage/commands/generate_spec.rb +86 -132
  31. data/spec/montage/commands/init_spec.rb +18 -43
  32. data/spec/montage/project_spec.rb +77 -63
  33. data/spec/montage/sass_builder_spec.rb +33 -57
  34. data/spec/montage/source_spec.rb +10 -31
  35. data/spec/montage/sprite_definition_spec.rb +361 -0
  36. data/spec/montage/sprite_spec.rb +58 -57
  37. metadata +31 -70
  38. data/spec/fixtures/custom_dirs/montage.yml +0 -8
  39. data/spec/fixtures/default/montage.yml +0 -7
  40. data/spec/fixtures/default/public/images/sprites/src/one.png +0 -0
  41. data/spec/fixtures/default/public/images/sprites/src/three.png +0 -0
  42. data/spec/fixtures/default/public/images/sprites/src/two.png +0 -0
  43. data/spec/fixtures/directory_config/config/montage.yml +0 -5
  44. data/spec/fixtures/missing_source/montage.yml +0 -3
  45. data/spec/fixtures/missing_source_dir/montage.yml +0 -5
  46. data/spec/fixtures/root_config/montage.yml +0 -5
  47. data/spec/fixtures/root_config/public/images/sprites/src/source_one.png +0 -0
  48. data/spec/fixtures/root_config/public/images/sprites/src/source_three.jpg +0 -0
  49. data/spec/fixtures/root_config/public/images/sprites/src/source_two +0 -0
  50. data/spec/fixtures/sources/hundred.png +0 -0
  51. data/spec/fixtures/sources/mammoth.png +0 -0
  52. data/spec/fixtures/sources/other.png +0 -0
  53. data/spec/fixtures/sources/twenty.png +0 -0
  54. data/spec/fixtures/subdirs/montage.yml +0 -5
  55. data/spec/fixtures/subdirs/sub/sub/keep +0 -0
  56. data/spec/lib/fixtures.rb +0 -7
@@ -3,6 +3,52 @@ require File.expand_path('../../spec_helper', __FILE__)
3
3
  describe Montage::Sprite do
4
4
  subject { Montage::Sprite }
5
5
 
6
+ # --- initialization -------------------------------------------------------
7
+
8
+ describe 'when initialized' do
9
+ before(:all) do
10
+ @helper = Montage::Spec::ProjectHelper.new
11
+ @helper.write_simple_config
12
+ end
13
+
14
+ it 'should set the name' do
15
+ sprite = Montage::Sprite.new('wheee', [], '_', @helper.project)
16
+ sprite.name.should == 'wheee'
17
+ end
18
+
19
+ it 'should set the padding' do
20
+ sprite = Montage::Sprite.new('_', [], '_', @helper.project)
21
+ sprite.padding.should == @helper.project.padding
22
+ end
23
+
24
+ it 'should set the save_path' do
25
+ sprite = Montage::Sprite.new('_', [],
26
+ @helper.path_to_file('bye'), @helper.project)
27
+
28
+ sprite.save_path.should == @helper.path_to_file('bye')
29
+ end
30
+
31
+ it 'should set the url' do
32
+ sprite = Montage::Sprite.new('_', [], '_', @helper.project)
33
+ sprite.url.should == @helper.project.paths.url
34
+ end
35
+
36
+ describe 'with custom options' do
37
+ before(:all) do
38
+ @sprite = Montage::Sprite.new('wheee', [], '_', @helper.project,
39
+ :padding => 50, :url => '/omicron_persei_8')
40
+ end
41
+
42
+ it 'should set the custom padding' do
43
+ @sprite.padding.should == 50
44
+ end
45
+
46
+ it 'should set the url' do
47
+ @sprite.url.should == '/omicron_persei_8'
48
+ end
49
+ end
50
+ end
51
+
6
52
  # --- images ---------------------------------------------------------------
7
53
 
8
54
  it { should have_public_method_defined(:images) }
@@ -10,23 +56,17 @@ describe Montage::Sprite do
10
56
  describe '#images' do
11
57
  before(:each) do
12
58
  @helper = Montage::Spec::ProjectHelper.new
13
- @helper.write_config <<-CONFIG
14
- ---
15
- sprite_one:
16
- - one
17
- - two
18
- CONFIG
59
+ @helper.write_simple_config
19
60
 
20
- @helper.write_source('one', 100, 25)
21
- @helper.write_source('two', 100, 25)
61
+ @helper.write_source('sprite_one/one', 100, 25)
62
+ @helper.write_source('sprite_one/two', 100, 25)
22
63
 
23
64
  @sprite = @helper.project.sprite('sprite_one')
24
65
  end
25
66
 
26
67
  describe 'when the sprite contains no sources' do
27
68
  before(:each) do
28
- @sprite = Montage::Sprite.new('sprite', [],
29
- @helper.project.paths.sources)
69
+ @sprite = Montage::Sprite.new('sprite', [], 'path', @helper.project)
30
70
  end
31
71
 
32
72
  it 'should return an array' do
@@ -57,15 +97,10 @@ describe Montage::Sprite do
57
97
  describe '#position_of' do
58
98
  before(:each) do
59
99
  @helper = Montage::Spec::ProjectHelper.new
60
- @helper.write_config <<-CONFIG
61
- ---
62
- sprite_one:
63
- - one
64
- - two
65
- CONFIG
100
+ @helper.write_simple_config
66
101
 
67
- @helper.write_source('one', 100, 25)
68
- @helper.write_source('two', 100, 25)
102
+ @helper.write_source('sprite_one/one', 100, 25)
103
+ @helper.write_source('sprite_one/two', 100, 25)
69
104
 
70
105
  @sprite = @helper.project.sprite('sprite_one')
71
106
  end
@@ -97,56 +132,22 @@ describe Montage::Sprite do
97
132
  describe '#digest' do
98
133
  before(:each) do
99
134
  @helper = Montage::Spec::ProjectHelper.new
100
- @helper.write_config <<-CONFIG
101
- ---
102
- sprite_one:
103
- - one
104
- - two
105
-
106
- sprite_two:
107
- - three
108
- CONFIG
135
+ @helper.write_simple_config
109
136
 
110
- @helper.write_source('one', 100, 25)
111
- @helper.write_source('two', 100, 25)
112
- @helper.write_source('three', 100, 25)
137
+ @helper.write_source('sprite_one/one', 100, 25)
138
+ @helper.write_source('sprite_one/two', 100, 25)
139
+ @helper.write_source('sprite_two/three', 100, 25)
113
140
  end
114
141
 
115
142
  it 'should return a string' do
116
143
  @helper.project.sprites.first.digest.should be_a(String)
117
144
  end
118
145
 
119
- context 'when changing the source order for a sprite' do
120
- before(:each) do
121
- @sprite_one_digest = @helper.project.sprite('sprite_one').digest
122
- @sprite_two_digest = @helper.project.sprite('sprite_two').digest
123
- @helper.write_config <<-CONFIG
124
- ---
125
- sprite_one:
126
- - two
127
- - one
128
-
129
- sprite_two:
130
- - three
131
- CONFIG
132
- end
133
-
134
- it 'should return something different when it is affected' do
135
- @helper.project.sprite('sprite_one').digest.should_not ==
136
- @sprite_one_digest
137
- end
138
-
139
- it 'should return the same value when unaffected' do
140
- @helper.project.sprite('sprite_two').digest.should ==
141
- @sprite_two_digest
142
- end
143
- end # when changing the source order for a sprite
144
-
145
146
  context 'when changing the image for a source' do
146
147
  before(:each) do
147
148
  @sprite_one_digest = @helper.project.sprite('sprite_one').digest
148
149
  @sprite_two_digest = @helper.project.sprite('sprite_two').digest
149
- @helper.write_source('one', 100, 30)
150
+ @helper.write_source('sprite_one/one', 100, 30)
150
151
  end
151
152
 
152
153
  it 'should return something different when it is affected' do
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 2
8
- - 1
9
- version: 0.2.1
7
+ - 3
8
+ - 0
9
+ version: 0.3.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Anthony Williams
@@ -14,28 +14,13 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-04-08 00:00:00 +01:00
17
+ date: 2010-04-12 00:00:00 +01:00
18
18
  default_executable: montage
19
19
  dependencies:
20
- - !ruby/object:Gem::Dependency
21
- name: activesupport
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- segments:
28
- - 3
29
- - 0
30
- - 0
31
- - beta
32
- version: 3.0.0.beta
33
- type: :runtime
34
- version_requirements: *id001
35
20
  - !ruby/object:Gem::Dependency
36
21
  name: rmagick
37
22
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
23
+ requirement: &id001 !ruby/object:Gem::Requirement
39
24
  requirements:
40
25
  - - ">="
41
26
  - !ruby/object:Gem::Version
@@ -44,11 +29,11 @@ dependencies:
44
29
  - 12
45
30
  version: "2.12"
46
31
  type: :runtime
47
- version_requirements: *id002
32
+ version_requirements: *id001
48
33
  - !ruby/object:Gem::Dependency
49
34
  name: highline
50
35
  prerelease: false
51
- requirement: &id003 !ruby/object:Gem::Requirement
36
+ requirement: &id002 !ruby/object:Gem::Requirement
52
37
  requirements:
53
38
  - - ">="
54
39
  - !ruby/object:Gem::Version
@@ -57,11 +42,11 @@ dependencies:
57
42
  - 5
58
43
  version: "1.5"
59
44
  type: :runtime
60
- version_requirements: *id003
45
+ version_requirements: *id002
61
46
  - !ruby/object:Gem::Dependency
62
47
  name: rspec
63
48
  prerelease: false
64
- requirement: &id004 !ruby/object:Gem::Requirement
49
+ requirement: &id003 !ruby/object:Gem::Requirement
65
50
  requirements:
66
51
  - - ">="
67
52
  - !ruby/object:Gem::Version
@@ -71,24 +56,11 @@ dependencies:
71
56
  - 0
72
57
  version: 1.3.0
73
58
  type: :development
74
- version_requirements: *id004
75
- - !ruby/object:Gem::Dependency
76
- name: cucumber
77
- prerelease: false
78
- requirement: &id005 !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- segments:
83
- - 0
84
- - 6
85
- version: "0.6"
86
- type: :development
87
- version_requirements: *id005
59
+ version_requirements: *id003
88
60
  - !ruby/object:Gem::Dependency
89
61
  name: open4
90
62
  prerelease: false
91
- requirement: &id006 !ruby/object:Gem::Requirement
63
+ requirement: &id004 !ruby/object:Gem::Requirement
92
64
  requirements:
93
65
  - - ">="
94
66
  - !ruby/object:Gem::Version
@@ -97,11 +69,11 @@ dependencies:
97
69
  - 0
98
70
  version: "1.0"
99
71
  type: :development
100
- version_requirements: *id006
72
+ version_requirements: *id004
101
73
  - !ruby/object:Gem::Dependency
102
74
  name: haml
103
75
  prerelease: false
104
- requirement: &id007 !ruby/object:Gem::Requirement
76
+ requirement: &id005 !ruby/object:Gem::Requirement
105
77
  requirements:
106
78
  - - ">="
107
79
  - !ruby/object:Gem::Version
@@ -113,11 +85,11 @@ dependencies:
113
85
  - 1
114
86
  version: 3.0.0.beta.1
115
87
  type: :development
116
- version_requirements: *id007
88
+ version_requirements: *id005
117
89
  - !ruby/object:Gem::Dependency
118
90
  name: yard
119
91
  prerelease: false
120
- requirement: &id008 !ruby/object:Gem::Requirement
92
+ requirement: &id006 !ruby/object:Gem::Requirement
121
93
  requirements:
122
94
  - - ">="
123
95
  - !ruby/object:Gem::Version
@@ -126,7 +98,7 @@ dependencies:
126
98
  - 5
127
99
  version: "0.5"
128
100
  type: :development
129
- version_requirements: *id008
101
+ version_requirements: *id006
130
102
  description: Even Rocky had a montage.
131
103
  email: hi@antw.me
132
104
  executables:
@@ -154,36 +126,24 @@ files:
154
126
  - lib/montage/sass_builder.rb
155
127
  - lib/montage/source.rb
156
128
  - lib/montage/sprite.rb
129
+ - lib/montage/sprite_definition.rb
157
130
  - lib/montage/templates/montage.yml
158
131
  - lib/montage/templates/sass_mixins.erb
159
- - lib/montage/templates/sources/book.png
160
- - lib/montage/templates/sources/box-label.png
161
- - lib/montage/templates/sources/calculator.png
162
- - lib/montage/templates/sources/calendar-month.png
163
- - lib/montage/templates/sources/camera.png
164
- - lib/montage/templates/sources/eraser.png
132
+ - lib/montage/templates/sources/one/book.png
133
+ - lib/montage/templates/sources/one/box-label.png
134
+ - lib/montage/templates/sources/one/calculator.png
135
+ - lib/montage/templates/sources/one/calendar-month.png
136
+ - lib/montage/templates/sources/one/camera.png
137
+ - lib/montage/templates/sources/one/eraser.png
138
+ - lib/montage/templates/sources/two/inbox-image.png
139
+ - lib/montage/templates/sources/two/magnet.png
140
+ - lib/montage/templates/sources/two/newspaper.png
141
+ - lib/montage/templates/sources/two/television.png
142
+ - lib/montage/templates/sources/two/wand-hat.png
143
+ - lib/montage/templates/sources/two/wooden-box-label.png
165
144
  - lib/montage/version.rb
166
145
  - montage.gemspec
167
- - spec/fixtures/custom_dirs/montage.yml
168
- - spec/fixtures/default/montage.yml
169
- - spec/fixtures/default/public/images/sprites/src/one.png
170
- - spec/fixtures/default/public/images/sprites/src/three.png
171
- - spec/fixtures/default/public/images/sprites/src/two.png
172
- - spec/fixtures/directory_config/config/montage.yml
173
- - spec/fixtures/missing_source/montage.yml
174
- - spec/fixtures/missing_source_dir/montage.yml
175
- - spec/fixtures/root_config/montage.yml
176
- - spec/fixtures/root_config/public/images/sprites/src/source_one.png
177
- - spec/fixtures/root_config/public/images/sprites/src/source_three.jpg
178
- - spec/fixtures/root_config/public/images/sprites/src/source_two
179
- - spec/fixtures/sources/hundred.png
180
- - spec/fixtures/sources/mammoth.png
181
- - spec/fixtures/sources/other.png
182
- - spec/fixtures/sources/twenty.png
183
- - spec/fixtures/subdirs/montage.yml
184
- - spec/fixtures/subdirs/sub/sub/keep
185
146
  - spec/lib/command_runner.rb
186
- - spec/lib/fixtures.rb
187
147
  - spec/lib/have_public_method_defined.rb
188
148
  - spec/lib/project_helper.rb
189
149
  - spec/lib/shared_project_specs.rb
@@ -195,6 +155,7 @@ files:
195
155
  - spec/montage/sass_builder_spec.rb
196
156
  - spec/montage/source_spec.rb
197
157
  - spec/montage/spec/have_public_method_defined_spec.rb
158
+ - spec/montage/sprite_definition_spec.rb
198
159
  - spec/montage/sprite_spec.rb
199
160
  - spec/rcov.opts
200
161
  - spec/spec.opts
@@ -233,7 +194,6 @@ specification_version: 3
233
194
  summary: Montage
234
195
  test_files:
235
196
  - spec/lib/command_runner.rb
236
- - spec/lib/fixtures.rb
237
197
  - spec/lib/have_public_method_defined.rb
238
198
  - spec/lib/project_helper.rb
239
199
  - spec/lib/shared_project_specs.rb
@@ -245,5 +205,6 @@ test_files:
245
205
  - spec/montage/sass_builder_spec.rb
246
206
  - spec/montage/source_spec.rb
247
207
  - spec/montage/spec/have_public_method_defined_spec.rb
208
+ - spec/montage/sprite_definition_spec.rb
248
209
  - spec/montage/sprite_spec.rb
249
210
  - spec/spec_helper.rb
@@ -1,8 +0,0 @@
1
- ---
2
- config.sources: "custom/sources"
3
- config.sprites: "custom/output"
4
- config.sass: "custom/sass"
5
- config.sprite_url: "custom/images"
6
-
7
- sprite_one:
8
- - source_one
@@ -1,7 +0,0 @@
1
- ---
2
- sprite_one:
3
- - one
4
- - two
5
-
6
- sprite_two:
7
- - three
@@ -1,5 +0,0 @@
1
- ---
2
- sprite_one:
3
- - source_one
4
- - source_two
5
- - source_three
@@ -1,3 +0,0 @@
1
- ---
2
- sprite_one:
3
- - source_one
@@ -1,5 +0,0 @@
1
- ---
2
- sprite_one:
3
- - source_one
4
- - source_two
5
- - source_three
@@ -1,5 +0,0 @@
1
- ---
2
- sprite_one:
3
- - source_one
4
- - source_two
5
- - source_three
Binary file
Binary file
Binary file
Binary file
@@ -1,5 +0,0 @@
1
- ---
2
- sprite_one:
3
- - source_one
4
- - source_two
5
- - source_three
File without changes
data/spec/lib/fixtures.rb DELETED
@@ -1,7 +0,0 @@
1
- Spec::Runner.configure do |config|
2
- config.include(Module.new do
3
- def fixture_path(name, *segments)
4
- File.join(File.expand_path("../../fixtures/#{name}", __FILE__), *segments)
5
- end
6
- end)
7
- end