compressible 0.0.2.4 → 0.0.2.6

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -5,7 +5,7 @@ require 'rake/gempackagetask'
5
5
  # http://docs.rubygems.org/read/chapter/20
6
6
  spec = Gem::Specification.new do |s|
7
7
  s.name = "compressible"
8
- s.version = "0.0.2.4"
8
+ s.version = "0.0.2.6"
9
9
  s.author = "Lance Pollard"
10
10
  s.summary = "Compressible: Quick asset compression for Ruby - Perfect for Heroku"
11
11
  s.homepage = "http://github.com/viatropos/compressible"
@@ -16,7 +16,7 @@ spec = Gem::Specification.new do |s|
16
16
  s.platform = Gem::Platform::RUBY
17
17
  s.files = %w(README.markdown Rakefile init.rb MIT-LICENSE) + Dir["{lib,rails,test}/**/*"] - Dir["test/tmp"]
18
18
  s.require_path = "lib"
19
- s.add_dependency("activesupport", ">= 2.1.2")
19
+ s.add_dependency("activesupport", ">= 2.3.5")
20
20
  s.add_dependency("yui-compressor")
21
21
  end
22
22
 
@@ -1,11 +1,7 @@
1
1
  require 'rubygems'
2
2
  require 'yaml'
3
- begin
4
- gem "activesupport", "= 2.3.5"
5
- require 'active_support'
6
- rescue Gem::LoadError => e
7
- puts e.inspect
8
- end
3
+ require 'active_support'
4
+
9
5
  this = File.dirname(__FILE__)
10
6
  require File.join(this, "ext.rb")
11
7
 
@@ -26,3 +22,7 @@ Compressible.send(:include, Compressible::Configurable)
26
22
  Compressible.send(:include, Compressible::Assetable)
27
23
  Compressible.send(:include, Compressible::Readable)
28
24
  Compressible.send(:include, Compressible::Writable)
25
+
26
+ def Compressible(*args, &block)
27
+ Compressible.define!(*args, &block)
28
+ end
@@ -27,8 +27,9 @@ module Compressible
27
27
  paths = args.dup
28
28
  options = paths.extract_options!
29
29
  to = asset_name(options[:to])
30
- add_to_config(:js, to, paths)
30
+ add_to_config(:js, to, paths.flatten)
31
31
  write_javascript(*args) unless config[:read_only] == true
32
+ to
32
33
  end
33
34
  alias_method :add_javascript, :javascript
34
35
  alias_method :js, :javascript
@@ -37,8 +38,9 @@ module Compressible
37
38
  paths = args.dup
38
39
  options = paths.extract_options!
39
40
  to = asset_name(options[:to])
40
- add_to_config(:css, to, paths)
41
+ add_to_config(:css, to, paths.flatten)
41
42
  write_stylesheet(*args) unless config[:read_only] == true
43
+ to
42
44
  end
43
45
  alias_method :add_stylesheet, :stylesheet
44
46
  alias_method :css, :stylesheet
@@ -0,0 +1,37 @@
1
+ module Compressible
2
+ class Builder
3
+ class << self
4
+ def define!(*args, &block)
5
+ new(*args, &block)
6
+ end
7
+ end
8
+
9
+ def initialize(*args, &block)
10
+ instance_eval(&block) if block_given?
11
+ end
12
+
13
+ def read_only(value = true)
14
+ Compressible.configure(:read_only => value)
15
+ end
16
+
17
+ def stylesheets(&block)
18
+ @context = "stylesheet"
19
+ instance_eval(&block) if block_given?
20
+ @context = nil
21
+ end
22
+
23
+ def javascripts(&block)
24
+ @context = "javascript"
25
+ instance_eval(&block) if block_given?
26
+ @context = nil
27
+ end
28
+
29
+ def method_missing(meth, *args, &block)
30
+ if @context
31
+ Compressible.send(@context, args, :to => [meth])
32
+ else
33
+ super(meth, *args, &block)
34
+ end
35
+ end
36
+ end
37
+ end
@@ -20,6 +20,10 @@ module Compressible
20
20
 
21
21
  self
22
22
  end
23
+
24
+ def define!(*args, &block)
25
+ Compressible::Builder.define!(*args, &block)
26
+ end
23
27
 
24
28
  def defaults
25
29
  {
@@ -38,7 +42,7 @@ module Compressible
38
42
  def add_to_config(type, key, value)
39
43
  raise "Please define a name for the cached #{type.to_s} using ':to => :my_name'" unless key
40
44
  item = find_or_create(type, key)
41
- item[:paths] = value.collect {|i| asset_name(i)}
45
+ item[:paths] = value.flatten.collect {|i| asset_name(i)}
42
46
  item
43
47
  end
44
48
 
@@ -130,6 +130,34 @@ class CompressibleTest < Test::Unit::TestCase
130
130
 
131
131
  end
132
132
 
133
+ context "dsl" do
134
+ setup do
135
+ Compressible.reset
136
+ Compressible do
137
+ read_only
138
+
139
+ javascripts do
140
+ result "test-a", "test-b"
141
+ end
142
+
143
+ stylesheets do
144
+ result "test-a", "test-b"
145
+ end
146
+ end
147
+ end
148
+
149
+ should "have defined the right js and css" do
150
+ result = {:js => [{:paths=>["test-a", "test-b"], :to=>"result"}],
151
+ :stylesheet_path=>nil,
152
+ :javascript_path=>nil,
153
+ :read_only=>true,
154
+ :css => [{:paths=>["test-a", "test-b"], :to=>"result"}]
155
+ }
156
+ assert_equal result, Compressible.config
157
+ end
158
+
159
+
160
+ end
133
161
 
134
162
  end
135
163
 
@@ -1,7 +1,6 @@
1
1
  require "test/unit"
2
2
  require "rubygems"
3
3
  require "ruby-debug"
4
- gem "activesupport", "= 2.3.5"
5
4
  require 'active_support'
6
5
  require 'shoulda'
7
6
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: compressible
3
3
  version: !ruby/object:Gem::Version
4
- hash: 79
4
+ hash: 75
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
9
  - 2
10
- - 4
11
- version: 0.0.2.4
10
+ - 6
11
+ version: 0.0.2.6
12
12
  platform: ruby
13
13
  authors:
14
14
  - Lance Pollard
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2010-06-07 00:00:00 -07:00
19
+ date: 2010-07-02 00:00:00 -07:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -27,12 +27,12 @@ dependencies:
27
27
  requirements:
28
28
  - - ">="
29
29
  - !ruby/object:Gem::Version
30
- hash: 15
30
+ hash: 9
31
31
  segments:
32
32
  - 2
33
- - 1
34
- - 2
35
- version: 2.1.2
33
+ - 3
34
+ - 5
35
+ version: 2.3.5
36
36
  type: :runtime
37
37
  version_requirements: *id001
38
38
  - !ruby/object:Gem::Dependency
@@ -63,6 +63,7 @@ files:
63
63
  - init.rb
64
64
  - MIT-LICENSE
65
65
  - lib/compressible/assetable.rb
66
+ - lib/compressible/builder.rb
66
67
  - lib/compressible/configurable.rb
67
68
  - lib/compressible/readable.rb
68
69
  - lib/compressible/view_helpers.rb