sprites 0.0.1.pre3 → 0.0.1.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (192) hide show
  1. data/README.md +18 -0
  2. data/features/step_definitions/common_steps.rb +1 -1
  3. data/lib/sprites/application.rb +21 -5
  4. data/lib/sprites/autoload.rb +1 -0
  5. data/lib/sprites/autoloader.rb +16 -0
  6. data/lib/sprites/configuration.rb +8 -17
  7. data/lib/sprites/rails/autoload.rb +13 -0
  8. data/lib/sprites/rails/sprites.rake +0 -8
  9. data/lib/sprites/rails.rb +18 -2
  10. data/lib/sprites/sprite.rb +44 -72
  11. data/lib/sprites/sprite_generators/chunky_png_generator.rb +6 -3
  12. data/lib/sprites/sprite_piece.rb +2 -2
  13. data/lib/sprites/sprite_pieces.rb +11 -13
  14. data/lib/sprites/sprites.rb +12 -26
  15. data/lib/sprites/stylesheet.rb +6 -2
  16. data/lib/sprites/test/sprite_generator_tester.rb +4 -3
  17. data/lib/sprites/version.rb +1 -1
  18. data/lib/sprites.rb +15 -6
  19. data/spec/fixtures/project1/config/sprites.rb +142 -142
  20. data/spec/fixtures/project1/public/images/sprite_images/foo/bar.png +0 -0
  21. data/spec/fixtures/project2/public/images/sprite_images/bas/bar.png +0 -0
  22. data/spec/fixtures/project2/public/images/sprite_images/bas/bas.png +0 -0
  23. data/spec/fixtures/project2/public/images/sprite_images/bas/bkgd_main_copy.png +0 -0
  24. data/spec/fixtures/project2/public/images/sprite_images/bas/foo.png +0 -0
  25. data/spec/fixtures/project2/public/images/sprite_images/bas/fubar.png +0 -0
  26. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/bas/bar.png +0 -0
  27. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/bas/bas.png +0 -0
  28. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/bas/bkgd_main_copy.png +0 -0
  29. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/bas/foo.png +0 -0
  30. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/bas/fubar.png +0 -0
  31. data/spec/fixtures/rails_project1/config/application.rb +3 -0
  32. data/spec/fixtures/rails_project1/config/environment.rb +2 -1
  33. data/spec/fixtures/rails_project1/config/sprites.rb +90 -142
  34. data/spec/fixtures/rails_project2/Rakefile +5 -0
  35. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/bas/bar.png +0 -0
  36. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/bas/bas.png +0 -0
  37. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/bas/bkgd_main_copy.png +0 -0
  38. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/bas/foo.png +0 -0
  39. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/bas/fubar.png +0 -0
  40. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-black-default-28.png +0 -0
  41. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-black-default-cap-28.png +0 -0
  42. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-black-default-cap-long.png +0 -0
  43. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-black-default.png +0 -0
  44. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-black-onclick-28.png +0 -0
  45. data/spec/fixtures/{rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-red-default-cap.png → rails_project2/app/assets/images/sprite_images/buttons/btn-black-onclick-cap-28.png} +0 -0
  46. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-black-onclick-cap-long.png +0 -0
  47. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-black-onclick.png +0 -0
  48. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-black-rollover-28.png +0 -0
  49. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-black-rollover-cap-28.png +0 -0
  50. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-black-rollover-cap-long.png +0 -0
  51. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-black-rollover.png +0 -0
  52. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-blackarrow-default.png +0 -0
  53. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-blackarrow-onclick.png +0 -0
  54. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-blackarrow-rollover.png +0 -0
  55. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-blue-default-cap.png +0 -0
  56. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-blue-default-drop.png +0 -0
  57. data/spec/fixtures/{rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-white-rollover-cap.png → rails_project2/app/assets/images/sprite_images/buttons/btn-blue-default-edge.png} +0 -0
  58. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-blue-default.png +0 -0
  59. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-blue-onclick-cap.png +0 -0
  60. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-blue-onclick-drop.png +0 -0
  61. data/spec/fixtures/{rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-white-onclick-cap.png → rails_project2/app/assets/images/sprite_images/buttons/btn-blue-onclick-edge.png} +0 -0
  62. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-blue-onclick.png +0 -0
  63. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-blue-rollover-cap.png +0 -0
  64. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-blue-rollover-drop.png +0 -0
  65. data/spec/fixtures/{rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-white-default-cap.png → rails_project2/app/assets/images/sprite_images/buttons/btn-blue-rollover-edge.png} +0 -0
  66. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-blue-rollover.png +0 -0
  67. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-green-default-cap.png +0 -0
  68. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-green-default-drop.png +0 -0
  69. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-green-default-edge.png +0 -0
  70. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-green-default.png +0 -0
  71. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-green-onclick-cap.png +0 -0
  72. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-green-onclick-drop.png +0 -0
  73. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-green-onclick-edge.png +0 -0
  74. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-green-onclick.png +0 -0
  75. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-green-rollover-cap.png +0 -0
  76. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-green-rollover-drop.png +0 -0
  77. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-green-rollover-edge.png +0 -0
  78. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-green-rollover.png +0 -0
  79. data/spec/fixtures/{rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-green-default-cap.png → rails_project2/app/assets/images/sprite_images/buttons/btn-red-default-cap.png} +0 -0
  80. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-red-default-drop.png +0 -0
  81. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-red-default-edge.png +0 -0
  82. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-red-default.png +0 -0
  83. data/spec/fixtures/{rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-green-onclick-cap.png → rails_project2/app/assets/images/sprite_images/buttons/btn-red-onclick-cap.png} +0 -0
  84. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-red-onclick-drop.png +0 -0
  85. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-red-onclick-edge.png +0 -0
  86. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-red-onclick.png +0 -0
  87. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-red-rollover-cap.png +0 -0
  88. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-red-rollover-drop.png +0 -0
  89. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-red-rollover-edge.png +0 -0
  90. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-red-rollover.png +0 -0
  91. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-trans-default-cap.png +0 -0
  92. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-trans-default-drop.png +0 -0
  93. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-trans-default-edge.png +0 -0
  94. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-trans-default.png +0 -0
  95. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-trans-onclick-cap.png +0 -0
  96. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-trans-onclick-drop.png +0 -0
  97. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-trans-onclick-edge.png +0 -0
  98. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-trans-onclick.png +0 -0
  99. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-trans-rollover-cap.png +0 -0
  100. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-trans-rollover-drop.png +0 -0
  101. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-trans-rollover-edge.png +0 -0
  102. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-trans-rollover.png +0 -0
  103. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-white-default-cap.png +0 -0
  104. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-white-default-drop.png +0 -0
  105. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-white-default-edge.png +0 -0
  106. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-white-default.png +0 -0
  107. data/spec/fixtures/{rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-blue-rollover.png → rails_project2/app/assets/images/sprite_images/buttons/btn-white-onclick-cap.png} +0 -0
  108. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-white-onclick-drop.png +0 -0
  109. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-white-onclick-edge.png +0 -0
  110. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-white-onclick.png +0 -0
  111. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-white-rollover-cap.png +0 -0
  112. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-white-rollover-drop.png +0 -0
  113. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-white-rollover-edge.png +0 -0
  114. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-white-rollover.png +0 -0
  115. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-yellow-default-cap.png +0 -0
  116. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-yellow-default-drop.png +0 -0
  117. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-yellow-default-edge.png +0 -0
  118. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-yellow-default.png +0 -0
  119. data/spec/fixtures/{rails_project1/app/assets/images/sprite_images/buttons/dark_background → rails_project2/app/assets/images/sprite_images/buttons}/btn-yellow-onclick-cap.png +0 -0
  120. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-yellow-onclick-drop.png +0 -0
  121. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-yellow-onclick-edge.png +0 -0
  122. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-yellow-onclick.png +0 -0
  123. data/spec/fixtures/{rails_project1/app/assets/images/sprite_images/buttons/dark_background → rails_project2/app/assets/images/sprite_images/buttons}/btn-yellow-rollover-cap.png +0 -0
  124. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-yellow-rollover-drop.png +0 -0
  125. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-yellow-rollover-edge.png +0 -0
  126. data/spec/fixtures/rails_project2/app/assets/images/sprite_images/buttons/btn-yellow-rollover.png +0 -0
  127. data/spec/fixtures/rails_project2/config/application.rb +61 -0
  128. data/spec/fixtures/rails_project2/config/boot.rb +6 -0
  129. data/spec/fixtures/rails_project2/config/environment.rb +7 -0
  130. data/spec/fixtures/rails_project2/config/sprites.rb +93 -0
  131. data/spec/fixtures/rails_project2/log/test.log +0 -0
  132. data/spec/integration/rails/rails_spec.rb +9 -1
  133. data/spec/lib/sprites/application_spec.rb +2 -12
  134. data/spec/lib/sprites/autoloader_spec.rb +21 -0
  135. data/spec/lib/sprites/configuration_spec.rb +7 -4
  136. data/spec/lib/sprites/sprite_generators/chunky_png_generator_spec.rb +4 -3
  137. data/spec/lib/sprites/sprite_piece_spec.rb +30 -6
  138. data/spec/lib/sprites/sprite_pieces_spec.rb +9 -7
  139. data/spec/lib/sprites/sprite_spec.rb +10 -64
  140. data/spec/lib/sprites/sprites_spec.rb +16 -16
  141. data/spec/lib/sprites/stylesheet_spec.rb +4 -5
  142. data/spec/lib/sprites/test/sprite_generator_tester_spec.rb +3 -3
  143. data/spec/lib/sprites_spec.rb +1 -1
  144. data/spec/spec_helper.rb +2 -1
  145. data/spec/support/sprites_helper.rb +142 -142
  146. metadata +229 -117
  147. data/lib/sprites/rails/railtie.rb +0 -10
  148. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-black-default-28.png +0 -0
  149. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-black-default-cap-28.png +0 -0
  150. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-black-onclick-28.png +0 -0
  151. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-black-onclick-cap-28.png +0 -0
  152. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-black-rollover-28.png +0 -0
  153. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-black-rollover-cap-28.png +0 -0
  154. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-blue-default-cap.png +0 -0
  155. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-blue-default.png +0 -0
  156. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-blue-onclick-cap.png +0 -0
  157. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-blue-onclick.png +0 -0
  158. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-blue-rollover-cap.png +0 -0
  159. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-green-default-drop.png +0 -0
  160. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-green-default-edge.png +0 -0
  161. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-green-default.png +0 -0
  162. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-green-onclick-drop.png +0 -0
  163. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-green-onclick-edge.png +0 -0
  164. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-green-onclick.png +0 -0
  165. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-green-rollover-cap.png +0 -0
  166. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-green-rollover-drop.png +0 -0
  167. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-green-rollover-edge.png +0 -0
  168. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-green-rollover.png +0 -0
  169. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-red-default.png +0 -0
  170. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-red-onclick-cap.png +0 -0
  171. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-red-onclick.png +0 -0
  172. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-red-rollover-cap.png +0 -0
  173. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-red-rollover.png +0 -0
  174. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-trans-default-cap.png +0 -0
  175. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-trans-default-drop.png +0 -0
  176. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-trans-default-edge.png +0 -0
  177. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-trans-default.png +0 -0
  178. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-trans-onclick-cap.png +0 -0
  179. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-trans-onclick-drop.png +0 -0
  180. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-trans-onclick-edge.png +0 -0
  181. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-trans-onclick.png +0 -0
  182. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-trans-rollover-cap.png +0 -0
  183. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-trans-rollover-drop.png +0 -0
  184. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-trans-rollover-edge.png +0 -0
  185. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-trans-rollover.png +0 -0
  186. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-white-default.png +0 -0
  187. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-white-onclick.png +0 -0
  188. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-white-rollover.png +0 -0
  189. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-yellow-default-cap.png +0 -0
  190. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-yellow-default.png +0 -0
  191. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-yellow-onclick.png +0 -0
  192. data/spec/fixtures/rails_project1/app/assets/images/sprite_images/buttons/dark_background/btn-yellow-rollover.png +0 -0
