sprites 0.0.1.pre3 → 0.0.1.rc1

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.
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