sprites 0.0.1.pre
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.
- 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,61 @@
|
|
|
1
|
+
require 'sprites/sprite'
|
|
2
|
+
|
|
3
|
+
module Sprites
|
|
4
|
+
class Sprites
|
|
5
|
+
def initialize
|
|
6
|
+
@sprites = Hash.new do |sprites, name|
|
|
7
|
+
sprites[name] = Sprite.new(name)
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def [](sprite_identifier)
|
|
12
|
+
@sprites.has_key?(sprite_identifier) == false ?
|
|
13
|
+
nil :
|
|
14
|
+
@sprites[sprite_identifier]
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def clear
|
|
18
|
+
@sprites.clear
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def each(&blk)
|
|
22
|
+
@sprites.values.each(&blk)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def empty?
|
|
26
|
+
@sprites.empty?
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def count
|
|
30
|
+
@sprites.size
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def add(*args, &blk)
|
|
34
|
+
if block_given?
|
|
35
|
+
name = sprite_name(*args)
|
|
36
|
+
@sprites[name].define(*args, &blk)
|
|
37
|
+
elsif args.first.is_a?(Sprite)
|
|
38
|
+
@sprites[args.first.name] = args.first
|
|
39
|
+
else
|
|
40
|
+
raise ArgumentError, "You need to supply a block or a Sprites::Sprite"
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
private
|
|
45
|
+
|
|
46
|
+
def sprite_name(*args)
|
|
47
|
+
return args.first if args.first.is_a?(Symbol)
|
|
48
|
+
|
|
49
|
+
path = case args.first
|
|
50
|
+
when String
|
|
51
|
+
args.first
|
|
52
|
+
when Hash
|
|
53
|
+
# This is for when sprite is used like,
|
|
54
|
+
# sprite 'path_to_sprite' => 'path_to_stylesheet', :option => value
|
|
55
|
+
args.first.find {|k,v| k.is_a?(String)}.first
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
File.basename(path, File.extname(path)).intern
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require 'active_support/core_ext/object/blank'
|
|
2
|
+
|
|
3
|
+
module Sprites
|
|
4
|
+
class Stylesheet
|
|
5
|
+
attr_reader :path
|
|
6
|
+
attr_accessor :sprite_pieces
|
|
7
|
+
|
|
8
|
+
def initialize(path, sprite = nil)
|
|
9
|
+
@path, @sprite = path, sprite
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def self.stylesheet_full_path(configuration, stylesheet)
|
|
13
|
+
File.join(configuration.sprite_stylesheets_path, stylesheet.path)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def css(configuration = Sprites.configuration, sprite = @sprite, sprite_pieces = @sprite_pieces)
|
|
17
|
+
return unless sprite_pieces.present?
|
|
18
|
+
|
|
19
|
+
sprite_pieces.css(configuration, sprite)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
require 'rubygems'
|
|
2
|
+
require 'css_parser'
|
|
3
|
+
begin
|
|
4
|
+
require 'rmagick'
|
|
5
|
+
rescue LoadError
|
|
6
|
+
require 'RMagick'
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
module Sprites
|
|
10
|
+
class SpriteGeneratorTester
|
|
11
|
+
include Magick
|
|
12
|
+
|
|
13
|
+
Selector = Struct.new(:selector, :x, :y, :width, :height)
|
|
14
|
+
|
|
15
|
+
attr_reader :sprite, :configuration
|
|
16
|
+
private :sprite, :configuration
|
|
17
|
+
|
|
18
|
+
def initialize(sprite, configuration)
|
|
19
|
+
@sprite, @configuration = sprite, configuration
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def accurate?
|
|
23
|
+
test_generate.all? {|x| x == 0}
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
private
|
|
27
|
+
def test_generate
|
|
28
|
+
sprite_pieces = @sprite.sprite_pieces
|
|
29
|
+
sprite_image = Image.read(Sprite.sprite_full_path(configuration, sprite)).first
|
|
30
|
+
|
|
31
|
+
stylesheet_path = Stylesheet.stylesheet_full_path(configuration, sprite.stylesheet)
|
|
32
|
+
stylesheet_absolute_path = ::Sprites.gem_root.join(stylesheet_path)
|
|
33
|
+
parser = CssParser::Parser.new
|
|
34
|
+
parser.load_file!(File.basename(stylesheet_absolute_path), File.dirname(stylesheet_absolute_path), :screen)
|
|
35
|
+
|
|
36
|
+
sprite_pieces_with_selector_data = []
|
|
37
|
+
|
|
38
|
+
parser.each_rule_set do |rs|
|
|
39
|
+
rules_set = Set.new(rs.selectors)
|
|
40
|
+
rules_set.map!(&:strip)
|
|
41
|
+
sprite_piece = sprite_pieces.find do |sp|
|
|
42
|
+
rules_set == Set.new(sp.css_selector.split(%r{,\s*}))
|
|
43
|
+
end
|
|
44
|
+
width = rs['width'][%r{\s*(\d+)(?:px)?;?$}, 1].to_i
|
|
45
|
+
height = rs['height'][%r{\s*(\d+)(?:px)?;?$}, 1].to_i
|
|
46
|
+
background = rs['background'][%r{\s*([^;]+)}, 1]
|
|
47
|
+
x = background[%r{\s-?(\d+)(?:px)?\s}, 1].to_i
|
|
48
|
+
y = background[%r{\s-?(\d+)(?:px)?$}, 1].to_i
|
|
49
|
+
sprite_pieces_with_selector_data << [sprite_piece, Selector.new(rs.selectors, x, y, width, height)]
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
percent_diferences = sprite_pieces_with_selector_data.map do |sp, selector_data|
|
|
53
|
+
begin
|
|
54
|
+
raise selector_data.inspect if sp.nil?
|
|
55
|
+
sprite_piece_path = ::Sprites.gem_root.join(SpritePiece.sprite_piece_full_path(configuration, sp))
|
|
56
|
+
sprite_piece_image = Image.read(sprite_piece_path).first
|
|
57
|
+
|
|
58
|
+
curr_sprite_image = sprite_image.crop(
|
|
59
|
+
selector_data.x,
|
|
60
|
+
selector_data.y,
|
|
61
|
+
selector_data.width,
|
|
62
|
+
selector_data.height
|
|
63
|
+
)
|
|
64
|
+
diff_iamge, pd = curr_sprite_image.compare_channel(sprite_piece_image, MeanSquaredErrorMetric)
|
|
65
|
+
pd
|
|
66
|
+
ensure
|
|
67
|
+
sprite_piece_image.destroy! if sprite_piece_image
|
|
68
|
+
curr_sprite_image.destroy! if curr_sprite_image
|
|
69
|
+
curr_sprite_image = nil
|
|
70
|
+
sprite_piece_image = nil
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
ensure
|
|
74
|
+
sprite_image.destroy! if sprite_image
|
|
75
|
+
sprite_image = nil
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
data/lib/sprites.rb
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
require "sprites/version"
|
|
2
|
+
require 'sprites/application'
|
|
3
|
+
require 'sprites/configuration'
|
|
4
|
+
|
|
5
|
+
module Sprites
|
|
6
|
+
autoload :ChunkyPngGenerator, 'sprites/sprite_generators/chunky_png_generator'
|
|
7
|
+
|
|
8
|
+
class << self
|
|
9
|
+
def application
|
|
10
|
+
@application ||= Application.new(configuration)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def configure(&blk)
|
|
14
|
+
@configuration ||= Configuration.new
|
|
15
|
+
@configuration.configure(&blk) if block_given?
|
|
16
|
+
@configuration
|
|
17
|
+
end
|
|
18
|
+
alias_method :configuration, :configure
|
|
19
|
+
|
|
20
|
+
def gem_root
|
|
21
|
+
Pathname.new(File.expand_path('../..', __FILE__))
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-black-default-cap-28.png
ADDED
|
Binary file
|
|
Binary file
|
data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-black-onclick-cap-28.png
ADDED
|
Binary file
|
|
Binary file
|
data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-black-rollover-cap-28.png
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-green-default-drop.png
ADDED
|
Binary file
|
data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-green-default-edge.png
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-green-onclick-drop.png
ADDED
|
Binary file
|
data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-green-onclick-edge.png
ADDED
|
Binary file
|
|
Binary file
|
data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-green-rollover-cap.png
ADDED
|
Binary file
|
data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-green-rollover-drop.png
ADDED
|
Binary file
|
data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-green-rollover-edge.png
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-trans-default-drop.png
ADDED
|
Binary file
|
data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-trans-default-edge.png
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-trans-onclick-drop.png
ADDED
|
Binary file
|
data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-trans-onclick-edge.png
ADDED
|
Binary file
|
|
Binary file
|
data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-trans-rollover-cap.png
ADDED
|
Binary file
|
data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-trans-rollover-drop.png
ADDED
|
Binary file
|
data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-trans-rollover-edge.png
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-white-rollover-cap.png
ADDED
|
Binary file
|
|
Binary file
|
data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-yellow-default-cap.png
ADDED
|
Binary file
|
|
Binary file
|
data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-yellow-onclick-cap.png
ADDED
|
Binary file
|
|
Binary file
|
data/spec/fixtures/known_good/sprite_images/buttons/dark_background/btn-yellow-rollover-cap.png
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|