@@ -0,0 +1,61 @@
1
+ require File.expand_path('../boot', __FILE__)
2
+
3
+ # Pick the frameworks you want:
4
+ require "active_record/railtie"
5
+ require "action_controller/railtie"
6
+ # require "action_mailer/railtie"
7
+ # require "active_resource/railtie"
8
+ require "sprockets/railtie"
9
+ require 'sprites/rails'
10
+ require 'sprites/rails/autoload'
11
+
12
+ if defined?(Bundler)
13
+ # If you precompile assets before deploying to production, use this line
14
+ Bundler.require(*Rails.groups(:assets => %w(development test)))
15
+ # If you want your assets lazily compiled in production, use this line
16
+ # Bundler.require(:default, :assets, Rails.env)
17
+ end
18
+
19
+ module SpritesRailsTestApp
20
+ class Application < Rails::Application
21
+ config.root = File.expand_path('../..', __FILE__)
22
+ config.cache_classes = false
23
+
24
+ # Settings in config/environments/* take precedence over those specified here.
25
+ # Application configuration should go into files in config/initializers
26
+ # -- all .rb files in that directory are automatically loaded.
27
+
28
+ # Custom directories with classes and modules you want to be autoloadable.
29
+ # config.autoload_paths += %W(#{config.root}/lib)
30
+
31
+ # Only load the plugins named here, in the order given (default is alphabetical).
32
+ # :all can be used as a placeholder for all plugins not explicitly named.
33
+ # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
34
+
35
+ # Activate observers that should always be running.
36
+ # config.active_record.observers = :cacher, :garbage_collector, :forum_observer
37
+
38
+ # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
39
+ # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
40
+ # config.time_zone = 'Central Time (US & Canada)'
41
+
42
+ # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
43
+ # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
44
+ # config.i18n.default_locale = :de
45
+
46
+ # Configure the default encoding used in templates for Ruby 1.9.
47
+ config.encoding = "utf-8"
48
+
49
+ # Configure sensitive parameters which will be filtered from the log file.
50
+ config.filter_parameters += [:password, :password_confirmation]
51
+
52
+ # Enable the asset pipeline
53
+ config.assets.enabled = true
54
+
55
+ # Version of your assets, change this if you want to expire all your assets
56
+ config.assets.version = '1.0'
57
+ config.active_support.deprecation = :log
58
+ end
59
+ end
60
+
61
+ SpritesRailsTestApp::Application.load_tasks
@@ -0,0 +1,6 @@
1
+ require 'rubygems'
2
+
3
+ # Set up gems listed in the Gemfile.
4
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
5
+
6
+ require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])
@@ -0,0 +1,7 @@
1
+ # Load the rails application
2
+ require File.expand_path('../application', __FILE__)
3
+
4
+ require 'rake'
5
+ include Rake::DSL
6
+
7
+ SpritesRailsTestApp::Application.initialize!
@@ -0,0 +1,93 @@
1
+ Sprites.application.define do
2
+ sprite :bas
3
+
4
+ sprite :buttons, :path => "buttons.png", :stylesheet_path => "buttons.css", :auto_define => false do
5
+ sprite_piece 'buttons/btn-black-default-28.png', 'a.black.wf_button > span, button.black.wf_submit span'
6
+ sprite_piece 'buttons/btn-black-default-cap-28.png', 'a.black.wf_button, button.black.wf_submit', :x => 'right'
7
+ sprite_piece 'buttons/btn-black-rollover-28.png', 'a.black.wf_button:hover > span, button.black.wf_submit:hover span'
8
+ sprite_piece 'buttons/btn-black-rollover-cap-28.png', 'a.black.wf_button:hover, button.black.wf_submit:hover', :x => 'right'
9
+ sprite_piece 'buttons/btn-black-onclick-28.png', 'a.black.wf_button:active > span, button.black.wf_submit:active span, a.black.wf_button.active span'
10
+ sprite_piece 'buttons/btn-black-onclick-cap-28.png', 'a.black.wf_button:active, button.black.wf_submit:active, a.black.wf_button.active', :x => 'right'
11
+ sprite_piece 'buttons/btn-green-default.png', 'a.green.wf_button > span, button.green.wf_submit span'
12
+ sprite_piece 'buttons/btn-green-default-cap.png', 'a.green.wf_button, button.green.wf_submit', :x => 'right'
13
+ sprite_piece 'buttons/btn-green-rollover.png', 'a.green.wf_button:hover > span, button.green.wf_submit:hover span'
14
+ sprite_piece 'buttons/btn-green-rollover-cap.png', 'a.green.wf_button:hover, button.green.wf_submit:hover', :x => 'right'
15
+ sprite_piece 'buttons/btn-green-onclick.png', 'a.green.wf_button:active > span, button.green.wf_submit:active span'
16
+ sprite_piece 'buttons/btn-green-onclick-cap.png', 'a.green.wf_button:active, button.green.wf_submit:active', :x => 'right'
17
+ sprite_piece 'buttons/btn-green-default-edge.png', 'a.right_edge.green.wf_button, button.right_edge.green.wf_submit', :x => 'right'
18
+ sprite_piece 'buttons/btn-green-rollover-edge.png', 'a.right_edge.green.wf_button:hover button.right_edge.green.wf_submit:hover', :x => 'right'
19
+ sprite_piece 'buttons/btn-green-onclick-edge.png', 'a.right_edge.green.wf_button:active, button.right_edge.green.wf_submit:active', :x => 'right'
20
+ sprite_piece 'buttons/btn-green-default-drop.png', 'a.green.wf_menu_button'
21
+ sprite_piece 'buttons/btn-green-rollover-drop.png', 'a.green.wf_menu_button:hover'
22
+ sprite_piece 'buttons/btn-green-onclick-drop.png', 'a.green.wf_menu_button:active'
23
+ sprite_piece 'buttons/btn-black-default.png', 'a.tall.black.wf_button > span, button.tall.black.wf_submit span'
24
+ sprite_piece 'buttons/btn-black-default-cap-long.png', 'a.tall.black.wf_button, button.tall.black.wf_submit, a.black.back_arrow.wf_button', :x => 'right'
25
+ sprite_piece 'buttons/btn-black-rollover.png', 'a.tall.black.wf_button:hover > span, button.tall.black.wf_submit:hover span'
26
+ sprite_piece 'buttons/btn-black-rollover-cap-long.png', 'a.tall.black.wf_button:hover, button.tall.black.wf_submit:hover, a.black.back_arrow.wf_button:hover', :x => 'right'
27
+ sprite_piece 'buttons/btn-black-onclick.png', 'a.tall.black.wf_button:active > span, button.tall.black.wf_submit:active span, a.black.tall.wf_button.active span'
28
+ sprite_piece 'buttons/btn-black-onclick-cap-long.png', 'a.tall.black.wf_button:active, button.tall.black.wf_submit:active, a.black.back_arrow.wf_button:active, a.black.tall.wf_button.active', :x => 'right'
29
+ sprite_piece 'buttons/btn-red-default.png', 'a.red.wf_button > span, button.red.wf_submit span'
30
+ sprite_piece 'buttons/btn-red-default-cap.png', 'a.red.wf_button, button.red.wf_submit', :x => 'right'
31
+ sprite_piece 'buttons/btn-red-rollover.png', 'a.red.wf_button:hover > span, button.red.wf_submit:hover span'
32
+ sprite_piece 'buttons/btn-red-rollover-cap.png', 'a.red.wf_button:hover, button.red.wf_submit:hover', :x => 'right'
33
+ sprite_piece 'buttons/btn-red-onclick.png', 'a.red.wf_button:active > span, button.red.wf_submit:active span'
34
+ sprite_piece 'buttons/btn-red-onclick-cap.png', 'a.red.wf_button:active, button.red.wf_submit:active', :x => 'right'
35
+ sprite_piece 'buttons/btn-yellow-default.png', 'a.yellow.wf_button > span, button.yellow.wf_submit span'
36
+ sprite_piece 'buttons/btn-yellow-default-cap.png', 'a.yellow.wf_button, button.yellow.wf_submit', :x => 'right'
37
+ sprite_piece 'buttons/btn-yellow-rollover.png', 'a.yellow.wf_button:hover > span, button.yellow.wf_submit:hover span'
38
+ sprite_piece 'buttons/btn-yellow-rollover-cap.png', 'a.yellow.wf_button:hover, button.yellow.wf_submit:hover', :x => 'right'
39
+ sprite_piece 'buttons/btn-yellow-onclick.png', 'a.yellow.wf_button:active > span, button.yellow.wf_submit:active span'
40
+ sprite_piece 'buttons/btn-yellow-onclick-cap.png', 'a.yellow.wf_button:active, button.yellow.wf_submit:active', :x => 'right'
41
+ sprite_piece 'buttons/btn-white-default.png', 'a.white.wf_button > span, button.white.wf_submit span'
42
+ sprite_piece 'buttons/btn-white-default-cap.png', 'a.white.wf_button, button.white.wf_submit', :x => 'right'
43
+ sprite_piece 'buttons/btn-white-rollover.png', 'a.white.wf_button:hover > span, button.white.wf_submit:hover span'
44
+ sprite_piece 'buttons/btn-white-rollover-cap.png', 'a.white.wf_button:hover, button.white.wf_submit:hover', :x => 'right'
45
+ sprite_piece 'buttons/btn-white-onclick.png', 'a.white.wf_button:active > span, button.white.wf_submit:active span'
46
+ sprite_piece 'buttons/btn-white-onclick-cap.png', 'a.white.wf_button:active, button.white.wf_submit:active', :x => 'right'
47
+ sprite_piece 'buttons/btn-trans-default.png', 'a.trans.wf_button > span, button.trans.wf_submit span'
48
+ sprite_piece 'buttons/btn-trans-default-cap.png', 'a.trans.wf_button, button.trans.wf_submit', :x => 'right'
49
+ sprite_piece 'buttons/btn-trans-rollover.png', 'a.trans.wf_button:hover > span, button.trans.wf_submit:hover span'
50
+ sprite_piece 'buttons/btn-trans-rollover-cap.png', 'a.trans.wf_button:hover, button.trans.wf_submit:hover', :x => 'right'
51
+ sprite_piece 'buttons/btn-trans-onclick.png', 'a.trans.wf_button:active > span, button.trans.wf_submit:active span'
52
+ sprite_piece 'buttons/btn-trans-onclick-cap.png', 'a.trans.wf_button:active, button.trans.wf_submit:active', :x => 'right'
53
+ sprite_piece 'buttons/btn-blue-default.png', 'a.blue.wf_button > span, button.blue.wf_submit span'
54
+ sprite_piece 'buttons/btn-blue-default-cap.png', 'a.blue.wf_button, button.blue.wf_submit', :x => 'right'
55
+ sprite_piece 'buttons/btn-blue-rollover.png', 'a.blue.wf_button:hover > span, button.blue.wf_submit:hover span'
56
+ sprite_piece 'buttons/btn-blue-rollover-cap.png', 'a.blue.wf_button:hover, button.blue.wf_submit:hover', :x => 'right'
57
+ sprite_piece 'buttons/btn-blue-onclick.png', 'a.blue.wf_button:active > span, button.blue.wf_submit:active span'
58
+ sprite_piece 'buttons/btn-blue-onclick-cap.png', 'a.blue.wf_button:active, button.blue.wf_submit:active', :x => 'right'
59
+ sprite_piece 'buttons/btn-red-default-edge.png', 'a.right_edge.red.wf_button, button.right_edge.red.wf_submit', :x => 'right'
60
+ sprite_piece 'buttons/btn-red-rollover-edge.png', 'a.right_edge.red.wf_button:hover, button.right_edge.red.wf_submit:hover', :x => 'right'
61
+ sprite_piece 'buttons/btn-red-onclick-edge.png', 'a.right_edge.red.wf_button:active, button.right_edge.red.wf_submit:active', :x => 'right'
62
+ sprite_piece 'buttons/btn-red-default-drop.png', 'a.red.wf_menu_button'
63
+ sprite_piece 'buttons/btn-red-rollover-drop.png', 'a.red.wf_menu_button:hover'
64
+ sprite_piece 'buttons/btn-red-onclick-drop.png', 'a.red.wf_menu_button:active'
65
+ sprite_piece 'buttons/btn-yellow-default-edge.png', 'a.right_edge.yellow.wf_button, button.right_edge.yellow.wf_submit', :x => 'right'
66
+ sprite_piece 'buttons/btn-yellow-rollover-edge.png', 'a.right_edge.yellow.wf_button:hover, button.right_edge.yellow.wf_submit:hover', :x => 'right'
67
+ sprite_piece 'buttons/btn-yellow-onclick-edge.png', 'a.right_edge.yellow.wf_button:active, button.right_edge.yellow.wf_submit:active', :x => 'right'
68
+ sprite_piece 'buttons/btn-yellow-default-drop.png', 'a.yellow.wf_menu_button'
69
+ sprite_piece 'buttons/btn-yellow-rollover-drop.png', 'a.yellow.wf_menu_button:hover'
70
+ sprite_piece 'buttons/btn-yellow-onclick-drop.png', 'a.yellow.wf_menu_button:active'
71
+ sprite_piece 'buttons/btn-blue-default-edge.png', 'a.right_edge.blue.wf_button, button.right_edge.blue.wf_submit', :x => 'right'
72
+ sprite_piece 'buttons/btn-blue-rollover-edge.png', 'a.right_edge.blue.wf_button:hover, button.right_edge.blue.wf_submit:hover', :x => 'right'
73
+ sprite_piece 'buttons/btn-blue-onclick-edge.png', 'a.right_edge.blue.wf_button:active, button.right_edge.blue.wf_submit:active', :x => 'right'
74
+ sprite_piece 'buttons/btn-blue-default-drop.png', 'a.blue.wf_menu_button'
75
+ sprite_piece 'buttons/btn-blue-rollover-drop.png', 'a.blue.wf_menu_button:hover'
76
+ sprite_piece 'buttons/btn-blue-onclick-drop.png', 'a.blue.wf_menu_button:active'
77
+ sprite_piece 'buttons/btn-white-default-edge.png', 'a.right_edge.white.wf_button, button.right_edge.white.wf_submit', :x => 'right'
78
+ sprite_piece 'buttons/btn-white-rollover-edge.png', 'a.right_edge.white.wf_button:hover, button.right_edge.white.wf_submit:hover', :x => 'right'
79
+ sprite_piece 'buttons/btn-white-onclick-edge.png', 'a.right_edge.white.wf_button:active, button.right_edge.white.wf_submit:active', :x => 'right'
80
+ sprite_piece 'buttons/btn-white-default-drop.png', 'a.white.wf_menu_button'
81
+ sprite_piece 'buttons/btn-white-rollover-drop.png', 'a.white.wf_menu_button:hover'
82
+ sprite_piece 'buttons/btn-white-onclick-drop.png', 'a.white.wf_menu_button:active'
83
+ sprite_piece 'buttons/btn-trans-default-edge.png', 'a.right_edge.trans.wf_button, button.right_edge.trans.wf_submit', :x => 'right'
84
+ sprite_piece 'buttons/btn-trans-rollover-edge.png', 'a.right_edge.trans.wf_button:hover, button.right_edge.trans.wf_submit:hover', :x => 'right'
85
+ sprite_piece 'buttons/btn-trans-onclick-edge.png', 'a.right_edge.trans.wf_button:active, button.right_edge.trans.wf_submit:active', :x => 'right'
86
+ sprite_piece 'buttons/btn-trans-default-drop.png', 'a.trans.wf_menu_button'
87
+ sprite_piece 'buttons/btn-trans-rollover-drop.png', 'a.trans.wf_menu_button:hover'
88
+ sprite_piece 'buttons/btn-trans-onclick-drop.png', 'a.trans.wf_menu_button:active'
89
+ sprite_piece 'buttons/btn-blackarrow-default.png', 'a.black.back_arrow.wf_button > span'
90
+ sprite_piece 'buttons/btn-blackarrow-rollover.png', 'a.black.back_arrow.wf_button:hover > span'
91
+ sprite_piece 'buttons/btn-blackarrow-onclick.png', 'a.black.back_arrow.wf_button:active > span'
92
+ end
93
+ end
File without changes
@@ -1,8 +1,10 @@
1
1
  ENV['RAILS_ENV'] ||= 'test'
