sprites 0.0.1.pre
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +12 -0
- data/.rspec +2 -0
- data/Gemfile +12 -0
- data/Rakefile +41 -0
- data/bin/sprites +18 -0
- data/features/cli.feature +11 -0
- data/features/step_definitions/common_steps.rb +36 -0
- data/features/support/env.rb +5 -0
- data/lib/sprites/application.rb +44 -0
- data/lib/sprites/cli/cli_application.rb +11 -0
- data/lib/sprites/cli/command_line_option_parser.rb +70 -0
- data/lib/sprites/cli.rb +4 -0
- data/lib/sprites/configuration.rb +59 -0
- data/lib/sprites/core_ext/pathname.rb +7 -0
- data/lib/sprites/notifier.rb +9 -0
- data/lib/sprites/sprite.rb +127 -0
- data/lib/sprites/sprite_generators/chunky_png_generator.rb +114 -0
- data/lib/sprites/sprite_piece.rb +36 -0
- data/lib/sprites/sprite_pieces.rb +47 -0
- data/lib/sprites/sprites.rb +61 -0
- data/lib/sprites/stylesheet.rb +22 -0
- data/lib/sprites/test/sprite_generator_tester.rb +78 -0
- data/lib/sprites/version.rb +3 -0
- data/lib/sprites.rb +24 -0
- data/spec/fixtures/known_good/sprite_images/buttons/.DS_Store +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-black-default-28.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-black-default-cap-28.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-black-default-cap-long.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-black-default.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-black-onclick-28.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-black-onclick-cap-28.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-black-onclick-cap-long.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-black-onclick.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-black-rollover-28.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-black-rollover-cap-28.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-black-rollover-cap-long.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-black-rollover.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-blackarrow-default.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-blackarrow-onclick.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-blackarrow-rollover.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-blue-default-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-blue-default-drop.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-blue-default-edge.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-blue-default.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-blue-onclick-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-blue-onclick-drop.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-blue-onclick-edge.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-blue-onclick.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-blue-rollover-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-blue-rollover-drop.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-blue-rollover-edge.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-blue-rollover.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-green-default-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-green-default-drop.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-green-default-edge.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-green-default.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-green-onclick-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-green-onclick-drop.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-green-onclick-edge.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-green-onclick.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-green-rollover-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-green-rollover-drop.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-green-rollover-edge.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-green-rollover.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-red-default-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-red-default-drop.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-red-default-edge.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-red-default.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-red-onclick-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-red-onclick-drop.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-red-onclick-edge.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-red-onclick.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-red-rollover-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-red-rollover-drop.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-red-rollover-edge.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-red-rollover.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-trans-default-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-trans-default-drop.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-trans-default-edge.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-trans-default.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-trans-onclick-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-trans-onclick-drop.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-trans-onclick-edge.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-trans-onclick.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-trans-rollover-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-trans-rollover-drop.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-trans-rollover-edge.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-trans-rollover.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-white-default-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-white-default-drop.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-white-default-edge.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-white-default.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-white-onclick-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-white-onclick-drop.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-white-onclick-edge.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-white-onclick.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-white-rollover-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-white-rollover-drop.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-white-rollover-edge.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-white-rollover.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-yellow-default-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-yellow-default-drop.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-yellow-default-edge.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-yellow-default.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-yellow-onclick-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-yellow-onclick-drop.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-yellow-onclick-edge.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-yellow-onclick.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-yellow-rollover-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-yellow-rollover-drop.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-yellow-rollover-edge.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/btn-yellow-rollover.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-black-default-28.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-black-default-cap-28.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-black-onclick-28.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-black-onclick-cap-28.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-black-rollover-28.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-black-rollover-cap-28.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-blue-default-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-blue-default.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-blue-onclick-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-blue-onclick.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-blue-rollover-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-blue-rollover.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-green-default-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-green-default-drop.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-green-default-edge.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-green-default.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-green-onclick-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-green-onclick-drop.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-green-onclick-edge.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-green-onclick.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-green-rollover-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-green-rollover-drop.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-green-rollover-edge.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-green-rollover.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-red-default-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-red-default.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-red-onclick-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-red-onclick.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-red-rollover-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-red-rollover.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-trans-default-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-trans-default-drop.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-trans-default-edge.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-trans-default.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-trans-onclick-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-trans-onclick-drop.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-trans-onclick-edge.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-trans-onclick.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-trans-rollover-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-trans-rollover-drop.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-trans-rollover-edge.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-trans-rollover.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-white-default-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-white-default.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-white-onclick-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-white-onclick.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-white-rollover-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-white-rollover.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-yellow-default-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-yellow-default.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-yellow-onclick-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-yellow-onclick.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-yellow-rollover-cap.png +0 -0
- data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-yellow-rollover.png +0 -0
- data/spec/fixtures/known_good/sprites/buttons.png +0 -0
- data/spec/fixtures/known_good/stylesheets/buttons.css +1127 -0
- data/spec/fixtures/project1/config/sprites.rb +145 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/.DS_Store +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-black-default-28.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-black-default-cap-28.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-black-default-cap-long.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-black-default.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-black-onclick-28.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-black-onclick-cap-28.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-black-onclick-cap-long.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-black-onclick.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-black-rollover-28.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-black-rollover-cap-28.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-black-rollover-cap-long.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-black-rollover.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-blackarrow-default.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-blackarrow-onclick.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-blackarrow-rollover.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-blue-default-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-blue-default-drop.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-blue-default-edge.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-blue-default.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-blue-onclick-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-blue-onclick-drop.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-blue-onclick-edge.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-blue-onclick.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-blue-rollover-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-blue-rollover-drop.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-blue-rollover-edge.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-blue-rollover.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-green-default-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-green-default-drop.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-green-default-edge.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-green-default.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-green-onclick-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-green-onclick-drop.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-green-onclick-edge.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-green-onclick.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-green-rollover-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-green-rollover-drop.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-green-rollover-edge.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-green-rollover.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-red-default-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-red-default-drop.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-red-default-edge.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-red-default.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-red-onclick-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-red-onclick-drop.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-red-onclick-edge.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-red-onclick.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-red-rollover-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-red-rollover-drop.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-red-rollover-edge.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-red-rollover.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-trans-default-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-trans-default-drop.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-trans-default-edge.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-trans-default.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-trans-onclick-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-trans-onclick-drop.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-trans-onclick-edge.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-trans-onclick.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-trans-rollover-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-trans-rollover-drop.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-trans-rollover-edge.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-trans-rollover.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-white-default-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-white-default-drop.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-white-default-edge.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-white-default.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-white-onclick-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-white-onclick-drop.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-white-onclick-edge.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-white-onclick.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-white-rollover-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-white-rollover-drop.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-white-rollover-edge.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-white-rollover.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-yellow-default-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-yellow-default-drop.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-yellow-default-edge.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-yellow-default.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-yellow-onclick-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-yellow-onclick-drop.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-yellow-onclick-edge.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-yellow-onclick.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-yellow-rollover-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-yellow-rollover-drop.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-yellow-rollover-edge.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/btn-yellow-rollover.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-black-default-28.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-black-default-cap-28.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-black-onclick-28.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-black-onclick-cap-28.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-black-rollover-28.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-black-rollover-cap-28.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-blue-default-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-blue-default.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-blue-onclick-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-blue-onclick.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-blue-rollover-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-blue-rollover.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-green-default-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-green-default-drop.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-green-default-edge.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-green-default.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-green-onclick-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-green-onclick-drop.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-green-onclick-edge.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-green-onclick.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-green-rollover-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-green-rollover-drop.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-green-rollover-edge.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-green-rollover.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-red-default-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-red-default.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-red-onclick-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-red-onclick.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-red-rollover-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-red-rollover.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-trans-default-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-trans-default-drop.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-trans-default-edge.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-trans-default.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-trans-onclick-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-trans-onclick-drop.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-trans-onclick-edge.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-trans-onclick.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-trans-rollover-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-trans-rollover-drop.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-trans-rollover-edge.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-trans-rollover.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-white-default-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-white-default.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-white-onclick-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-white-onclick.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-white-rollover-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-white-rollover.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-yellow-default-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-yellow-default.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-yellow-onclick-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-yellow-onclick.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-yellow-rollover-cap.png +0 -0
- data/spec/fixtures/project1/public/images/sprite_images/buttons/dark_background/btn-yellow-rollover.png +0 -0
- data/spec/fixtures/sprite_images/foo/foo.png +0 -0
- data/spec/lib/sprites/application_spec.rb +60 -0
- data/spec/lib/sprites/cli/command_line_option_parser_spec.rb +5 -0
- data/spec/lib/sprites/configuration_spec.rb +52 -0
- data/spec/lib/sprites/core_ext/pathname_spec.rb +4 -0
- data/spec/lib/sprites/notifier_spec.rb +5 -0
- data/spec/lib/sprites/sprite_generators/chunky_png_generator_spec.rb +19 -0
- data/spec/lib/sprites/sprite_piece_spec.rb +41 -0
- data/spec/lib/sprites/sprite_pieces_spec.rb +32 -0
- data/spec/lib/sprites/sprite_spec.rb +146 -0
- data/spec/lib/sprites/sprites_spec.rb +100 -0
- data/spec/lib/sprites/stylesheet_spec.rb +25 -0
- data/spec/lib/sprites/test/sprite_generator_tester_spec.rb +17 -0
- data/spec/lib/sprites_spec.rb +19 -0
- data/spec/spec_helper.rb +12 -0
- data/spec/support/sprites_helper.rb +149 -0
- data/sprites.gemspec +29 -0
- metadata +802 -0
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Application do
|
4
|
+
before do
|
5
|
+
@app = Application.new
|
6
|
+
end
|
7
|
+
|
8
|
+
context "#define" do
|
9
|
+
it 'should respond to define' do
|
10
|
+
@app.should respond_to(:define)
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should allow access to the api when defining a sprite with a symbol' do
|
14
|
+
@app.sprite(:foo) {}
|
15
|
+
|
16
|
+
@app.sprites[:foo].should be_a(Sprite)
|
17
|
+
@app.sprites[:foo].name.should be(:foo)
|
18
|
+
@app.sprites[:foo].path.to_s.should == "foo.png"
|
19
|
+
@app.sprites[:foo].stylesheet_path.should == "foo.css"
|
20
|
+
end
|
21
|
+
|
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
|
+
|
34
|
+
@app.sprites[:foo].should be_a(Sprite)
|
35
|
+
@app.sprites[:foo].name.should be(:foo)
|
36
|
+
@app.sprites[:foo].path.to_s.should == "sprites/foo.png"
|
37
|
+
@app.sprites[:foo].stylesheet_path.should == "sprites/foo.css"
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
context "#sprite" do
|
43
|
+
it 'should respond_to sprite' do
|
44
|
+
@app.should respond_to(:sprite)
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'should add a sprite' do
|
48
|
+
@app.sprite(:foo) {}
|
49
|
+
@app.sprites.should_not be_empty
|
50
|
+
@app.sprites.count.should be(1)
|
51
|
+
@app.sprites[:foo].should be_a(Sprite)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
context 'initialize' do
|
56
|
+
it 'should create the sprites adt' do
|
57
|
+
@app.sprites.should_not be_nil
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'sprites/configuration'
|
3
|
+
|
4
|
+
describe Configuration do
|
5
|
+
let(:config) do
|
6
|
+
Configuration.new
|
7
|
+
end
|
8
|
+
|
9
|
+
context "#backend" do
|
10
|
+
it 'should be rmagick by default' do
|
11
|
+
config.backend.should be(:rmagick)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should set the backend' do
|
15
|
+
config.backend(:mini_magick).backend.should == :mini_magick
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should coerse backend into a symbol' do
|
19
|
+
config.backend('mini_magick').backend.should == :mini_magick
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
context '#sprites_path' do
|
24
|
+
it 'should return the default' do
|
25
|
+
config.sprites_path.should == 'public/images/sprites'
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should accept an override' do
|
29
|
+
config.sprites_path('foo').sprites_path.should == 'foo'
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context '#sprite_stylesheets_path' do
|
34
|
+
it 'should return the default' do
|
35
|
+
config.sprite_stylesheets_path.should == 'public/stylesheets/sprites'
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'should accept an override' do
|
39
|
+
config.sprite_stylesheets_path('foo').sprite_stylesheets_path.should == 'foo'
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
context '#sprite_stylesheets_path' do
|
44
|
+
it 'should return the default' do
|
45
|
+
config.sprite_pieces_path.should == 'public/images/sprite_images'
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'should accept an override' do
|
49
|
+
config.sprite_pieces_path('foo').sprite_pieces_path.should == 'foo'
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ChunkyPngGenerator do
|
4
|
+
it 'should generate a sprite and a stylesheet' do
|
5
|
+
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')
|
9
|
+
end
|
10
|
+
|
11
|
+
define_buttons_sprite
|
12
|
+
|
13
|
+
sprite_generator = ChunkyPngGenerator.new(Sprites.configuration)
|
14
|
+
sprite_generator.generate(Sprites.application.sprites)
|
15
|
+
|
16
|
+
tester = SpriteGeneratorTester.new(Sprites.application.sprites[:buttons], Sprites.configuration)
|
17
|
+
tester.should be_accurate
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SpritePiece do
|
4
|
+
context 'self.sprite_piece_full_path' do
|
5
|
+
it 'should return the full sprite piece path' do
|
6
|
+
config = Configuration.new
|
7
|
+
config.sprite_pieces_path('tmp/images/sprite_images')
|
8
|
+
|
9
|
+
sprite_piece = SpritePiece.new('foo/bar.png')
|
10
|
+
|
11
|
+
SpritePiece.sprite_piece_full_path(config, sprite_piece).should == 'tmp/images/sprite_images/foo/bar.png'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
context '#css' do
|
16
|
+
it 'should return the css for the sprite piece' do
|
17
|
+
config = Configuration.new
|
18
|
+
config.sprites_path('tmp/images/sprites')
|
19
|
+
|
20
|
+
sprite = Sprite.new(:foo).define do
|
21
|
+
sprite_piece 'foo/bar.png' => '.foo'
|
22
|
+
end
|
23
|
+
|
24
|
+
sprite_piece = sprite.sprite_pieces['foo/bar.png']
|
25
|
+
sprite_piece.x = 0
|
26
|
+
sprite_piece.y = 345
|
27
|
+
sprite_piece.width = 40
|
28
|
+
sprite_piece.height = 50
|
29
|
+
|
30
|
+
sprite_piece.css(config, sprite).should == <<-CSS
|
31
|
+
.foo
|
32
|
+
{
|
33
|
+
display:block;
|
34
|
+
width:40px;
|
35
|
+
height:50px;
|
36
|
+
background:url('/tmp/images/sprites/foo.png') no-repeat 0 -345px;
|
37
|
+
}
|
38
|
+
CSS
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'sprites/sprite_pieces'
|
3
|
+
|
4
|
+
describe SpritePieces do
|
5
|
+
|
6
|
+
before do
|
7
|
+
@sprite_pieces = SpritePieces.new
|
8
|
+
|
9
|
+
@sprite_piece_definitions = [
|
10
|
+
{'foo.png' => 'foo.css'},
|
11
|
+
{'bar.png' => 'bar.css'},
|
12
|
+
{'bas.png' => 'bas.css'}
|
13
|
+
]
|
14
|
+
|
15
|
+
@sprite_piece_definitions.each do |spd|
|
16
|
+
@sprite_pieces.add(spd)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context '#map' do
|
21
|
+
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
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context '#element_at' do
|
27
|
+
it 'should return the element at the given index' do
|
28
|
+
@sprite_pieces.element_at(1).path.should == 'bar.png'
|
29
|
+
@sprite_pieces.element_at(1).selector.should == 'bar.css'
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,146 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'sprites/sprite'
|
3
|
+
|
4
|
+
describe Sprite do
|
5
|
+
before do
|
6
|
+
@sprite = Sprite.new(:foo)
|
7
|
+
end
|
8
|
+
|
9
|
+
context '#name' do
|
10
|
+
it 'should retrieve the name' do
|
11
|
+
@sprite.name.should == :foo
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
context '#path' do
|
16
|
+
it 'should retrieve the path' do
|
17
|
+
@sprite.define(:foo) {}
|
18
|
+
@sprite.path.to_s.should == "foo.png"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
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
|
+
context "#sprite_piece" do
|
76
|
+
it 'should respond_to sprite_piece' do
|
77
|
+
Sprite.new(:foo).should respond_to(:sprite_piece)
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'should return a Sprites::SpritePiece' do
|
81
|
+
sprite = Sprite.new(:foo)
|
82
|
+
sprite.sprite_piece('sprite_images/foo.png' => '.foo').should be_a(SpritePiece)
|
83
|
+
end
|
84
|
+
|
85
|
+
it 'should add a sprite piece to the collection' do
|
86
|
+
sprite = Sprite.new(:foo)
|
87
|
+
sprite.sprite_piece('sprite_images/foo.png' => '.foo')
|
88
|
+
sprite.sprite_pieces.should_not be_empty
|
89
|
+
sprite.sprite_pieces.count.should be(1)
|
90
|
+
sprite.sprite_pieces['sprite_images/foo.png'].selector.should == '.foo'
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
context '#sprite_pieces' do
|
95
|
+
it 'should return a SpritePieces adt' do
|
96
|
+
@sprite.sprite_pieces.should be_a(SpritePieces)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
context '#stylesheet' do
|
101
|
+
it 'should return a Stylesheet' do
|
102
|
+
@sprite.define(:foo) {}
|
103
|
+
@sprite.stylesheet.should be_a(Stylesheet)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
context '#stylesheet_path' do
|
108
|
+
it 'should return the stylesheet path' do
|
109
|
+
@sprite.define(:foo) {}
|
110
|
+
@sprite.stylesheet_path.to_s.should == 'foo.css'
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
context '#orientation' do
|
115
|
+
it 'should set the orientation' do
|
116
|
+
@sprite.orientation(Sprite::Orientations::HORIZONTAL)
|
117
|
+
@sprite.orientation.should be(Sprite::Orientations::HORIZONTAL)
|
118
|
+
end
|
119
|
+
|
120
|
+
it 'should set and return the default orientation' do
|
121
|
+
@sprite.orientation.should be(Sprite::Orientations::VERTICAL)
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
context "self.sprite_full_path(configuration, sprite)" do
|
126
|
+
it 'should return the sprite full path' do
|
127
|
+
config = Configuration.new
|
128
|
+
config.sprites_path('tmp/images/sprites')
|
129
|
+
|
130
|
+
sprite = Sprite.new(:foo)
|
131
|
+
|
132
|
+
Sprite.sprite_full_path(config, sprite).should == 'tmp/images/sprites/foo.png'
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
context 'self.sprite_css_path(configuration, sprite)' do
|
137
|
+
it 'should return the path for use in the url in the background style attribute' do
|
138
|
+
config = Configuration.new
|
139
|
+
config.sprites_path('tmp/images/sprites')
|
140
|
+
|
141
|
+
sprite = Sprite.new(:foo)
|
142
|
+
|
143
|
+
Sprite.sprite_css_path(config, sprite).should == '/tmp/images/sprites/foo.png'
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
@@ -0,0 +1,100 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Sprites do
|
4
|
+
before do
|
5
|
+
@sprites = Sprites::Sprites.new
|
6
|
+
end
|
7
|
+
|
8
|
+
context 'initialize' do
|
9
|
+
it 'should create the @sprites Hash' do
|
10
|
+
@sprites.instance_variable_get(:@sprites).should be_a(Hash)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
context '#add' do
|
15
|
+
context 'with the sprite identified by a symbol' do
|
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') {}
|
32
|
+
@sprites[:foo].should be_a(Sprite)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'should add the sprite if passed in a Sprites::Sprite' do
|
37
|
+
sprite = Sprite.new(:"foo") {}
|
38
|
+
@sprites.add(sprite)
|
39
|
+
@sprites[:foo].should be(sprite)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
context '#clear' do
|
44
|
+
it 'should clear the collection' do
|
45
|
+
@sprites.add(:foo) {}
|
46
|
+
@sprites.should_not be_empty
|
47
|
+
@sprites.clear
|
48
|
+
@sprites.should be_empty
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
context '#[]' do
|
53
|
+
it 'should retrieve the sprite' do
|
54
|
+
@sprites[:foo].should be_nil
|
55
|
+
@sprites.add(:foo) {}
|
56
|
+
@sprites[:foo].should be_a(Sprite)
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'should not add to the collection during retrieval' do
|
60
|
+
@sprites[:foo]
|
61
|
+
@sprites.count.should be(0)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
context '#empty?' do
|
66
|
+
it 'should be empty when initialized' do
|
67
|
+
@sprites.should be_empty
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
context '#count' do
|
72
|
+
it 'should respond with the number of sprites in the collection' do
|
73
|
+
@sprites.count.should be(0)
|
74
|
+
@sprites.add(:foo) {}
|
75
|
+
@sprites.count.should be(1)
|
76
|
+
@sprites.add(:bar) {}
|
77
|
+
@sprites.count.should be(2)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
context "#each" do
|
82
|
+
it 'should iterate through the sprites' do
|
83
|
+
sprites = Set.new
|
84
|
+
test_sprites = Set.new
|
85
|
+
|
86
|
+
4.times do |i|
|
87
|
+
sprite = Sprite.new(:"foo#{i}") {}
|
88
|
+
sprites << sprite
|
89
|
+
@sprites.add(sprite)
|
90
|
+
end
|
91
|
+
|
92
|
+
@sprites.each do |sprite|
|
93
|
+
test_sprites << sprite
|
94
|
+
end
|
95
|
+
|
96
|
+
sprites.should == test_sprites
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Stylesheet do
|
4
|
+
|
5
|
+
context "self.sprite_full_path(configuration, sprite)" do
|
6
|
+
it 'should return the stylesheet full path' do
|
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
|
+
|
12
|
+
Stylesheet.stylesheet_full_path(config, stylesheet).should == 'tmp/stylesheets/sprites/foo.css'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
context '#sprite_pieces, #sprite_pieces=' do
|
17
|
+
it 'should allow access to and setting of sprite_pieces' do
|
18
|
+
sprite = Sprite.new(:foo)
|
19
|
+
stylesheet = Stylesheet.new('foo/bar.css', sprite)
|
20
|
+
sprite_pieces = SpritePieces.new
|
21
|
+
stylesheet.sprite_pieces = sprite_pieces
|
22
|
+
stylesheet.sprite_pieces.should be(sprite_pieces)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'sprites/test/sprite_generator_tester'
|
3
|
+
|
4
|
+
describe SpriteGeneratorTester do
|
5
|
+
describe "#test_generator" do
|
6
|
+
it 'should return 0 for known good sprite' do
|
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'
|
11
|
+
end
|
12
|
+
define_buttons_sprite
|
13
|
+
tester = SpriteGeneratorTester.new(Sprites.application.sprites[:buttons], Sprites.configuration)
|
14
|
+
tester.should be_accurate
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Sprites do
|
4
|
+
context 'self.application' do
|
5
|
+
it 'should return an application' do
|
6
|
+
Sprites.application.should be_a(Sprites::Application)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
context 'self.configure' do
|
11
|
+
it 'should congfigure the application' do
|
12
|
+
Sprites.configure do
|
13
|
+
backend :rmagick
|
14
|
+
end
|
15
|
+
|
16
|
+
Sprites.configuration.backend.should == :rmagick
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|