compressible 0.0.2.4 → 0.0.2.6

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