2
+ require 'rake'
2
3
  require 'spec_helper'
3
4
  require 'rails/all'
4
- require 'fixtures/rails_project1/config/environment'
5
+ require 'fixtures/rails_project1/config/application'
5
6
  require 'rspec-rails'
7
+ require 'sprites/test/sprite_generator_tester'
6
8
 
7
9
  describe "When creating sprites and stylesheets in a rails app" do
8
10
  it 'should create the sprites when rake is executed' do
@@ -13,5 +15,11 @@ describe "When creating sprites and stylesheets in a rails app" do
13
15
 
14
16
  FileUtils.rm Sprite.sprite_full_path(Sprites.configuration, Sprites.application.sprites[:buttons])
15
17
  FileUtils.rm Stylesheet.stylesheet_full_path(Sprites.configuration, Sprites.application.sprites[:buttons].stylesheet)
18
+
19
+ tester = SpriteGeneratorTester.new(Sprites.application.sprites[:bas], Sprites.configuration)
20
+ tester.should be_accurate
21
+
22
+ FileUtils.rm Sprite.sprite_full_path(Sprites.configuration, Sprites.application.sprites[:bas])
23
+ FileUtils.rm Stylesheet.stylesheet_full_path(Sprites.configuration, Sprites.application.sprites[:bas].stylesheet)
16
24
  end
