rapper_lite 0.1.0 → 0.1.1
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/Gemfile +3 -0
- data/Gemfile.lock +12 -0
- data/README.markdown +15 -2
- data/VERSION +1 -1
- data/bin/rapper_lite +37 -12
- data/lib/rapper_lite.rb +17 -14
- data/lib/rapper_lite/build.rb +31 -0
- data/lib/rapper_lite/compressors.rb +3 -3
- data/lib/rapper_lite/config.rb +38 -27
- data/lib/rapper_lite/utils.rb +17 -13
- data/lib/rapper_lite/versioning.rb +14 -20
- data/lib/rapper_lite/watch_support.rb +46 -0
- data/lib/tasks.rb +11 -1
- data/rapper_lite.gemspec +4 -1
- data/spec/fixtures/src/coffeescript.coffee +1 -0
- data/spec/fixtures/testcases/combination/expected/base_combined.js +1 -1
- data/spec/fixtures/testcases/combination/rapper.yml +5 -4
- data/spec/fixtures/testcases/concatenation/expected/base_combined.js +7 -0
- data/spec/fixtures/testcases/concatenation/rapper.yml +5 -4
- metadata +23 -20
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -5,13 +5,22 @@ GEM
|
|
5
5
|
Platform (>= 0.4.0)
|
6
6
|
open4
|
7
7
|
Platform (0.4.0)
|
8
|
+
coffee-script (2.2.0)
|
9
|
+
coffee-script-source
|
10
|
+
execjs
|
11
|
+
coffee-script-source (1.1.2)
|
12
|
+
execjs (1.2.9)
|
13
|
+
multi_json (~> 1.0)
|
14
|
+
fssm (0.2.7)
|
8
15
|
git (1.2.5)
|
9
16
|
jeweler (1.6.4)
|
10
17
|
bundler (~> 1.0)
|
11
18
|
git (>= 1.2.5)
|
12
19
|
rake
|
20
|
+
multi_json (1.0.3)
|
13
21
|
open4 (1.0.1)
|
14
22
|
rake (0.9.2)
|
23
|
+
rb-fsevent (0.4.3.1)
|
15
24
|
rdiscount (1.6.8)
|
16
25
|
rspec (1.3.2)
|
17
26
|
yard (0.6.4)
|
@@ -23,8 +32,11 @@ PLATFORMS
|
|
23
32
|
ruby
|
24
33
|
|
25
34
|
DEPENDENCIES
|
35
|
+
coffee-script (~> 2.2.0)
|
36
|
+
fssm (~> 0.2.7)
|
26
37
|
jeweler (~> 1.6.4)
|
27
38
|
rake (~> 0.9.2)
|
39
|
+
rb-fsevent
|
28
40
|
rdiscount (~> 1.6.8)
|
29
41
|
rspec (~> 1.3.2)
|
30
42
|
yard
|
data/README.markdown
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# rapper_lite #
|
2
2
|
|
3
|
-
Bare-bones static asset packager and compressor. Currently supports CSS and
|
3
|
+
Bare-bones static asset packager and compressor. Currently supports CSS, JavaScript, and CoffeeScript. Uses MD5 versioning to avoid re-compressing packages that don't need to be re-compressed. Uses a simple config file so that you don't have to wrangle wacky comment DSLs in your source code just to join and compress a few files.
|
4
4
|
|
5
5
|
## Packaging assets without wanting to claw your eyes out
|
6
6
|
|
@@ -33,7 +33,18 @@ Bare-bones static asset packager and compressor. Currently supports CSS and Java
|
|
33
33
|
|
34
34
|
2. Run rapper lite:
|
35
35
|
|
36
|
-
$ rapper_lite config/
|
36
|
+
$ rapper_lite config/static_assets.yml
|
37
|
+
|
38
|
+
Watch for changes:
|
39
|
+
|
40
|
+
$ rapper_lite --watch config/static_assets.yml
|
41
|
+
|
42
|
+
If no config file is passed in, RapperLite will search for the config file:
|
43
|
+
|
44
|
+
./rapper.yml
|
45
|
+
./assets.yml
|
46
|
+
./config/rapper.yml
|
47
|
+
./config/assets.yml
|
37
48
|
|
38
49
|
3. That's it.
|
39
50
|
|
@@ -53,6 +64,8 @@ Rapper's got a Gemfile. You know what to do.
|
|
53
64
|
|
54
65
|
## Version history
|
55
66
|
|
67
|
+
* **0.1.1** - Turns out you can only release `master`, which `jeweler` doesn't tell you. Oops.
|
68
|
+
* **0.1.0** - Add CoffeeScript support. Re-write `rapper_lite` command to allow watching for changes. Add watch support to Rake task.
|
56
69
|
* **0.0.2** - Fix gem homepage link.
|
57
70
|
* **0.0.1** - Initial release.
|
58
71
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.1.1
|
data/bin/rapper_lite
CHANGED
@@ -1,19 +1,44 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
|
2
|
+
|
3
3
|
require File.join( File.expand_path( File.dirname(__FILE__) ), '../lib/rapper_lite' )
|
4
|
+
require "optparse"
|
5
|
+
require "fssm"
|
6
|
+
require "rb-fsevent"
|
4
7
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
module RapperLite
|
9
|
+
class CommandLine
|
10
|
+
|
11
|
+
attr_reader :rapper
|
12
|
+
|
13
|
+
def initialize
|
14
|
+
args, options = self.parse_args
|
15
|
+
@config_path = args.first || RapperLite::Engine.find_config_path
|
16
|
+
@rapper = self.build_rapper_engine
|
17
|
+
options[:watch] ? @rapper.watch : @rapper.noisy_package
|
18
|
+
end
|
19
|
+
|
20
|
+
def build_rapper_engine
|
21
|
+
puts "Loading RapperLite with #{@config_path}"
|
22
|
+
RapperLite::Engine.new( @config_path )
|
23
|
+
end
|
24
|
+
|
25
|
+
protected
|
26
|
+
|
27
|
+
def parse_args
|
28
|
+
options = {}
|
29
|
+
OptionParser.new do |opts|
|
30
|
+
opts.banner = "Usage: #{File.basename(__FILE__)} [-w|--watch] [-h|--help] [configfile]"
|
31
|
+
opts.on( "-h", "--help", "Print this message") do
|
32
|
+
p opts
|
33
|
+
exit 1
|
34
|
+
end
|
35
|
+
opts.on( "-w", "--watch", "Watch files for changes") do
|
36
|
+
options[:watch] = true
|
37
|
+
end
|
38
|
+
end.parse!
|
39
|
+
[ARGV, options]
|
11
40
|
end
|
12
41
|
end
|
13
|
-
raise "No config file found."
|
14
42
|
end
|
15
43
|
|
16
|
-
|
17
|
-
puts "Packaging assets, using: #{config}"
|
18
|
-
RapperLite::Engine.new( config_path ).package
|
19
|
-
puts "Done!"
|
44
|
+
RapperLite::CommandLine.new
|
data/lib/rapper_lite.rb
CHANGED
@@ -1,10 +1,12 @@
|
|
1
|
+
require "rubygems"
|
2
|
+
require "bundler/setup"
|
1
3
|
require 'yaml'
|
2
4
|
|
3
5
|
module RapperLite; end
|
4
6
|
Dir[File.expand_path( "#{File.dirname( __FILE__ )}/rapper_lite/*.rb" )].each do |file|
|
5
7
|
require file
|
6
8
|
end
|
7
|
-
# TODO: Re-enable
|
9
|
+
# TODO: Re-enable?
|
8
10
|
# require File.dirname( __FILE__ ) + "/tasks.rb"
|
9
11
|
|
10
12
|
# No batteries included, and no strings attached /
|
@@ -12,34 +14,35 @@ end
|
|
12
14
|
# Gots to get the loot so I can bring home the bacon
|
13
15
|
module RapperLite
|
14
16
|
class Engine
|
17
|
+
include RapperLite::Build
|
18
|
+
include RapperLite::Compressors
|
15
19
|
include RapperLite::Config
|
16
20
|
include RapperLite::Utils
|
17
|
-
include RapperLite::Compressors
|
18
21
|
include RapperLite::Versioning
|
19
22
|
|
20
23
|
def initialize( config_path )
|
21
|
-
@config = {}
|
22
|
-
@definitions = Struct.new( :css, :js ).new
|
23
24
|
self.load_config( config_path )
|
24
25
|
end
|
25
26
|
|
27
|
+
def self.find_config_path
|
28
|
+
["./", "config/"].each do |folder|
|
29
|
+
["rapper.yml", "assets.yml"].each do |file|
|
30
|
+
path = File.expand_path( file, folder )
|
31
|
+
return path if File.exists?( path )
|
32
|
+
end
|
33
|
+
end
|
34
|
+
raise "No config file found."
|
35
|
+
end
|
36
|
+
|
26
37
|
def package
|
27
38
|
[:js, :css].each do |type|
|
28
39
|
definition = @definitions[type]
|
29
40
|
source = File.expand_path( self.root( type ) )
|
30
41
|
|
31
42
|
definition.each do |name, spec|
|
32
|
-
next if name
|
43
|
+
next if self.config_key?( name ) # Skip config settings
|
33
44
|
next unless self.needs_packaging?( type, name )
|
34
|
-
|
35
|
-
source_files = self.file_paths( type, name )
|
36
|
-
destination_file = self.destination_path( type, name )
|
37
|
-
|
38
|
-
self.join_files( source_files, destination_file )
|
39
|
-
|
40
|
-
if self.compress?
|
41
|
-
self.compress( destination_file )
|
42
|
-
end
|
45
|
+
self.build_package( type, name )
|
43
46
|
end
|
44
47
|
end
|
45
48
|
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require "coffee-script"
|
2
|
+
|
3
|
+
module RapperLite::Build
|
4
|
+
|
5
|
+
def build_package( type, name )
|
6
|
+
source_paths = self.file_paths( type, name )
|
7
|
+
destination_file = self.destination_path( type, name )
|
8
|
+
tempfiles = []
|
9
|
+
|
10
|
+
# Convert any CoffeeScript to JS
|
11
|
+
if type == :js
|
12
|
+
source_paths.map! do |source_path|
|
13
|
+
if File.extname( source_path ) == ".coffee"
|
14
|
+
tempfile = Tempfile.new( "rapper_lite_coffee" )
|
15
|
+
tempfile.write( CoffeeScript.compile( File.read( source_path ) ) )
|
16
|
+
tempfile.close
|
17
|
+
tempfile.path
|
18
|
+
else
|
19
|
+
source_path
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
# Join files and compress if needed
|
25
|
+
self.join_files( source_paths, destination_file )
|
26
|
+
self.compress( destination_file ) if self.compress?( type )
|
27
|
+
|
28
|
+
# Cleanup
|
29
|
+
tempfiles.each{ |tempfile| tempfile.unlink }
|
30
|
+
end
|
31
|
+
end
|
@@ -9,11 +9,11 @@ rescue LoadError; end
|
|
9
9
|
module RapperLite::Compressors
|
10
10
|
|
11
11
|
# Compress a file in-place. Relies on the file's suffix to determine type.
|
12
|
-
def compress(
|
12
|
+
def compress( file_path )
|
13
13
|
opts = {}
|
14
14
|
# TODO: Someday this goes away.
|
15
|
-
opts = self.yui_config if
|
16
|
-
RapperLite::Compressors::Compressor.compress(
|
15
|
+
opts = self.yui_config if file_path =~ /\.js/
|
16
|
+
RapperLite::Compressors::Compressor.compress( file_path, opts )
|
17
17
|
end
|
18
18
|
|
19
19
|
protected
|
data/lib/rapper_lite/config.rb
CHANGED
@@ -1,32 +1,18 @@
|
|
1
1
|
module RapperLite::Config
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
def load_config( config_path )
|
6
|
-
@config_path = config_path
|
7
|
-
@config = YAML.load_file( config_path )
|
8
|
-
@definitions.css = @config["css"]
|
9
|
-
@definitions.js = @config["js"]
|
10
|
-
end
|
11
|
-
|
12
|
-
def save_config
|
13
|
-
File.open( @config_path, "w" ) do |file|
|
14
|
-
file.puts @config.to_yaml
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
3
|
+
# Source path for files of the given type.
|
18
4
|
def root( type )
|
19
|
-
|
20
|
-
@definitions.send( type )["root"] || @config["root"] || "."
|
5
|
+
self.config_or_default( "root", type, "." )
|
21
6
|
end
|
22
7
|
|
8
|
+
# Destination path for files of the given type.
|
23
9
|
def destination( type )
|
24
|
-
|
25
|
-
@definitions.send( type )["destination"] || @config["destination"] || "."
|
10
|
+
self.config_or_default( "destination", type, "." )
|
26
11
|
end
|
27
12
|
|
28
|
-
|
29
|
-
|
13
|
+
# True if we should compress files of the given type.
|
14
|
+
def compress?( type )
|
15
|
+
self.config_or_default( "compress", type, false )
|
30
16
|
end
|
31
17
|
|
32
18
|
def yui_config
|
@@ -40,13 +26,16 @@ module RapperLite::Config
|
|
40
26
|
|
41
27
|
# Array of source files for the given asset package.
|
42
28
|
def file_paths( type, name )
|
43
|
-
|
44
|
-
root = self.root( type )
|
45
|
-
definition["files"].map do |file|
|
29
|
+
@definitions[type][name]["files"].map do |file|
|
46
30
|
if file[0] == "+"
|
31
|
+
# Include other asset package
|
47
32
|
self.file_paths( type, file[1..-1] )
|
33
|
+
elsif type == :js
|
34
|
+
coffee_path = File.join( self.root( type ), "#{file}.coffee" )
|
35
|
+
js_path = File.join( self.root( type ), "#{file}.js" )
|
36
|
+
File.exists?( coffee_path ) ? coffee_path : js_path
|
48
37
|
else
|
49
|
-
File.join( root, "#{file}.#{type}" )
|
38
|
+
File.join( self.root( type ), "#{file}.#{type}" )
|
50
39
|
end
|
51
40
|
end.flatten
|
52
41
|
end
|
@@ -55,7 +44,29 @@ module RapperLite::Config
|
|
55
44
|
File.join( self.destination( type ), "#{name}.#{type}" )
|
56
45
|
end
|
57
46
|
|
58
|
-
|
59
|
-
|
47
|
+
protected
|
48
|
+
|
49
|
+
def load_config( config_path )
|
50
|
+
@config_path = config_path
|
51
|
+
@config = YAML.load_file( @config_path )
|
52
|
+
@definitions = {
|
53
|
+
:css => @config["css"],
|
54
|
+
:js => @config["js"]
|
55
|
+
}
|
56
|
+
end
|
57
|
+
|
58
|
+
# Write in-memory config to file (i.e. just update version strings).
|
59
|
+
def save_config
|
60
|
+
File.open( @config_path, "w" ) do |file|
|
61
|
+
file.puts( @config.to_yaml )
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def config_or_default( key, type, default )
|
66
|
+
if @definitions[type].key?( key )
|
67
|
+
@definitions[type][key]
|
68
|
+
else
|
69
|
+
@config.key?( key ) ? @config[key] : default
|
70
|
+
end
|
60
71
|
end
|
61
72
|
end
|
data/lib/rapper_lite/utils.rb
CHANGED
@@ -1,19 +1,23 @@
|
|
1
|
-
# Rapper-wide utility methods for working with paths, files, etc.
|
2
1
|
module RapperLite::Utils
|
3
|
-
|
2
|
+
|
4
3
|
protected
|
5
|
-
|
6
|
-
# Concatenate one or more files
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
#
|
11
|
-
# @param [String] destination_file Destination for concatenated output.
|
12
|
-
def join_files( source_files, destination_file )
|
13
|
-
source_files = Array( source_files )
|
14
|
-
source_files.any? do |path|
|
4
|
+
|
5
|
+
# Concatenate one or more files by shelling out to `cat`.
|
6
|
+
def join_files( source_paths, destination_path )
|
7
|
+
source_paths = Array( source_paths )
|
8
|
+
source_paths.each do |path|
|
15
9
|
raise "#{path} doesn't exist." unless File.exists?( path )
|
16
10
|
end
|
17
|
-
|
11
|
+
|
12
|
+
system "cat #{source_paths.join( " " )} > #{destination_path}"
|
13
|
+
end
|
14
|
+
|
15
|
+
# True if the given string is a reserved config key name.
|
16
|
+
def config_key?( key )
|
17
|
+
self.config_keys.include?( key )
|
18
|
+
end
|
19
|
+
|
20
|
+
def config_keys
|
21
|
+
%w( root destination compress )
|
18
22
|
end
|
19
23
|
end
|
@@ -4,35 +4,29 @@ require 'tempfile'
|
|
4
4
|
# Asset versioning methods.
|
5
5
|
module RapperLite::Versioning
|
6
6
|
|
7
|
+
def needs_packaging?( type, name )
|
8
|
+
return true unless File.exists?( self.destination_path( type, name ) )
|
9
|
+
self.version( type, name ) != @definitions[type][name]["version"]
|
10
|
+
end
|
11
|
+
|
7
12
|
protected
|
8
13
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
# MD5 version of the concatenated raw asset package.
|
15
|
+
def version( type, name )
|
16
|
+
source_paths = self.file_paths( type, name )
|
17
|
+
destination_file = Tempfile.new( 'rapper' )
|
18
|
+
self.join_files( source_paths, destination_file.path )
|
19
|
+
version = Digest::MD5.file( destination_file.path ).to_s[0,7]
|
20
|
+
destination_file.unlink
|
21
|
+
version
|
17
22
|
end
|
18
23
|
|
19
24
|
def refresh_versions
|
20
25
|
[:css, :js].each do |type|
|
21
26
|
@definitions[type].each do |name, spec|
|
22
|
-
next if
|
27
|
+
next if self.config_key?( name )
|
23
28
|
@definitions[type][name]["version"] = self.version( type, name )
|
24
29
|
end
|
25
30
|
end
|
26
31
|
end
|
27
|
-
|
28
|
-
# MD5 version of the concatenated asset package.
|
29
|
-
def version( type, name )
|
30
|
-
definition = @definitions[type][name]
|
31
|
-
source_files = self.file_paths( type, name )
|
32
|
-
destination_file = Tempfile.new( 'rapper' )
|
33
|
-
self.join_files( source_files, destination_file.path )
|
34
|
-
version = Digest::MD5.file( destination_file.path ).to_s[0,4]
|
35
|
-
destination_file.unlink
|
36
|
-
version
|
37
|
-
end
|
38
32
|
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module RapperLite
|
2
|
+
class Engine
|
3
|
+
|
4
|
+
def watch
|
5
|
+
rapper = self
|
6
|
+
rapper.noisy_package
|
7
|
+
FSSM.monitor( rapper.common_root, '**/*.{css,js,coffee}' ) do
|
8
|
+
component_files = rapper.all_component_paths
|
9
|
+
update do |base, relative|
|
10
|
+
if component_files.include?( File.join( base, relative) )
|
11
|
+
rapper.noisy_package
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def noisy_package
|
18
|
+
print( "Compiling static assets..." ) && STDOUT.flush
|
19
|
+
self.package
|
20
|
+
puts " Done!"
|
21
|
+
end
|
22
|
+
|
23
|
+
# LCD for JS and CSS roots
|
24
|
+
def common_root
|
25
|
+
js_path = File.expand_path( self.root( :js ) ).split( "/" )
|
26
|
+
css_path = File.expand_path( self.root( :css ) ).split( "/" )
|
27
|
+
path = []
|
28
|
+
while js_component = js_path.shift && css_component = css_path.shift
|
29
|
+
break if js_component != css_component
|
30
|
+
path << js_component
|
31
|
+
end
|
32
|
+
path.join( "/" )
|
33
|
+
end
|
34
|
+
|
35
|
+
# All absolute file paths for the component files
|
36
|
+
def all_component_paths
|
37
|
+
[:css, :js].map do |type|
|
38
|
+
(@definitions[type].keys - self.config_keys).map do |name|
|
39
|
+
self.file_paths( type, name )
|
40
|
+
end
|
41
|
+
end.flatten.uniq.map do |path|
|
42
|
+
File.expand_path( path )
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/lib/tasks.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
module
|
1
|
+
module RapperLite
|
2
2
|
|
3
3
|
# Rake tasks for building / refreshing packages
|
4
4
|
class Tasks
|
@@ -31,6 +31,16 @@ module Rapper
|
|
31
31
|
task :package do
|
32
32
|
@rapper.package
|
33
33
|
end
|
34
|
+
|
35
|
+
desc "Watch static assets and re-package when necessary"
|
36
|
+
task :watch do
|
37
|
+
begin
|
38
|
+
RapperLite::Engine.method( :watch )
|
39
|
+
rescue NameError
|
40
|
+
raise "You need to `require 'rapper_lite/watch_support'`, first."
|
41
|
+
end
|
42
|
+
@rapper.watch
|
43
|
+
end
|
34
44
|
end
|
35
45
|
end
|
36
46
|
end
|
data/rapper_lite.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "rapper_lite"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Tyson Tate"]
|
@@ -26,13 +26,16 @@ Gem::Specification.new do |s|
|
|
26
26
|
"VERSION",
|
27
27
|
"bin/rapper_lite",
|
28
28
|
"lib/rapper_lite.rb",
|
29
|
+
"lib/rapper_lite/build.rb",
|
29
30
|
"lib/rapper_lite/compressors.rb",
|
30
31
|
"lib/rapper_lite/config.rb",
|
31
32
|
"lib/rapper_lite/utils.rb",
|
32
33
|
"lib/rapper_lite/versioning.rb",
|
34
|
+
"lib/rapper_lite/watch_support.rb",
|
33
35
|
"lib/tasks.rb",
|
34
36
|
"lib/yui/css_compressor.rb",
|
35
37
|
"rapper_lite.gemspec",
|
38
|
+
"spec/fixtures/src/coffeescript.coffee",
|
36
39
|
"spec/fixtures/src/simple_1.css",
|
37
40
|
"spec/fixtures/src/simple_1.js",
|
38
41
|
"spec/fixtures/src/simple_2.css",
|
@@ -0,0 +1 @@
|
|
1
|
+
x: -> true
|
@@ -1 +1 @@
|
|
1
|
-
a=1;b=2;function b(){return false}var x=1;var y=2;function a(){return true}a=1;b=2;function b(){return false};
|
1
|
+
a=1;b=2;function b(){return false}var x=1;var y=2;function a(){return true}a=1;b=2;function b(){return false}(function(){({x:function(){return true}})}).call(this);
|
@@ -7,20 +7,21 @@
|
|
7
7
|
- files:
|
8
8
|
- simple_1
|
9
9
|
- simple_2
|
10
|
-
- version:
|
10
|
+
- version: 683e7ae
|
11
11
|
- base_combined: !omap
|
12
12
|
- files:
|
13
13
|
- +base
|
14
14
|
- simple_1
|
15
|
-
- version:
|
15
|
+
- version: 0bb9443
|
16
16
|
- js: !omap
|
17
17
|
- base: !omap
|
18
18
|
- files:
|
19
19
|
- simple_1
|
20
20
|
- subfolder/simple_2
|
21
|
-
- version:
|
21
|
+
- version: f3d92a9
|
22
22
|
- base_combined: !omap
|
23
23
|
- files:
|
24
24
|
- subfolder/simple_2
|
25
25
|
- +base
|
26
|
-
|
26
|
+
- coffeescript
|
27
|
+
- version: 75d7058
|
@@ -7,20 +7,21 @@
|
|
7
7
|
- files:
|
8
8
|
- simple_1
|
9
9
|
- simple_2
|
10
|
-
- version:
|
10
|
+
- version: 683e7ae
|
11
11
|
- base_combined: !omap
|
12
12
|
- files:
|
13
13
|
- +base
|
14
14
|
- simple_1
|
15
|
-
- version:
|
15
|
+
- version: 0bb9443
|
16
16
|
- js: !omap
|
17
17
|
- base: !omap
|
18
18
|
- files:
|
19
19
|
- simple_1
|
20
20
|
- subfolder/simple_2
|
21
|
-
- version:
|
21
|
+
- version: f3d92a9
|
22
22
|
- base_combined: !omap
|
23
23
|
- files:
|
24
24
|
- subfolder/simple_2
|
25
25
|
- +base
|
26
|
-
|
26
|
+
- coffeescript
|
27
|
+
- version: 75d7058
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rapper_lite
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-10-05 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
requirement: &
|
16
|
+
requirement: &70105090745260 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.9.2
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70105090745260
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &70105090744000 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 1.3.2
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70105090744000
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: yard
|
38
|
-
requirement: &
|
38
|
+
requirement: &70105090743240 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70105090743240
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rdiscount
|
49
|
-
requirement: &
|
49
|
+
requirement: &70105090742340 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.6.8
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70105090742340
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: jeweler
|
60
|
-
requirement: &
|
60
|
+
requirement: &70105090741660 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 1.6.4
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70105090741660
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: yui-compressor
|
71
|
-
requirement: &
|
71
|
+
requirement: &70105090740380 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 0.9.6
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70105090740380
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: fssm
|
82
|
-
requirement: &
|
82
|
+
requirement: &70105090739480 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ~>
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: 0.2.7
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70105090739480
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: rb-fsevent
|
93
|
-
requirement: &
|
93
|
+
requirement: &70105090737600 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *70105090737600
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: coffee-script
|
104
|
-
requirement: &
|
104
|
+
requirement: &70105090735640 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ~>
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
version: 2.2.0
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *70105090735640
|
113
113
|
description: Simple static asset packaging. Compresses files only when they're updated.
|
114
114
|
email: tyson@tysontate.com
|
115
115
|
executables:
|
@@ -127,13 +127,16 @@ files:
|
|
127
127
|
- VERSION
|
128
128
|
- bin/rapper_lite
|
129
129
|
- lib/rapper_lite.rb
|
130
|
+
- lib/rapper_lite/build.rb
|
130
131
|
- lib/rapper_lite/compressors.rb
|
131
132
|
- lib/rapper_lite/config.rb
|
132
133
|
- lib/rapper_lite/utils.rb
|
133
134
|
- lib/rapper_lite/versioning.rb
|
135
|
+
- lib/rapper_lite/watch_support.rb
|
134
136
|
- lib/tasks.rb
|
135
137
|
- lib/yui/css_compressor.rb
|
136
138
|
- rapper_lite.gemspec
|
139
|
+
- spec/fixtures/src/coffeescript.coffee
|
137
140
|
- spec/fixtures/src/simple_1.css
|
138
141
|
- spec/fixtures/src/simple_1.js
|
139
142
|
- spec/fixtures/src/simple_2.css
|
@@ -220,7 +223,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
220
223
|
version: '0'
|
221
224
|
segments:
|
222
225
|
- 0
|
223
|
-
hash:
|
226
|
+
hash: 3082783424749448526
|
224
227
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
225
228
|
none: false
|
226
229
|
requirements:
|