17
25
  end
@@ -11,7 +11,7 @@ describe Application do
11
11
  end
12
12
 
13
13
  it 'should allow access to the api when defining a sprite with a symbol' do
14
- @app.sprite(:foo) {}
14
+ @app.sprite(:foo)
15
15
 
16
16
  @app.sprites[:foo].should be_a(Sprite)
17
17
  @app.sprites[:foo].name.should be(:foo)
@@ -20,17 +20,7 @@ describe Application do
20
20
  end
21
21
 
22
22
  it 'should allow access to the api when defining a sprite with a hash' do
23
- @app.sprite('sprites/foo.png' => 'sprites/foo.css') {}
24
- @app.sprites[:foo].should be_a(Sprite)
25
- @app.sprites[:foo].name.should be(:foo)
26
- @app.sprites[:foo].path.to_s.should == "sprites/foo.png"
27
- @app.sprites[:foo].stylesheet_path.should == "sprites/foo.css"
28
- end
29
-
30
-
31
- it 'should allow access to the api when defining a sprite with a string' do
32
- @app.sprite('sprites/foo.png') {}
33
-
23
+ @app.sprite(:foo, :path => 'sprites/foo.png', :stylesheet_path => 'sprites/foo.css')
34
24
  @app.sprites[:foo].should be_a(Sprite)
35
25
  @app.sprites[:foo].name.should be(:foo)
36
26
  @app.sprites[:foo].path.to_s.should == "sprites/foo.png"
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+ require 'sprites/autoloader'
3
+
4
+ describe Autoloader do
5
+ it 'should autoload sprites' do
6
+ Sprites.configure do
7
+ config.sprite_pieces_path = File.join(GEM_ROOT, 'spec/fixtures/rails_project1/app/assets/images/sprite_images')
8
+ end
9
+
10
+ Sprites.application.sprites[:buttons].should be_nil
11
+ Sprites.application.sprites[:bas].should be_nil
12
+
13
+ Sprites::Autoloader.new.autoload
14
+
15
+ Sprites.application.sprites[:buttons].should_not be_nil
16
+ Sprites.application.sprites[:bas].should_not be_nil
17
+
18
+ Sprites.application.sprites[:buttons].sprite_pieces.count.should == 87
19
+ Sprites.application.sprites[:bas].sprite_pieces.count.should == 5
20
+ end
21
+ end
@@ -12,7 +12,8 @@ describe Configuration do
12
12
  end
13
13
 
14
14
  it 'should accept an override' do
15
- config.sprites_path('foo').sprites_path.should == 'foo'
15
+ config.sprites_path = 'foo'
16
+ config.sprites_path.should == 'foo'
16
17
  end
17
18
  end
18
19
 
@@ -22,7 +23,8 @@ describe Configuration do
22
23
  end
23
24
 
24
25
  it 'should accept an override' do
25
- config.sprite_stylesheets_path('foo').sprite_stylesheets_path.should == 'foo'
26
+ config.sprite_stylesheets_path = 'foo'
27
+ config.sprite_stylesheets_path.should == 'foo'
26
28
  end
27
29
  end
28
30
 
@@ -32,7 +34,8 @@ describe Configuration do
32
34
  end
33
35
 
34
36
  it 'should accept an override' do
35
- config.sprite_pieces_path('foo').sprite_pieces_path.should == 'foo'
37
+ config.sprite_pieces_path = 'foo'
38
+ config.sprite_pieces_path.should == 'foo'
36
39
  end
37
40
  end
38
41
 
@@ -44,7 +47,7 @@ describe Configuration do
44
47
  Configuration::FIELDS.each do |field|
45
48
  it "should be configured if the #{field} has changed" do
46
49
  config = Configuration.new
47
- config.send(field, 'foo')
50
+ config.send(:"#{field}=", 'foo')
48
51
  config.should be_configured
49
52
  end
50
53
  end
@@ -1,11 +1,12 @@
1
1
  require 'spec_helper'
2
+ require 'sprites/test/sprite_generator_tester'
2
3
 
3
4
  describe ChunkyPngGenerator do
4
5
  it 'should generate a sprite and a stylesheet' do
5
6
  Sprites.configure do
6
- sprites_path 'tmp/images/sprites/foo2'
7
- sprite_stylesheets_path 'tmp/images/stylesheets/foo2'
8
- sprite_pieces_path File.join(Sprites.gem_root, 'spec/fixtures/known_good/sprite_images')
7
+ config.sprites_path = 'tmp/images/sprites/foo2/sprites'
8
+ config.sprite_stylesheets_path = 'tmp/images/stylesheets/foo2/sprites'
9
+ config.sprite_pieces_path = File.join(GEM_ROOT, 'spec/fixtures/known_good/sprite_images')
9
10
  end
10
11
 
11
12
  define_buttons_sprite
@@ -1,10 +1,11 @@
1
1
  require 'spec_helper'
2
+ require 'sprites/sprite_piece'
2
3
 
3
4
  describe SpritePiece do
4
5
  context 'self.sprite_piece_full_path' do
5
6
  it 'should return the full sprite piece path' do
6
7
  config = Configuration.new
7
- config.sprite_pieces_path('tmp/images/sprite_images')
8
+ config.sprite_pieces_path = 'tmp/images/sprite_images'
8
9
 
9
10
  sprite_piece = SpritePiece.new('foo/bar.png')
10
11
 
@@ -15,15 +16,15 @@ describe SpritePiece do
15
16
  context '#css' do
16
17
  it 'should return the css for the sprite piece' do
17
18
  config = Configuration.new
18
- config.sprites_path('tmp/images/sprites')
19
+ config.sprites_path = 'tmp/images/sprites'
19
20
 
20
- sprite = Sprite.new(:foo).define do
21
- sprite_piece 'foo/bar.png' => '.foo'
21
+ sprite = Sprite.new(:foo).configure do
22
+ sprite_piece 'foo/bar.png', '.foo'
22
23
  end
23
24
 
24
25
  sprite_piece = sprite.sprite_pieces['foo/bar.png']
25
- sprite_piece.x = 0
26
- sprite_piece.y = 345
26
+ sprite_piece.left = 0
27
+ sprite_piece.top = 345
27
28
  sprite_piece.width = 40
28
29
  sprite_piece.height = 50
29
30
 
@@ -38,4 +39,27 @@ describe SpritePiece do
38
39
  CSS
39
40
  end
40
41
  end
42
+
43
+ context 'when overriding the default x and y background-position settings' do
44
+ it 'should allow you to override the x setting' do
45
+ config = Configuration.new
46
+ config.sprites_path ='tmp/images/sprites'
47
+ config.sprite_stylesheets_path = 'tmp/stylesheets/sprites'
48
+ config.sprite_pieces_path = 'spec/fixtures/project1/public/images/sprite_images'
49
+
50
+ sprite = Sprite.new(:foo).configure do
51
+ sprite_piece 'foo/bar.png', '.foo', :x => 'right'
52
+ end
53
+ sprite_piece = sprite.sprite_pieces['foo/bar.png']
54
+
55
+ generator = ChunkyPngGenerator.new(config)
56
+ sprites = Sprites::Sprites.new(config)
57
+ sprites.add(sprite)
58
+
59
+ generator.generate(sprites)
60
+
61
+ sprite_piece.x.should == 'right'
62
+ sprite_piece.css(config, sprite).should include('right')
63
+ end
64
+ end
41
65
  end
@@ -6,20 +6,22 @@ describe SpritePieces do
6
6
  before do
7
7
  @sprite_pieces = SpritePieces.new
8
8
 
9
- @sprite_piece_definitions = [
10
- {'foo.png' => 'foo.css'},
11
- {'bar.png' => 'bar.css'},
12
- {'bas.png' => 'bas.css'}
9
+ sprite_pieces = [
10
+ ['foo.png', 'foo.css'],
11
+ ['bar.png', 'bar.css'],
12
+ ['bas.png', 'bas.css']
13
13
  ]
14
14
 
15
- @sprite_piece_definitions.each do |spd|
16
- @sprite_pieces.add(spd)
15
+ @sprite_piece_definitions = sprite_pieces.map(&:clone)
16
+
17
+ sprite_pieces.each do |sp|
18
+ @sprite_pieces.add(*sp)
17
19
  end
18
20
  end
19
21
 
20
22
  context '#map' do
21
23
  it 'should allow access to the @sprite_pieces OrderedHash values and allow them to be mapped' do
22
- @sprite_pieces.map {|sp| {sp.path => sp.selector} }.should == @sprite_piece_definitions
24
+ @sprite_pieces.map {|sp| [sp.path, sp.selector] }.should == @sprite_piece_definitions
23
25
  end
24
26
  end
25
27
 
@@ -14,77 +14,23 @@ describe Sprite do
14
14
 
15
15
  context '#path' do
16
16
  it 'should retrieve the path' do
17
- @sprite.define(:foo) {}
18
17
  @sprite.path.to_s.should == "foo.png"
19
18
  end
20
19
  end
21
20
 
22
- context "#define", "a method to further initialize the Sprite, e.g. with spite pieces" do
23
- shared_examples "a sprite definition with no options" do
24
- it 'the options should be a hash' do
25
- @sprite.instance_variable_get(:@options).should be_a(Hash)
26
- end
27
-
28
- it 'should set the path' do
29
- @sprite.path.should be_a(Pathname)
30
- @sprite.path.to_s.should == 'sprites/foo.png'
31
- end
32
-
33
- it 'should set the create the Stylesheet' do
34
- @sprite.stylesheet.should be_a(Stylesheet)
35
- end
36
- end
37
-
38
- context 'when defining with a symbol and no options' do
39
- before do
40
- @sprite.define(:foo) {}
41
- end
42
-
43
- it 'the options should be a hash' do
44
- @sprite.instance_variable_get(:@options).should be_a(Hash)
45
- end
46
-
47
- it 'should set the path' do
48
- @sprite.path.should be_a(Pathname)
49
- @sprite.path.to_s.should == 'foo.png'
50
- end
51
-
52
- it 'should set the create the Stylesheet' do
53
- @sprite.stylesheet.should be_a(Stylesheet)
54
- end
55
- end
56
-
57
- context 'when defining with hash but no extra options' do
58
- before do
59
- @sprite.define('sprites/foo.png' => 'stylesheets/sprites/foo.css') {}
60
- end
61
-
62
- it_behaves_like("a sprite definition with no options")
63
- end
64
-
65
- context 'when defining with a string and no options' do
66
- before do
67
- @sprite.define('sprites/foo.png') {}
68
- end
69
-
70
- it_behaves_like("a sprite definition with no options")
71
- end
72
-
73
- end
74
-
75
21
  context "#sprite_piece" do
76
22
  it 'should respond_to sprite_piece' do
77
23
  Sprite.new(:foo).should respond_to(:sprite_piece)
78
24
  end
79
25
 
80
- it 'should return a Sprites::SpritePiece' do
26
+ it 'should return a Sprites::SpritePieces' do
81
27
  sprite = Sprite.new(:foo)
82
- sprite.sprite_piece('sprite_images/foo.png' => '.foo').should be_a(SpritePiece)
28
+ sprite.sprite_piece('sprite_images/foo.png', '.foo').should be_a(SpritePieces)
83
29
  end
84
30
 
85
31
  it 'should add a sprite piece to the collection' do
86
32
  sprite = Sprite.new(:foo)
87
- sprite.sprite_piece('sprite_images/foo.png' => '.foo')
33
+ sprite.sprite_piece('sprite_images/foo.png', '.foo')
88
34
  sprite.sprite_pieces.should_not be_empty
89
35
  sprite.sprite_pieces.count.should be(1)
90
36
  sprite.sprite_pieces['sprite_images/foo.png'].selector.should == '.foo'
@@ -99,25 +45,25 @@ describe Sprite do
99
45
 
100
46
  context '#stylesheet' do
101
47
  it 'should return a Stylesheet' do
102
- @sprite.define(:foo) {}
103
48
  @sprite.stylesheet.should be_a(Stylesheet)
104
49
  end
105
50
  end
106
51
 
107
52
  context '#stylesheet_path' do
108
53
  it 'should return the stylesheet path' do
109
- @sprite.define(:foo) {}
110
54
  @sprite.stylesheet_path.to_s.should == 'foo.css'
111
55
  end
112
56
  end
113
57
 
114
- context '#orientation' do
58
+ context '#orientation=' do
115
59
  it 'should set the orientation' do
116
- @sprite.orientation(Sprite::Orientations::HORIZONTAL)
60
+ @sprite.orientation = Sprite::Orientations::HORIZONTAL
117
61
  @sprite.orientation.should be(Sprite::Orientations::HORIZONTAL)
118
62
  end
63
+ end
119
64
 
120
- it 'should set and return the default orientation' do
65
+ context '#orientation' do
66
+ it 'should return the default orientation' do
121
67
  @sprite.orientation.should be(Sprite::Orientations::VERTICAL)
122
68
  end
123
69
  end
@@ -125,7 +71,7 @@ describe Sprite do
125
71
  context "self.sprite_full_path(configuration, sprite)" do
126
72
  it 'should return the sprite full path' do
127
73
  config = Configuration.new
128
- config.sprites_path('tmp/images/sprites')
74
+ config.sprites_path = 'tmp/images/sprites'
129
75
 
130
76
  sprite = Sprite.new(:foo)
131
77
 
@@ -136,7 +82,7 @@ describe Sprite do
136
82
  context 'self.sprite_css_path(configuration, sprite)' do
137
83
  it 'should return the path for use in the url in the background style attribute' do
138
84
  config = Configuration.new
139
- config.sprites_path('tmp/images/sprites')
85
+ config.sprites_path = 'tmp/images/sprites'
140
86
 
141
87
  sprite = Sprite.new(:foo)
142
88
 
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe Sprites do
4
4
  before do
5
- @sprites = Sprites::Sprites.new
5
+ @sprites = Sprites::Sprites.new(::Sprites.configuration)
6
6
  end
7
7
 
8
8
  context 'initialize' do
@@ -14,21 +14,7 @@ describe Sprites do
14
14
  context '#add' do
15
15
  context 'with the sprite identified by a symbol' do
16
16
  it 'should add a sprite to the collection' do
17
- @sprites.add(:foo) {}
18
- @sprites[:foo].should be_a(Sprite)
19
- end
20
- end
21
-
22
- context 'with the sprite identified by a string--the path to the sprite image' do
23
- it 'should add a sprite to the collection' do
24
- @sprites.add('images/sprites/foo.png') {}
25
- @sprites[:foo].should be_a(Sprite)
26
- end
27
- end
28
-
29
- context 'with the sprite identified by a hash--the mapping between the sprite image file and its stylesheet' do
30
- it 'should add a sprite to the collection' do
31
- @sprites.add('images/sprites/foo.png' => 'stylesheets/sprites/foo.css') {}
17
+ @sprites.add(:foo)
32
18
  @sprites[:foo].should be_a(Sprite)
33
19
  end
34
20
  end
@@ -38,6 +24,20 @@ describe Sprites do
38
24
  @sprites.add(sprite)
39
25
  @sprites[:foo].should be(sprite)
40
26
  end
27
+
28
+ it 'should add a sprite defined by only a symbol by using directory conventions and filenames for classes' do
29
+ config = Configuration.new
30
+ config.configure do
31
+ config.sprites_path = File.join(GEM_ROOT, 'spec/fixtures/project2/public/images/sprites')
32
+ config.sprite_stylesheets_path = File.join(GEM_ROOT, 'spec/fixtures/project2/public/stylesheets/sprites')
33
+ config.sprite_pieces_path = File.join(GEM_ROOT, 'spec/fixtures/project2/public/images/sprite_images')
34
+ end
35
+
36
+ sprites = Sprites::Sprites.new(config)
37
+ sprites.add(:bas)
38
+ sprites[:bas].sprite_pieces.count.should be(5)
39
+ sprites[:bas].sprite_pieces.all.map(&:css_selector).should == %w(.bar .bas .bkgd_main_copy .foo .fubar)
40
+ end
41
41
  end
42
42
 
43
43
  context '#clear' do
@@ -5,10 +5,9 @@ describe Stylesheet do
5
5
  context "self.sprite_full_path(configuration, sprite)" do
6
6
  it 'should return the stylesheet full path' do
7
7
  config = Configuration.new
8
- config.sprite_stylesheets_path('tmp/stylesheets')
9
- sprite = Sprite.new(:foo)
10
- stylesheet = Stylesheet.new('sprites/foo.css', sprite)
11
-
8
+ config.sprite_stylesheets_path = 'tmp/stylesheets/sprites'
9
+ sprite = Sprite.new(:foo, config)
10
+ stylesheet = Stylesheet.new(sprite)
12
11
  Stylesheet.stylesheet_full_path(config, stylesheet).should == 'tmp/stylesheets/sprites/foo.css'
13
12
  end
14
13
  end
@@ -16,7 +15,7 @@ describe Stylesheet do
16
15
  context '#sprite_pieces, #sprite_pieces=' do
17
16
  it 'should allow access to and setting of sprite_pieces' do
18
17
  sprite = Sprite.new(:foo)
19
- stylesheet = Stylesheet.new('foo/bar.css', sprite)
18
+ stylesheet = Stylesheet.new(sprite)
20
19
  sprite_pieces = SpritePieces.new
21
20
  stylesheet.sprite_pieces = sprite_pieces
22
21
  stylesheet.sprite_pieces.should be(sprite_pieces)
@@ -5,9 +5,9 @@ describe SpriteGeneratorTester do
5
5
  describe "#test_generator" do
6
6
  it 'should return 0 for known good sprite' do
7
7
  Sprites.configure do
8
- sprites_path 'spec/fixtures/known_good/sprites'
9
- sprite_stylesheets_path 'spec/fixtures/known_good/stylesheets'
10
- sprite_pieces_path 'spec/fixtures/known_good/sprite_images'
8
+ config.sprites_path = 'spec/fixtures/known_good/sprites'
9
+ config.sprite_stylesheets_path = 'spec/fixtures/known_good/stylesheets'
10
+ config.sprite_pieces_path = 'spec/fixtures/known_good/sprite_images'
11
11
  end
12
12
  define_buttons_sprite
13
13
  tester = SpriteGeneratorTester.new(Sprites.application.sprites[:buttons], Sprites.configuration)
@@ -10,7 +10,7 @@ describe Sprites do
10
10
  context 'self.configure' do
11
11
  it 'should congfigure the application' do
12
12
  Sprites.configure do
13
- sprites_path 'public/sprites'
13
+ config.sprites_path = 'public/sprites'
14
14
  end
15
15
 
16
16
  Sprites.configuration.sprites_path.should == 'public/sprites'
data/spec/spec_helper.rb CHANGED
@@ -3,10 +3,11 @@ require 'sprites'
3
3
 
4
4
  include Sprites
5
5
 
6
- ROOT = Sprites.gem_root
6
+ GEM_ROOT = Pathname(File.expand_path('../..', __FILE__))
7
7
 
8
8
  Dir['spec/support/*.rb'].each {|support_file| load support_file}
9
9
 
10
10
  RSpec.configure do |config|
11
11
  config.include SpritesHelper
12
+ config.after { ::Sprites.application.sprites.clear }
12
13
  end