assetify 1.0.0 → 2.0.0

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/Assetfile CHANGED
@@ -2,4 +2,8 @@
2
2
  # Assetify Assetfile
3
3
  #
4
4
 
5
- rb "colored", "https://github.com/defunkt/colored/raw/master/lib/colored.rb", :to => "lib/assetify"
5
+ rb "colored", "https://github.com/defunkt/colored/raw/master/lib/colored.rb", :to => "lib/assetify/cli"
6
+
7
+ pkg "mobile", "void" do
8
+ js "other", 'other'
9
+ end
data/README.md CHANGED
@@ -1,7 +1,9 @@
1
1
  Assetify
2
2
  ========
3
3
 
4
- Downloads/updates assets. Any framework.
4
+ Downloads/updates assets. Any framework*.
5
+
6
+ * But if you're using sprockets/rails pipeline there's more sugar.
5
7
 
6
8
 
7
9
  Install
@@ -24,13 +26,32 @@ This will create a `Assetfile` if not found.
24
26
  Assetfile
25
27
  =========
26
28
 
27
- Like a `Gemfile`, but you choose the filetype (or extension) before:
29
+ Like a `Gemfile`, but with fewer chars. Only one actually.
30
+
31
+
32
+ Behold the 'a'
33
+ --------------
34
+
35
+ a "tipsy", "http://...tipsy.js"
36
+ a "tipsy", "http://...tipsy.css"
37
+ a "video", "http://...video.mpeg"
38
+
39
+
40
+ There's also an alias 'asset' for 'a', if you enjoy typing.
41
+
42
+
43
+ asset "tipsy", "http://...tipsy.js"
44
+
45
+
46
+
47
+ You can choose the filetype (or extension) before too:
28
48
 
29
49
  type "name", "url", <"version"> or <:options>
30
50
 
31
51
  js "jquery", "http://code.jquery.com/jquery-{VERSION}.min.js", "1.6"
32
52
  js "tipsy", "https://github.com/jaz303/tipsy/.../jquery.tipsy.js"
33
53
 
54
+
34
55
  Stylesheets:
35
56
 
36
57
  css "tipsy", "https://github.com/jaz303/tipsy/.../jquery.tipsy.css"
@@ -83,7 +104,7 @@ Files will be written with the namespace "fancy":
83
104
 
84
105
  You can pass :shallow => true to avoid the namespace:
85
106
 
86
- pkg "fancy", "http://to.tgz.or.zip", :shallow => true do
107
+ pkg "fancy", "http://to.tgz.or.zip", shallow: true do
87
108
 
88
109
  Results in:
89
110
 
@@ -102,8 +123,8 @@ dealing with pkgs:
102
123
 
103
124
  pkg "complexfw", "link" do
104
125
  js "complex.min.js"
105
- dir "images/", :to => "images/complexfw"
106
- # Another option, treat all as a type:
126
+ dir "images/", to: "images/complexfw"
127
+ # Another option, treat`em all as filetype:
107
128
  dir "src/", :as => :js
108
129
  end
109
130
 
@@ -116,24 +137,71 @@ that returns the *first match* inside the archive. Check out libarchive
116
137
  or the pkg.rb source for more info.
117
138
 
118
139
 
119
- Global 'a'
140
+ Sprockets
141
+ =========
142
+
143
+ Or The Rails 3.1+ Asset Pipeline.
144
+
145
+ Wouldn`t it be nice to bundle all those little dependencies and tiny
146
+ stylesheets to avoid extra includes, but, change the source on every
147
+ update...PITA. No worries:
148
+
149
+ CSS will be converted to sass, scss or erb (defaults), your choice.
150
+ And every path corrected to use the pipeline.
151
+
152
+ Jquery Mobile example:
153
+
154
+ pkg :mobile, "http://code.jquery.com....zip", shallow: true do
155
+ js "mobile", "mobile.js"
156
+ css "mobile", "mobile.css", :as => :sass
157
+ dir "images/*"
158
+ end
159
+
160
+ You just need:
161
+
162
+ //= require 'mobile'
163
+
164
+ On application.css and application.js.
165
+
166
+ Images will be in 'vendor/assets/mobile/*', and the paths inside
167
+ mobile.css corrected to 'image-url(mobile/*)', or <%%> if I`ve had
168
+ choose erb.
169
+
170
+ This means you can have any third party library in the format
171
+ you like, always up-to-date. Easy to copy and customize parts
172
+ of the code.
173
+
174
+
175
+ foo2bar
176
+ -------
177
+
178
+ You can convert your assets to coffescript, sass or scss:
179
+
180
+ js "fulib", "http....", :as => :coffee
181
+ css "1140", "http....", :as => :sass
182
+ css "1140", "http....", :as => :scss
183
+
184
+ Note: You do need aditional stuff for this.
185
+ Gem 'sass' and/or node`s 'js2coffee' (install via npm).
186
+
187
+
188
+ minimagick
120
189
  ----------
121
190
 
122
- If the link contains the file extension, say: 'fu.com/lib.js'
123
- You can use just 'a' to specify each asset:
191
+ Preprocess images is also possible:
124
192
 
125
193
 
126
- a "tipsy", "http://...tipsy.js"
127
- a "tipsy", "http://...tipsy.css"
128
- a "video", "http://...video.mpeg"
194
+ png "logo", "http....", :as => :jpg, :quality => 75
129
195
 
130
196
 
197
+ Note: Need to install 'imagemagick' and 'minimagick' gem for this.
198
+
131
199
  Versions
132
200
  --------
133
201
 
134
- Assetify first recognizes the file as text or binary.
135
- If the file is human readable, try a X.X.Xxx pattern match
136
- that if found, is used, otherwise use md5sum.
202
+ Assetify first tries to recognizes the file as text or binary.
203
+ If the file is human readable, try a (X.X.Xxx?) pattern match
204
+ that if found it`s used. Otherwise go for md5sum.
137
205
 
138
206
 
139
207
  Other
@@ -142,7 +210,7 @@ Other
142
210
  Set a different location per file:
143
211
 
144
212
 
145
- js "other", "http://lib.../other.js", :to => "different/path"
213
+ js "other", "http://lib.../other.js", to: "different/path"
146
214
 
147
215
  Filename will be: ./different/path/other.js
148
216
  This works for namespaces too, change "to" with "ns".
@@ -174,6 +242,13 @@ Out of the box support for rails 3.1, defaults to 'vendor/assets'.
174
242
  Rails 3.0< users should change the options as above.
175
243
 
176
244
 
245
+ Emacs
246
+ -----
247
+
248
+ Use ruby syntax for nice colors:
249
+
250
+ (add-to-list 'auto-mode-alist '("Assetfile$" . ruby-mode))
251
+
177
252
 
178
253
  Contributing
179
254
  ------------
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.0
1
+ 2.0.0
data/assetify.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{assetify}
8
- s.version = "1.0.0"
8
+ s.version = "2.0.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Marcos Piccinini", "Rafael Barbosa"]
12
- s.date = %q{2011-09-30}
12
+ s.date = %q{2011-10-05}
13
13
  s.default_executable = %q{assetify}
14
14
  s.description = %q{Downloads/updates assets based on an Assetfile. Any framework.}
15
15
  s.email = %q{x@nofxx.com}
@@ -52,6 +52,7 @@ Gem::Specification.new do |s|
52
52
  "spec/assetify_spec.rb",
53
53
  "spec/fixtures/complex.tgz",
54
54
  "spec/fixtures/fancy.tgz",
55
+ "spec/fixtures/mobile.css",
55
56
  "spec/fixtures/sassify.css",
56
57
  "spec/spec_helper.rb"
57
58
  ]
@@ -62,7 +63,7 @@ A ------------------------------------------------------------ A
62
63
 
63
64
  * A S S E T I F Y *
64
65
 
65
- Thank you for installing assetify-1.0.0.
66
+ Thank you for installing assetify-2.0.0.
66
67
 
67
68
  Here is a few optional gems:
68
69
 
@@ -7,7 +7,7 @@ module Assetify
7
7
 
8
8
  class Asset
9
9
  include Helpers
10
- attr_accessor :type, :name, :url, :ns, :pkg, :ver, :ext
10
+ attr_accessor :type, :name, :url, :ns, :pkg, :ver, :ext, :as
11
11
 
12
12
  def initialize(type, name, url, ver = nil, params={})
13
13
  raise "NoType" unless type
@@ -21,14 +21,15 @@ module Assetify
21
21
  @ext = @type == :img ? find_ext_for(url) : @type
22
22
  end
23
23
 
24
- @pkg = params[:pkg]
25
- @ns = params[:ns] || ""
26
- @to = params[:to] || ""
24
+ @pkg, @as, @ns = params[:pkg], params[:as], params[:ns]
25
+ @to = params[:to] || ""
27
26
  end
28
27
 
29
28
  def filename
30
29
  return @filename if @filename
31
30
  @filename = "#{name}.#{ext}"
31
+ @filename += ".#{as}" if as
32
+ @filename
32
33
  end
33
34
 
34
35
  def find_ext_for file
@@ -66,8 +67,14 @@ module Assetify
66
67
  end
67
68
 
68
69
  def data
70
+ return @data if @data
69
71
  # Get data, from a pkg or download directly
70
- @data ||= @pkg ? @pkg.get(url, :force).values.first : get_data(url)
72
+ @data = @pkg ? @pkg.get(url, :force).values.first : get_data(url)
73
+
74
+ # Compile/fix paths if asked to
75
+ @data = Pathfix.new(@data, @as, @ns).fix if @as
76
+
77
+ @data
71
78
  end
72
79
 
73
80
  #
@@ -134,7 +141,10 @@ module Assetify
134
141
  end
135
142
 
136
143
  def filter params
137
- all.select { |a| "#{a.name}#{a.pkg}" =~ /#{params}/ }
144
+ all.select do |a|
145
+ blob = "#{a.name}#{a.pkg.name if a.pkg}"
146
+ blob.include? params
147
+ end
138
148
  end
139
149
 
140
150
  end
@@ -1,39 +1,42 @@
1
- module Path
2
- class Findr
1
+ module Assetify
2
+ class Pathfix
3
3
 
4
- def initialize chunk, ns = nil
5
- @chunk = chunk
6
- @ns = ns
7
- matches
4
+ def initialize chunk, as = :erb, ns = nil
5
+ @chunk, @as, @ns = chunk, as, ns
6
+ @images = scan_images
8
7
  end
9
8
 
10
- def sass?
11
- true
9
+ def images
10
+ @images
11
+ end
12
+
13
+ def scan_images
14
+ @chunk.scan(/url\(([a-zA-Z0-9\/\_\-\.]*\.\w+)\)/xo).flatten
12
15
  end
13
16
 
14
17
  def replace src
15
- if sass?
16
- "image-url('#{@ns}#{src}')"
18
+ fpath = @ns ? "#{@ns}/#{src}" : src
19
+ if @as == :erb
20
+ "url('<%= image_path('#{fpath}') %>')"
17
21
  else
18
- "url('<%= image_path(#{@ns}#{src}) %>)"
22
+ "image-url('#{fpath}')"
19
23
  end
20
24
  end
21
25
 
22
- def matches
23
- @images = @chunk.scan(/url\((.*)\)/).flatten
24
- end
25
-
26
- def images
27
- @images
26
+ def fix
27
+ @images.each do |path|
28
+ @chunk["url(#{path})"] = replace path.split("/").last
29
+ end
30
+ @as != :erb ? tmpl_chunk : @chunk
28
31
  end
29
32
 
30
- def fixed
31
- sprocketized = @chunk
32
- @images.each do |uri|
33
- sprocketized["url(#{uri})"] = replace uri.split("/").last
34
- #gsub(/\.|\//, "")
33
+ def tmpl_chunk
34
+ begin
35
+ require 'sass/css'
36
+ Sass::CSS.new(@chunk).render(@as)
37
+ rescue Sass::SyntaxError => e
38
+ @error = e
35
39
  end
36
- sprocketized
37
40
  end
38
41
 
39
42
  end
@@ -8,14 +8,14 @@ module Assetify
8
8
 
9
9
  PATH = "/tmp/"
10
10
 
11
- def initialize(name, url)
11
+ def initialize(name, url, opts={})
12
12
  @name = name
13
13
  @pkgname = url.split("/").last
14
14
  @url = url
15
15
  end
16
16
 
17
17
  def path
18
- File.join(PATH, name)
18
+ File.join(PATH, name.to_s)
19
19
  end
20
20
 
21
21
  def fullpath
@@ -37,12 +37,15 @@ module Assetify
37
37
 
38
38
  def get(file, force = false)
39
39
  # Download and write to tmp if force or doensnt exists
40
- write(get_data(url)) if force || !File.exists?(File.join(fullpath))
40
+ write(get_data(url)) if force || !File.exists?(fullpath)
41
41
  # Better way when multiple are found....?
42
42
  read_from_pkg(file)
43
43
  end
44
44
 
45
- def unpack_to_vendor
45
+ #
46
+ # Used when pkgs doesn't provide a block, just dump it somewhere.
47
+ #
48
+ def unpack_all
46
49
  read_from_pkg.each do |file, data|
47
50
  fname, *dir = file =~ /\/$/ ? [nil, file] : file.split("/").reverse
48
51
  dir = File.join Opt[:vendor], dir.reverse.join("/")
data/lib/assetify/cli.rb CHANGED
@@ -63,7 +63,9 @@ module Assetify
63
63
  def work!(params)
64
64
  start = Time.now
65
65
  Assetfile.find
66
- puts "Assetify - #{Asset.all.size} assets"
66
+ print "Assetify - #{Asset.all.size} assets"
67
+ print " | #{params[1..-1].join(' . ')}" if params[1]
68
+ puts " |"
67
69
  bar
68
70
  work_on params
69
71
  bar
data/lib/assetify/dsl.rb CHANGED
@@ -2,7 +2,7 @@ module Assetify
2
2
 
3
3
  class DSL
4
4
  attr_reader :assets
5
-
5
+
6
6
  #
7
7
  # Makes a pkg, a gz/tar/zip asset/
8
8
  #
@@ -14,15 +14,16 @@ module Assetify
14
14
  if block_given?
15
15
  set_namespace name unless opts[:shallow]
16
16
  instance_exec &block
17
- @ns = @pkg = nil
18
17
  else
19
- @pkg.unpack_to_vendor
18
+ @pkg.unpack_all
20
19
  end
21
20
  assets
21
+ ensure
22
+ @ns = @pkg = nil
22
23
  end
23
24
 
24
25
  #
25
- # Makes a group, a namspace for the assets.
26
+ # Makes a group, a namespace for the assets.
26
27
  #
27
28
  # group :foo do
28
29
  # end
@@ -32,17 +33,26 @@ module Assetify
32
33
  instance_exec &block
33
34
  @ns = nil
34
35
  assets
36
+ ensure
37
+ @ns = nil
35
38
  end
36
39
 
37
- def dir regex, to
38
- to = to[:to]
40
+ #
41
+ # Makes assets out of the entire directory
42
+ #
43
+ # pkg :foo do
44
+ # dir "images/*"
45
+ # dir "images/*jpg"
46
+ # end
47
+ #
48
+ def dir regex, params = {}
49
+ to = params[:to]
39
50
  if @pkg
40
51
  @pkg.get(regex).each do |path, data|
41
52
  next if path =~ /\/$/ # dont let dirs get in... ugly
42
53
  ext, *name = path.split(".").reverse
43
54
  name = name.reverse.join(".").split("/").last
44
- @assets ||= []
45
- @assets << Asset.new(ext, name, path, nil, { :pkg => @pkg , :to => to } )
55
+ create_asset(ext, name, path, nil, { :to => to } )
46
56
  end
47
57
  end
48
58
  end
@@ -55,11 +65,10 @@ module Assetify
55
65
  #
56
66
  def method_missing method, name, uri, *params
57
67
  params, ver = params.partition { |param| param.is_a?(Hash) }
58
- opts = {:ns => @ns, :pkg => @pkg}
68
+ opts = {}
59
69
  params.each { |hsh| opts.merge! hsh }
60
70
  ver = ver[0]
61
- @assets ||= []
62
- @assets << Asset.new(method.to_sym, name, uri, ver, opts)
71
+ create_asset(method.to_sym, name, uri, ver, opts)
63
72
  end
64
73
 
65
74
  #
@@ -71,9 +80,10 @@ module Assetify
71
80
  extension = url.split(".").last
72
81
  send(extension, name, url)
73
82
  end
83
+ alias :asset :a
74
84
 
75
85
  #
76
- # Create Assetfile assets path setters
86
+ # Creates Assetfile assets path setters
77
87
  #
78
88
  # javascript "new/path"
79
89
  # ...
@@ -83,6 +93,18 @@ module Assetify
83
93
  end
84
94
  end
85
95
 
96
+ private
97
+
98
+ #
99
+ # Helper to create asset with correct options
100
+ #
101
+ def create_asset(ext, name, path, ver, opts = {})
102
+ opts.merge! ({pkg: @pkg, ns: @ns })
103
+ @assets ||= []
104
+ @assets << Asset.new(ext, name, path, ver, opts)
105
+ end
106
+
107
+
86
108
  def set_namespace name
87
109
  @ns = @ns.nil? ? name : "#{@ns}/#{name}"
88
110
  end
@@ -42,21 +42,23 @@ module Assetify
42
42
  when Net::HTTPSuccess then @data = response
43
43
  when Net::HTTPRedirection then download(redirect_url(response), limit - 1)
44
44
  else
45
- puts "response code: #{response.code}!"
45
+ puts " - fail - response code: #{response.code}!"
46
46
  response.error!
47
+ nil
47
48
  end
48
49
  end
49
50
 
50
51
  def get_data(str)
51
52
  @data = if str =~ /http/
52
- download(str).body
53
+ data = download(str)
54
+ data ? data.body : nil
53
55
  else
54
56
  File.open(str)
55
57
  end
56
58
  end
57
59
 
58
60
  def write binary
59
- FileUtils.mkdir_p path unless Dir.exists?(path)
61
+ FileUtils.mkdir_p path unless Dir.exists?(path)
60
62
  File.open(fullpath, "w") { |f| f.puts(binary) }
61
63
  end
62
64
 
@@ -1,3 +1,3 @@
1
1
  module Assetify
2
- VERSION = "1.0.0"
2
+ VERSION = "2.0.0"
3
3
  end
@@ -28,6 +28,43 @@ describe Asset do
28
28
  as.instance_variable_set "@data", "\u001F\x8B\b\u0000\xF5\u0000"
29
29
  as.print_version.should eql("v537c8396f74 ")
30
30
  end
31
+
32
+ end
33
+
34
+ describe "Namespaced" do
35
+
36
+ let (:as) { Asset.new :js, "sweet", "http://candy.js", nil, :ns => "spacemonkey" }
37
+
38
+ it "should have name" do
39
+ as.ns.should eql("spacemonkey")
40
+ end
41
+
42
+ end
43
+
44
+ describe "On Package" do
45
+
46
+ let (:as) { Asset.new :js, "sweet", "http://candy.js", nil, :pkg => "firefly" }
47
+
48
+ it "should have name" do
49
+ as.pkg.should eql("firefly")
50
+ end
51
+
52
+ end
53
+
54
+ describe "Class methods" do
55
+
56
+ it "should have all assets on hand" do
57
+ Asset.all.should have(2).assets
58
+ end
59
+
60
+ it "should find assets" do
61
+ Asset.filter("color").should have(1).assets
62
+ end
63
+
64
+ it "should find assets by pkg" do
65
+ Asset.filter("mobile").should have(1).assets
66
+ end
67
+
31
68
  end
32
69
 
33
70
  end
@@ -38,6 +38,12 @@ describe DSL do
38
38
  a.fullpath.should eql("vendor/assets/javascripts/foo.js")
39
39
  end
40
40
 
41
+ it "should parse js with global 'asset' alias too" do
42
+ a = Assetify::DSL.parse("asset 'foo', 'foolink.js'")[0]
43
+ a.should be_an Asset
44
+ a.fullpath.should eql("vendor/assets/javascripts/foo.js")
45
+ end
46
+
41
47
  it "should parse css with global 'a' keyword" do
42
48
  a = Assetify::DSL.parse("a 'foo', 'http://w.foolink/c/?foo.css'")[0]
43
49
  a.should be_an Asset
@@ -63,6 +69,22 @@ describe DSL do
63
69
  a.name.should eql("jnice")
64
70
  end
65
71
 
72
+ describe "Templates and Pathfixes" do
73
+
74
+ it "should parse css to erb nicely" do
75
+ a = Assetify::DSL.parse("css 'foo', 'foolink', :as => :erb")[0]
76
+ a.should be_an Asset
77
+ a.fullpath.should eql("vendor/assets/stylesheets/foo.css.erb")
78
+ end
79
+
80
+ it "should parse css to sass nicely" do
81
+ a = Assetify::DSL.parse("css 'foo', 'foolink', :as => :sass")[0]
82
+ a.should be_an Asset
83
+ a.fullpath.should eql("vendor/assets/stylesheets/foo.css.sass")
84
+ end
85
+
86
+ end
87
+
66
88
  describe "Group Assets" do
67
89
 
68
90
  it "should group and use a namespace" do
@@ -99,6 +121,12 @@ describe DSL do
99
121
  a[0].fullpath.should eql("vendor/assets/javascripts/fancy/foo.js")
100
122
  end
101
123
 
124
+ it "should use name as namespace too" do
125
+ a = Assetify::DSL.parse "pkg 'complex', '/tmp/complex/complex.tgz' do; dir 'images/*'; end"
126
+ a.should have(3).assets
127
+ a[0].fullpath.should eql("vendor/assets/images/complex/two.png")
128
+ end
129
+
102
130
  it "should accept shallow too" do
103
131
  a = Assetify::DSL.parse "pkg 'fancy', 'http://fancy.zip', :shallow => true do; js 'foo', 'foolink'; end"
104
132
  a[0].should be_an Asset
@@ -113,7 +141,7 @@ describe DSL do
113
141
 
114
142
  it "should unpack to vendor if no block given" do
115
143
  Pkg.should_receive(:new).with("fancy", "http://fancy.zip").and_return(mp = mock(Pkg))
116
- mp.should_receive :unpack_to_vendor
144
+ mp.should_receive :unpack_all
117
145
  a = Assetify::DSL.parse "pkg 'fancy', 'http://fancy.zip'"
118
146
  end
119
147
  end
@@ -1,24 +1,83 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
2
 
3
- describe Path do
3
+ describe Pathfix do
4
4
 
5
5
  it "should spawn!" do
6
- f = Path::Findr.new "fu"
7
- f.should be_instance_of Path::Findr
6
+ f = Pathfix.new "fu"
7
+ f.should be_instance_of Assetify::Pathfix
8
8
  end
9
9
 
10
- describe "Instantiated" do
10
+ describe "Simple test ERB" do
11
11
 
12
- let (:f) { Path::Findr.new ".tipsy { padding: 5px; background-image: url(../images/tipsy.gif); }" }
12
+ let (:f) { Pathfix.new ".tipsy { padding: 5px; background-image: url(../images/tipsy.gif); }" }
13
13
 
14
14
  it "should detect images" do
15
15
  f.images.should eql(["../images/tipsy.gif"])
16
16
  end
17
17
 
18
18
  it "should change css" do
19
- f.fixed.should eql ".tipsy { padding: 5px; background-image: url(../images/tipsy.gif); }"
19
+ f.fix.should eql ".tipsy { padding: 5px; background-image: url('<%= image_path('tipsy.gif') %>'); }"
20
20
  end
21
21
 
22
22
  end
23
23
 
24
+ describe "Simple test namespaced ERB" do
25
+
26
+ let (:f) { Pathfix.new ".tipsy { padding: 5px; background-image: url(../images/tipsy.gif); }", :erb, :nicelib }
27
+
28
+ it "should detect images" do
29
+ f.images.should eql(["../images/tipsy.gif"])
30
+ end
31
+
32
+ it "should change css" do
33
+ f.fix.should eql ".tipsy { padding: 5px; background-image: url('<%= image_path('nicelib/tipsy.gif') %>'); }"
34
+ end
35
+
36
+ end
37
+
38
+
39
+ describe "Multiple assets test sass" do
40
+
41
+ let (:f) { Pathfix.new "div.rating-cancel,div.rating-cancel a{background:url(delete.gif) no-repeat 0 -16px}
42
+ div.star-rating,div.star-rating a{background:url(star.gif) no-repeat 0 0px}", :sass }
43
+
44
+ it "should detect images" do
45
+ f.images.should eql(["delete.gif", "star.gif"])
46
+ end
47
+
48
+ it "should change css" do
49
+ f.fix.should eql "div\n &.rating-cancel\n background: image-url(\"delete.gif\") no-repeat 0 -16px\n a\n background: image-url(\"delete.gif\") no-repeat 0 -16px\n &.star-rating\n background: image-url(\"star.gif\") no-repeat 0 0px\n a\n background: image-url(\"star.gif\") no-repeat 0 0px\n"
50
+ end
51
+
52
+ end
53
+
54
+ describe "Multiple assets test scss" do
55
+
56
+ let (:f) { Pathfix.new "div.rating-cancel,div.rating-cancel a{background:url(delete.gif) no-repeat 0 -16px}
57
+ div.star-rating,div.star-rating a{background:url(star.gif) no-repeat 0 0px}", :scss }
58
+
59
+ it "should detect images" do
60
+ f.images.should eql(["delete.gif", "star.gif"])
61
+ end
62
+
63
+ it "should change css" do
64
+ f.fix.should eql "div {\n &.rating-cancel {\n background: image-url(\"delete.gif\") no-repeat 0 -16px;\n a {\n background: image-url(\"delete.gif\") no-repeat 0 -16px; } }\n &.star-rating {\n background: image-url(\"star.gif\") no-repeat 0 0px;\n a {\n background: image-url(\"star.gif\") no-repeat 0 0px; } } }\n"
65
+ end
66
+
67
+ end
68
+
69
+ describe "Multiple assets test big css minified file" do
70
+
71
+ let (:f) { Pathfix.new File.read("#{File.dirname(__FILE__)}/../fixtures/mobile.css"), :scss }
72
+
73
+ it "should detect images" do
74
+ f.images.should eql(["images/icons-18-white.png", "images/icons-18-black.png", "images/icons-36-white.png", "images/icons-36-black.png", "images/ajax-loader.png"])
75
+ end
76
+
77
+ # it "should change css" do
78
+ # f.fix.should match "background-image: image-url(\"images/icons-36-white.png\")"
79
+ # end
80
+
81
+ end
82
+
24
83
  end
@@ -26,6 +26,16 @@ describe Pkg do
26
26
  as.get("fancy/fancy.css").should eql("fancy/fancy.css" => "// Fancy css!\n\n#foo {\n padding: 10px;\n}\n")
27
27
  end
28
28
 
29
+ it "should get file without path from unpack" do
30
+ as = Pkg.new "fancy", "/tmp/fancy/fancy.tgz"
31
+ as.get("fancy.css").should eql("fancy/fancy.css" => "// Fancy css!\n\n#foo {\n padding: 10px;\n}\n")
32
+ end
33
+
34
+ it "should get file from part of the name" do
35
+ as = Pkg.new "fancy", "/tmp/fancy/fancy.tgz"
36
+ as.get("cy.css").should eql("fancy/fancy.css" => "// Fancy css!\n\n#foo {\n padding: 10px;\n}\n")
37
+ end
38
+
29
39
  it "should read all assets within pkg" do
30
40
  as = Pkg.new "complex", "/tmp/complex/complex.tgz"
31
41
  as.read_from_pkg.should be_a Hash #(hash_including "complex/images/3.png"=>"Im a png image..3\n")
@@ -33,13 +43,17 @@ describe Pkg do
33
43
 
34
44
  it "should unpack all to vendor" do
35
45
  as = Pkg.new "complex", "/tmp/complex/complex.tgz"
36
- as.unpack_to_vendor #.should be_a Hash #(hash_including "complex/images/3.png"=>"Im a png image..3\n")
46
+ as.unpack_all #.should be_a Hash #(hash_including "complex/images/3.png"=>"Im a png image..3\n")
37
47
  File.exists?("public/vendor/complex/src/main.js").should be_true
38
48
  `rm -rf vendor/assets/vendor`
39
49
  end
40
50
 
41
- it "should shallow paths" do
51
+ it "should download pkg only once" do
52
+ as = Pkg.new "fancy", "/tmp/fancy/fancy.tgz"
42
53
 
54
+ as.should_not_receive(:write)
43
55
 
56
+ as.get("fancy/fancy.css")
57
+ as.get("fancy/fancy.css")
44
58
  end
45
59
  end
@@ -0,0 +1,309 @@
1
+ /*!
2
+ * jQuery Mobile v1.0rc1
3
+ * http://jquerymobile.com/
4
+ *
5
+ * Copyright 2010, jQuery Project
6
+ * Dual licensed under the MIT or GPL Version 2 licenses.
7
+ * http://jquery.org/license
8
+ *//*!
9
+ * jQuery Mobile Framework
10
+ * Copyright (c) jQuery Project
11
+ * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
12
+ */.ui-bar-a{border:1px solid #2a2a2a;background:#111;color:#fff;font-weight:bold;text-shadow:0 -1px 1px
13
+ #000;background-image:-webkit-gradient(linear,left top,left
14
+ bottom,from(#3c3c3c),to(#111));background-image:-webkit-linear-gradient(top,#3c3c3c,#111);background-image:-moz-linear-gradient(top,#3c3c3c,#111);background-image:-ms-linear-gradient(top,#3c3c3c,#111);background-image:-o-linear-gradient(top,#3c3c3c,#111);background-image:linear-gradient(top,#3c3c3c,#111)}.ui-bar-a,.ui-bar-a
15
+ input,.ui-bar-a select,.ui-bar-a textarea,.ui-bar-a button{font-family:Helvetica,Arial,sans-serif}.ui-bar-a
16
+ .ui-link-inherit{color:#fff}.ui-bar-a .ui-link{color:#7cc4e7;font-weight:bold}.ui-body-a{border:1px solid
17
+ #2a2a2a;background:#222;color:#fff;text-shadow:0 1px 0 #000;font-weight:normal;background-image:-webkit-gradient(linear,left top,left
18
+ bottom,from(#666),to(#222));background-image:-webkit-linear-gradient(top,#666,#222);background-image:-moz-linear-gradient(top,#666,#222);background-image:-ms-linear-gradient(top,#666,#222);background-image:-o-linear-gradient(top,#666,#222);background-image:linear-gradient(top,#666,#222)}.ui-body-a,.ui-body-a
19
+ input,.ui-body-a select,.ui-body-a textarea,.ui-body-a button{font-family:Helvetica,Arial,sans-serif}.ui-body-a
20
+ .ui-link-inherit{color:#fff}.ui-body-a
21
+ .ui-link{color:#2489ce;font-weight:bold}.ui-br{border-bottom:#828282;border-bottom:rgba(130,130,130,.3);border-bottom-width:1px;border-bottom-style:solid}.ui-btn-up-a{border:1px
22
+ solid #222;background:#333;font-weight:bold;color:#fff;text-shadow:0 -1px 1px #000;background-image:-webkit-gradient(linear,left top,left
23
+ bottom,from(#555),to(#333));background-image:-webkit-linear-gradient(top,#555,#333);background-image:-moz-linear-gradient(top,#555,#333);background-image:-ms-linear-gradient(top,#555,#333);background-image:-o-linear-gradient(top,#555,#333);background-image:linear-gradient(top,#555,#333)}.ui-btn-up-a
24
+ a.ui-link-inherit{color:#fff}.ui-btn-hover-a{border:1px solid #000;background:#444;font-weight:bold;color:#fff;text-shadow:0 -1px 1px
25
+ #000;background-image:-webkit-gradient(linear,left top,left
26
+ bottom,from(#666),to(#444));background-image:-webkit-linear-gradient(top,#666,#444);background-image:-moz-linear-gradient(top,#666,#444);background-image:-ms-linear-gradient(top,#666,#444);background-image:-o-linear-gradient(top,#666,#444);background-image:linear-gradient(top,#666,#444)}.ui-btn-hover-a
27
+ a.ui-link-inherit{color:#fff}.ui-btn-down-a{border:1px solid #000;background:#3d3d3d;font-weight:bold;color:#fff;text-shadow:0 -1px 1px
28
+ #000;background-image:-webkit-gradient(linear,left top,left
29
+ bottom,from(#333),to(#5a5a5a));background-image:-webkit-linear-gradient(top,#333,#5a5a5a);background-image:-moz-linear-gradient(top,#333,#5a5a5a);background-image:-ms-linear-gradient(top,#333,#5a5a5a);background-image:-o-linear-gradient(top,#333,#5a5a5a);background-image:linear-gradient(top,#333,#5a5a5a)}.ui-btn-down-a
30
+ a.ui-link-inherit{color:#fff}.ui-btn-up-a,.ui-btn-hover-a,.ui-btn-down-a{font-family:Helvetica,Arial,sans-serif;text-decoration:none}.ui-bar-b{border:1px
31
+ solid #456f9a;background:#5e87b0;color:#fff;font-weight:bold;text-shadow:0 -1px 1px #254f7a;background-image:-webkit-gradient(linear,left
32
+ top,left
33
+ bottom,from(#81a8ce),to(#5e87b0));background-image:-webkit-linear-gradient(top,#81a8ce,#5e87b0);background-image:-moz-linear-gradient(top,#81a8ce,#5e87b0);background-image:-ms-linear-gradient(top,#81a8ce,#5e87b0);background-image:-o-linear-gradient(top,#81a8ce,#5e87b0);background-image:linear-gradient(top,#81a8ce,#5e87b0)}.ui-bar-b,.ui-bar-b
34
+ input,.ui-bar-b select,.ui-bar-b textarea,.ui-bar-b button{font-family:Helvetica,Arial,sans-serif}.ui-bar-b
35
+ .ui-link-inherit{color:#fff}.ui-bar-b .ui-link{color:#7cc4e7;font-weight:bold}.ui-body-b{border:1px solid
36
+ #c6c6c6;background:#ccc;color:#333;text-shadow:0 1px 0 #fff;font-weight:normal;background-image:-webkit-gradient(linear,left top,left
37
+ bottom,from(#e6e6e6),to(#ccc));background-image:-webkit-linear-gradient(top,#e6e6e6,#ccc);background-image:-moz-linear-gradient(top,#e6e6e6,#ccc);background-image:-ms-linear-gradient(top,#e6e6e6,#ccc);background-image:-o-linear-gradient(top,#e6e6e6,#ccc);background-image:linear-gradient(top,#e6e6e6,#ccc)}.ui-body-b,.ui-body-b
38
+ input,.ui-body-b select,.ui-body-b textarea,.ui-body-b button{font-family:Helvetica,Arial,sans-serif}.ui-body-b
39
+ .ui-link-inherit{color:#333}.ui-body-b .ui-link{color:#2489ce;font-weight:bold}.ui-btn-up-b{border:1px solid
40
+ #145072;background:#2567ab;font-weight:bold;color:#fff;text-shadow:0 -1px 1px #145072;background-image:-webkit-gradient(linear,left top,left
41
+ bottom,from(#5f9cc5),to(#396b9e));background-image:-webkit-linear-gradient(top,#5f9cc5,#396b9e);background-image:-moz-linear-gradient(top,#5f9cc5,#396b9e);background-image:-ms-linear-gradient(top,#5f9cc5,#396b9e);background-image:-o-linear-gradient(top,#5f9cc5,#396b9e);background-image:linear-gradient(top,#5f9cc5,#396b9e)}.ui-btn-up-b
42
+ a.ui-link-inherit{color:#fff}.ui-btn-hover-b{border:1px solid #00516e;background:#4b88b6;font-weight:bold;color:#fff;text-shadow:0 -1px 1px
43
+ #014d68;background-image:-webkit-gradient(linear,left top,left
44
+ bottom,from(#72b0d4),to(#4b88b6));background-image:-webkit-linear-gradient(top,#72b0d4,#4b88b6);background-image:-moz-linear-gradient(top,#72b0d4,#4b88b6);background-image:-ms-linear-gradient(top,#72b0d4,#4b88b6);background-image:-o-linear-gradient(top,#72b0d4,#4b88b6);background-image:linear-gradient(top,#72b0d4,#4b88b6)}.ui-btn-hover-b
45
+ a.ui-link-inherit{color:#fff}.ui-btn-down-b{border:1px solid #225377;background:#4e89c5;font-weight:bold;color:#fff;text-shadow:0 -1px 1px
46
+ #225377;background-image:-webkit-gradient(linear,left top,left
47
+ bottom,from(#396b9e),to(#4e89c5));background-image:-webkit-linear-gradient(top,#396b9e,#4e89c5);background-image:-moz-linear-gradient(top,#396b9e,#4e89c5);background-image:-ms-linear-gradient(top,#396b9e,#4e89c5);background-image:-o-linear-gradient(top,#396b9e,#4e89c5);background-image:linear-gradient(top,#396b9e,#4e89c5)}.ui-btn-down-b
48
+ a.ui-link-inherit{color:#fff}.ui-btn-up-b,.ui-btn-hover-b,.ui-btn-down-b{font-family:Helvetica,Arial,sans-serif;text-decoration:none}.ui-bar-c{border:1px
49
+ solid #b3b3b3;background:#e9eaeb;color:#3e3e3e;font-weight:bold;text-shadow:0 1px 1px #fff;background-image:-webkit-gradient(linear,left
50
+ top,left
51
+ bottom,from(#f0f0f0),to(#e9eaeb));background-image:-webkit-linear-gradient(top,#f0f0f0,#e9eaeb);background-image:-moz-linear-gradient(top,#f0f0f0,#e9eaeb);background-image:-ms-linear-gradient(top,#f0f0f0,#e9eaeb);background-image:-o-linear-gradient(top,#f0f0f0,#e9eaeb);background-image:linear-gradient(top,#f0f0f0,#e9eaeb)}.ui-bar-c
52
+ .ui-link{color:#2489ce;font-weight:bold}.ui-bar-c,.ui-bar-c input,.ui-bar-c select,.ui-bar-c textarea,.ui-bar-c
53
+ button{font-family:Helvetica,Arial,sans-serif}.ui-body-c{border:1px solid #b3b3b3;color:#333;text-shadow:0 1px 0
54
+ #fff;background:#f0f0f0;background-image:-webkit-gradient(linear,left top,left
55
+ bottom,from(#eee),to(#ddd));background-image:-webkit-linear-gradient(top,#eee,#ddd);background-image:-moz-linear-gradient(top,#eee,#ddd);background-image:-ms-linear-gradient(top,#eee,#ddd);background-image:-o-linear-gradient(top,#eee,#ddd);background-image:linear-gradient(top,#eee,#ddd)}.ui-body-c,.ui-body-c
56
+ input,.ui-body-c select,.ui-body-c textarea,.ui-body-c button{font-family:Helvetica,Arial,sans-serif}.ui-body-c
57
+ .ui-link-inherit{color:#333}.ui-body-c .ui-link{color:#2489ce;font-weight:bold}.ui-btn-up-c{border:1px solid
58
+ #ccc;background:#eee;font-weight:bold;color:#444;text-shadow:0 1px 1px #f6f6f6;background-image:-webkit-gradient(linear,left top,left
59
+ bottom,from(#fdfdfd),to(#eee));background-image:-webkit-linear-gradient(top,#fdfdfd,#eee);background-image:-moz-linear-gradient(top,#fdfdfd,#eee);background-image:-ms-linear-gradient(top,#fdfdfd,#eee);background-image:-o-linear-gradient(top,#fdfdfd,#eee);background-image:linear-gradient(top,#fdfdfd,#eee)}.ui-btn-up-c
60
+ a.ui-link-inherit{color:#2f3e46}.ui-btn-hover-c{border:1px solid #bbb;background:#dadada;font-weight:bold;color:#101010;text-shadow:0 1px 1px
61
+ #fff;background-image:-webkit-gradient(linear,left top,left
62
+ bottom,from(#ededed),to(#dadada));background-image:-webkit-linear-gradient(top,#ededed,#dadada);background-image:-moz-linear-gradient(top,#ededed,#dadada);background-image:-ms-linear-gradient(top,#ededed,#dadada);background-image:-o-linear-gradient(top,#ededed,#dadada);background-image:linear-gradient(top,#ededed,#dadada)}.ui-btn-hover-c
63
+ a.ui-link-inherit{color:#2f3e46}.ui-btn-down-c{border:1px solid #808080;background:#fdfdfd;font-weight:bold;color:#111;text-shadow:0 1px 1px
64
+ #fff;background-image:-webkit-gradient(linear,left top,left
65
+ bottom,from(#eee),to(#fdfdfd));background-image:-webkit-linear-gradient(top,#eee,#fdfdfd);background-image:-moz-linear-gradient(top,#eee,#fdfdfd);background-image:-ms-linear-gradient(top,#eee,#fdfdfd);background-image:-o-linear-gradient(top,#eee,#fdfdfd);background-image:linear-gradient(top,#eee,#fdfdfd)}.ui-btn-down-c
66
+ a.ui-link-inherit{color:#2f3e46}.ui-btn-up-c,.ui-btn-hover-c,.ui-btn-down-c{font-family:Helvetica,Arial,sans-serif;text-decoration:none}.ui-bar-d{border:1px
67
+ solid #ccc;background:#bbb;color:#333;text-shadow:0 1px 0 #eee;background-image:-webkit-gradient(linear,left top,left
68
+ bottom,from(#ddd),to(#bbb));background-image:-webkit-linear-gradient(top,#ddd,#bbb);background-image:-moz-linear-gradient(top,#ddd,#bbb);background-image:-ms-linear-gradient(top,#ddd,#bbb);background-image:-o-linear-gradient(top,#ddd,#bbb);background-image:linear-gradient(top,#ddd,#bbb)}.ui-bar-d,.ui-bar-d
69
+ input,.ui-bar-d select,.ui-bar-d textarea,.ui-bar-d button{font-family:Helvetica,Arial,sans-serif}.ui-bar-d
70
+ .ui-link-inherit{color:#333}.ui-bar-d .ui-link{color:#2489ce;font-weight:bold}.ui-body-d{border:1px solid #ccc;color:#333;text-shadow:0 1px 0
71
+ #fff;background:#fff;background-image:-webkit-gradient(linear,left top,left
72
+ bottom,from(#fff),to(#fff));background-image:-webkit-linear-gradient(top,#fff,#fff);background-image:-moz-linear-gradient(top,#fff,#fff);background-image:-ms-linear-gradient(top,#fff,#fff);background-image:-o-linear-gradient(top,#fff,#fff);background-image:linear-gradient(top,#fff,#fff)}.ui-body-d,.ui-body-d
73
+ input,.ui-body-d select,.ui-body-d textarea,.ui-body-d button{font-family:Helvetica,Arial,sans-serif}.ui-body-d
74
+ .ui-link-inherit{color:#333}.ui-body-d .ui-link{color:#2489ce;font-weight:bold}.ui-btn-up-d{border:1px solid
75
+ #ccc;background:#fff;font-weight:bold;color:#444;text-shadow:0 1px 1px #fff;background-image:-webkit-gradient(linear,left top,left
76
+ bottom,from(#fff),to(#fff));background-image:-webkit-linear-gradient(top,#fff,#fff);background-image:-moz-linear-gradient(top,#fff,#fff);background-image:-ms-linear-gradient(top,#fff,#fff);background-image:-o-linear-gradient(top,#fff,#fff);background-image:linear-gradient(top,#fff,#fff)}.ui-btn-up-d
77
+ a.ui-link-inherit{color:#333}.ui-btn-hover-d{border:1px solid #aaa;background:#eee;font-weight:bold;color:#222;cursor:pointer;text-shadow:0 1px
78
+ 1px #fff;background-image:-webkit-gradient(linear,left top,left
79
+ bottom,from(#fdfdfd),to(#eee));background-image:-webkit-linear-gradient(top,#fdfdfd,#eee);background-image:-moz-linear-gradient(top,#fdfdfd,#eee);background-image:-ms-linear-gradient(top,#fdfdfd,#eee);background-image:-o-linear-gradient(top,#fdfdfd,#eee);background-image:linear-gradient(top,#fdfdfd,#eee)}.ui-btn-hover-d
80
+ a.ui-link-inherit{color:#222}.ui-btn-down-d{border:1px solid #aaa;background:#fff;font-weight:bold;color:#111;text-shadow:0 1px 1px
81
+ #fff;background-image:-webkit-gradient(linear,left top,left
82
+ bottom,from(#eee),to(#fff));background-image:-webkit-linear-gradient(top,#eee,#fff);background-image:-moz-linear-gradient(top,#eee,#fff);background-image:-ms-linear-gradient(top,#eee,#fff);background-image:-o-linear-gradient(top,#eee,#fff);background-image:linear-gradient(top,#eee,#fff)}.ui-btn-down-d
83
+ a.ui-link-inherit{color:#111}.ui-btn-up-d,.ui-btn-hover-d,.ui-btn-down-d{font-family:Helvetica,Arial,sans-serif;text-decoration:none}.ui-bar-e{border:1px
84
+ solid #f7c942;background:#fadb4e;color:#333;text-shadow:0 1px 0 #fff;background-image:-webkit-gradient(linear,left top,left
85
+ bottom,from(#fceda7),to(#fadb4e));background-image:-webkit-linear-gradient(top,#fceda7,#fadb4e);background-image:-moz-linear-gradient(top,#fceda7,#fadb4e);background-image:-ms-linear-gradient(top,#fceda7,#fadb4e);background-image:-o-linear-gradient(top,#fceda7,#fadb4e);background-image:linear-gradient(top,#fceda7,#fadb4e)}.ui-bar-e,.ui-bar-e
86
+ input,.ui-bar-e select,.ui-bar-e textarea,.ui-bar-e button{font-family:Helvetica,Arial,sans-serif}.ui-bar-e
87
+ .ui-link-inherit{color:#333}.ui-bar-e .ui-link{color:#2489ce;font-weight:bold}.ui-body-e{border:1px solid #f7c942;color:#333;text-shadow:0 1px 0
88
+ #fff;background:#faeb9e;background-image:-webkit-gradient(linear,left top,left
89
+ bottom,from(#fff),to(#faeb9e));background-image:-webkit-linear-gradient(top,#fff,#faeb9e);background-image:-moz-linear-gradient(top,#fff,#faeb9e);background-image:-ms-linear-gradient(top,#fff,#faeb9e);background-image:-o-linear-gradient(top,#fff,#faeb9e);background-image:linear-gradient(top,#fff,#faeb9e)}.ui-body-e,.ui-body-e
90
+ input,.ui-body-e select,.ui-body-e textarea,.ui-body-e button{font-family:Helvetica,Arial,sans-serif}.ui-body-e
91
+ .ui-link-inherit{color:#333}.ui-body-e .ui-link{color:#2489ce;font-weight:bold}.ui-btn-up-e{border:1px solid
92
+ #f7c942;background:#fadb4e;font-weight:bold;color:#333;text-shadow:0 1px 0 #fff;background-image:-webkit-gradient(linear,left top,left
93
+ bottom,from(#fceda7),to(#fadb4e));background-image:-webkit-linear-gradient(top,#fceda7,#fadb4e);background-image:-moz-linear-gradient(top,#fceda7,#fadb4e);background-image:-ms-linear-gradient(top,#fceda7,#fadb4e);background-image:-o-linear-gradient(top,#fceda7,#fadb4e);background-image:linear-gradient(top,#fceda7,#fadb4e)}.ui-btn-up-e
94
+ a.ui-link-inherit{color:#333}.ui-btn-hover-e{border:1px solid #e79952;background:#fbe26f;font-weight:bold;color:#111;text-shadow:0 1px 1px
95
+ #fff;background-image:-webkit-gradient(linear,left top,left
96
+ bottom,from(#fcf0b5),to(#fbe26f));background-image:-webkit-linear-gradient(top,#fcf0b5,#fbe26f);background-image:-moz-linear-gradient(top,#fcf0b5,#fbe26f);background-image:-ms-linear-gradient(top,#fcf0b5,#fbe26f);background-image:-o-linear-gradient(top,#fcf0b5,#fbe26f);background-image:linear-gradient(top,#fcf0b5,#fbe26f)}.ui-btn-hover-e
97
+ a.ui-link-inherit{color:#333}.ui-btn-down-e{border:1px solid #f7c942;background:#fceda7;font-weight:bold;color:#111;text-shadow:0 1px 1px
98
+ #fff;background-image:-webkit-gradient(linear,left top,left
99
+ bottom,from(#fadb4e),to(#fceda7));background-image:-webkit-linear-gradient(top,#fadb4e,#fceda7);background-image:-moz-linear-gradient(top,#fadb4e,#fceda7);background-image:-ms-linear-gradient(top,#fadb4e,#fceda7);background-image:-o-linear-gradient(top,#fadb4e,#fceda7);background-image:linear-gradient(top,#fadb4e,#fceda7)}.ui-btn-down-e
100
+ a.ui-link-inherit{color:#333}.ui-btn-up-e,.ui-btn-hover-e,.ui-btn-down-e{font-family:Helvetica,Arial,sans-serif;text-decoration:none}a.ui-link-inherit{text-decoration:none!important}.ui-link{color:#2489ce}.ui-link:hover{color:#2489ce}.ui-link:active{color:#2489ce}.ui-link:visited{color:#2489ce}.ui-btn-active{border:1px
101
+ solid #155678;background:#4596ce;font-weight:bold;color:#fff;cursor:pointer;text-shadow:0 -1px 1px
102
+ #145072;text-decoration:none;background-image:-webkit-gradient(linear,left top,left
103
+ bottom,from(#85bae4),to(#5393c5));background-image:-webkit-linear-gradient(top,#85bae4,#5393c5);background-image:-moz-linear-gradient(top,#85bae4,#5393c5);background-image:-ms-linear-gradient(top,#85bae4,#5393c5);background-image:-o-linear-gradient(top,#85bae4,#5393c5);background-image:linear-gradient(top,#85bae4,#5393c5);outline:0;font-family:Helvetica,Arial,sans-serif}.ui-btn-active
104
+ a.ui-link-inherit{color:#fff}.ui-btn-inner{border-top:1px solid
105
+ #fff;border-color:rgba(255,255,255,.3)}.ui-corner-tl{-moz-border-radius-topleft:.6em;-webkit-border-top-left-radius:.6em;border-top-left-radius:.6em}.ui-corner-tr{-moz-border-radius-topright:.6em;-webkit-border-top-right-radius:.6em;border-top-right-radius:.6em}.ui-corner-bl{-moz-border-radius-bottomleft:.6em;-webkit-border-bottom-left-radius:.6em;border-bottom-left-radius:.6em}.ui-corner-br{-moz-border-radius-bottomright:.6em;-webkit-border-bottom-right-radius:.6em;border-bottom-right-radius:.6em}.ui-corner-top{-moz-border-radius-topleft:.6em;-webkit-border-top-left-radius:.6em;border-top-left-radius:.6em;-moz-border-radius-topright:.6em;-webkit-border-top-right-radius:.6em;border-top-right-radius:.6em}.ui-corner-bottom{-moz-border-radius-bottomleft:.6em;-webkit-border-bottom-left-radius:.6em;border-bottom-left-radius:.6em;-moz-border-radius-bottomright:.6em;-webkit-border-bottom-right-radius:.6em;border-bottom-right-radius:.6em}.ui-corner-right{-moz-border-radius-topright:.6em;-webkit-border-top-right-radius:.6em;border-top-right-radius:.6em;-moz-border-radius-bottomright:.6em;-webkit-border-bottom-right-radius:.6em;border-bottom-right-radius:.6em}.ui-corner-left{-moz-border-radius-topleft:.6em;-webkit-border-top-left-radius:.6em;border-top-left-radius:.6em;-moz-border-radius-bottomleft:.6em;-webkit-border-bottom-left-radius:.6em;border-bottom-left-radius:.6em}.ui-corner-all{-moz-border-radius:.6em;-webkit-border-radius:.6em;border-radius:.6em}.ui-corner-none{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-disabled{opacity:.3}.ui-disabled,.ui-disabled
106
+ a{cursor:default}.ui-icon,.ui-icon-searchfield:after{background:#666;background:rgba(0,0,0,.4);background-image:url(images/icons-18-white.png);background-repeat:no-repeat;-moz-border-radius:9px;-webkit-border-radius:9px;border-radius:9px}.ui-icon-alt{background:#fff;background:rgba(255,255,255,.3);background-image:url(images/icons-18-black.png);background-repeat:no-repeat}@media
107
+ only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min--moz-device-pixel-ratio:1.5),only screen and
108
+ (min-resolution:240dpi){.ui-icon-plus,.ui-icon-minus,.ui-icon-delete,.ui-icon-arrow-r,.ui-icon-arrow-l,.ui-icon-arrow-u,.ui-icon-arrow-d,.ui-icon-check,.ui-icon-gear,.ui-icon-refresh,.ui-icon-forward,.ui-icon-back,.ui-icon-grid,.ui-icon-star,.ui-icon-alert,.ui-icon-info,.ui-icon-home,.ui-icon-search,.ui-icon-searchfield:after,.ui-icon-checkbox-off,.ui-icon-checkbox-on,.ui-icon-radio-off,.ui-icon-radio-on{background-image:url(images/icons-36-white.png);-moz-background-size:776px
109
+ 18px;-o-background-size:776px 18px;-webkit-background-size:776px 18px;background-size:776px
110
+ 18px}.ui-icon-alt{background-image:url(images/icons-36-black.png)}}.ui-icon-plus{background-position:-0
111
+ 50%}.ui-icon-minus{background-position:-36px 50%}.ui-icon-delete{background-position:-72px 50%}.ui-icon-arrow-r{background-position:-108px
112
+ 50%}.ui-icon-arrow-l{background-position:-144px 50%}.ui-icon-arrow-u{background-position:-180px 50%}.ui-icon-arrow-d{background-position:-216px
113
+ 50%}.ui-icon-check{background-position:-252px 50%}.ui-icon-gear{background-position:-288px 50%}.ui-icon-refresh{background-position:-324px
114
+ 50%}.ui-icon-forward{background-position:-360px 50%}.ui-icon-back{background-position:-396px 50%}.ui-icon-grid{background-position:-432px
115
+ 50%}.ui-icon-star{background-position:-468px 50%}.ui-icon-alert{background-position:-504px 50%}.ui-icon-info{background-position:-540px
116
+ 50%}.ui-icon-home{background-position:-576px 50%}.ui-icon-search,.ui-icon-searchfield:after{background-position:-612px
117
+ 50%}.ui-icon-checkbox-off{background-position:-684px 50%}.ui-icon-checkbox-on{background-position:-648px
118
+ 50%}.ui-icon-radio-off{background-position:-756px 50%}.ui-icon-radio-on{background-position:-720px 50%}.ui-checkbox
119
+ .ui-icon{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.ui-icon-checkbox-off,.ui-icon-radio-off{background-color:transparent}.ui-checkbox-on
120
+ .ui-icon,.ui-radio-on
121
+ .ui-icon{background-color:#4596ce}.ui-icon-loading{background-image:url(images/ajax-loader.png);width:40px;height:40px;-moz-border-radius:20px;-webkit-border-radius:20px;border-radius:20px;background-size:35px
122
+ 35px}.ui-btn-corner-tl{-moz-border-radius-topleft:1em;-webkit-border-top-left-radius:1em;border-top-left-radius:1em}.ui-btn-corner-tr{-moz-border-radius-topright:1em;-webkit-border-top-right-radius:1em;border-top-right-radius:1em}.ui-btn-corner-bl{-moz-border-radius-bottomleft:1em;-webkit-border-bottom-left-radius:1em;border-bottom-left-radius:1em}.ui-btn-corner-br{-moz-border-radius-bottomright:1em;-webkit-border-bottom-right-radius:1em;border-bottom-right-radius:1em}.ui-btn-corner-top{-moz-border-radius-topleft:1em;-webkit-border-top-left-radius:1em;border-top-left-radius:1em;-moz-border-radius-topright:1em;-webkit-border-top-right-radius:1em;border-top-right-radius:1em}.ui-btn-corner-bottom{-moz-border-radius-bottomleft:1em;-webkit-border-bottom-left-radius:1em;border-bottom-left-radius:1em;-moz-border-radius-bottomright:1em;-webkit-border-bottom-right-radius:1em;border-bottom-right-radius:1em}.ui-btn-corner-right{-moz-border-radius-topright:1em;-webkit-border-top-right-radius:1em;border-top-right-radius:1em;-moz-border-radius-bottomright:1em;-webkit-border-bottom-right-radius:1em;border-bottom-right-radius:1em}.ui-btn-corner-left{-moz-border-radius-topleft:1em;-webkit-border-top-left-radius:1em;border-top-left-radius:1em;-moz-border-radius-bottomleft:1em;-webkit-border-bottom-left-radius:1em;border-bottom-left-radius:1em}.ui-btn-corner-all{-moz-border-radius:1em;-webkit-border-radius:1em;border-radius:1em}.ui-corner-tl,.ui-corner-tr,.ui-corner-bl,.ui-corner-br,.ui-corner-top,.ui-corner-bottom,.ui-corner-right,.ui-corner-left,.ui-corner-all,.ui-btn-corner-tl,.ui-btn-corner-tr,.ui-btn-corner-bl,.ui-btn-corner-br,.ui-btn-corner-top,.ui-btn-corner-bottom,.ui-btn-corner-right,.ui-btn-corner-left,.ui-btn-corner-all{-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.ui-overlay{background:#666;opacity:.5;filter:Alpha(Opacity=50);position:absolute;width:100%;height:100%}.ui-overlay-shadow{-moz-box-shadow:0
123
+ 0 12px rgba(0,0,0,.6);-webkit-box-shadow:0 0 12px rgba(0,0,0,.6);box-shadow:0 0 12px rgba(0,0,0,.6)}.ui-shadow{-moz-box-shadow:0 1px 4px
124
+ rgba(0,0,0,.3);-webkit-box-shadow:0 1px 4px rgba(0,0,0,.3);box-shadow:0 1px 4px rgba(0,0,0,.3)}.ui-bar-a .ui-shadow,.ui-bar-b
125
+ .ui-shadow,.ui-bar-c .ui-shadow{-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0
126
+ rgba(255,255,255,.3)}.ui-shadow-inset{-moz-box-shadow:inset 0 1px 4px rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 4px
127
+ rgba(0,0,0,.2);box-shadow:inset 0 1px 4px rgba(0,0,0,.2)}.ui-icon-shadow{-moz-box-shadow:0 1px 0 rgba(255,255,255,.4);-webkit-box-shadow:0 1px 0
128
+ rgba(255,255,255,.4);box-shadow:0 1px 0 rgba(255,255,255,.4)}.ui-focus{-moz-box-shadow:0 0 12px #387bbe;-webkit-box-shadow:0 0 12px
129
+ #387bbe;box-shadow:0 0 12px #387bbe}.ui-mobile-nosupport-boxshadow
130
+ *{-moz-box-shadow:none!important;-webkit-box-shadow:none!important;box-shadow:none!important}.ui-mobile-nosupport-boxshadow
131
+ .ui-focus{outline-width:2px}.ui-mobile,.ui-mobile body{height:100%}.ui-mobile fieldset,.ui-page{padding:0;margin:0}.ui-mobile a img,.ui-mobile
132
+ fieldset{border:0}.ui-mobile-viewport{margin:0;overflow-x:hidden;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.ui-mobile
133
+ [data-role=page],.ui-mobile
134
+ [data-role=dialog],.ui-page{top:0;left:0;width:100%;min-height:100%;position:absolute;display:none;border:0}.ui-mobile
135
+ .ui-page-active{display:block;overflow:visible}.ui-page{outline:0}.ui-page.ui-mobile-touch-overflow,.ui-mobile-touch-overflow.ui-native-fixed
136
+ .ui-content{overflow:auto;height:100%;-webkit-overflow-scrolling:touch;-moz-overflow-scrolling:touch;-o-overflow-scrolling:touch;-ms-overflow-scrolling:touch;overflow-scrolling:touch}.ui-page.ui-mobile-touch-overflow,.ui-page.ui-mobile-touch-overflow
137
+ *{-webkit-transform:rotateY(0)}.ui-page.ui-mobile-pre-transition{display:block}.ui-loading
138
+ .ui-mobile-viewport{overflow:hidden!important}.ui-loading .ui-loader{display:block}.ui-loading
139
+ .ui-page{overflow:hidden}.ui-loader{display:none;position:absolute;opacity:.85;z-index:100;left:50%;width:200px;margin-left:-130px;margin-top:-35px;padding:10px
140
+ 30px}.ui-loader h1{font-size:15px;text-align:center}.ui-loader .ui-icon{position:static;display:block;opacity:.9;margin:0
141
+ auto;width:35px;height:35px;background-color:transparent}.ui-mobile-rendering>*{visibility:hidden}.ui-bar,.ui-body{position:relative;padding:.4em
142
+ 15px;overflow:hidden;display:block;clear:both}.ui-bar{font-size:16px;margin:0}.ui-bar h1,.ui-bar h2,.ui-bar h3,.ui-bar h4,.ui-bar h5,.ui-bar
143
+ h6{margin:0;padding:0;font-size:16px;display:inline-block}.ui-header,.ui-footer{display:block}.ui-page .ui-header,.ui-page
144
+ .ui-footer{position:relative}.ui-header .ui-btn-left{position:absolute;left:10px;top:.4em}.ui-header
145
+ .ui-btn-right{position:absolute;right:10px;top:.4em}.ui-header .ui-title,.ui-footer
146
+ .ui-title{min-height:1.1em;text-align:center;font-size:16px;display:block;margin:.6em 90px
147
+ .8em;padding:0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;outline:0!important}.ui-content{border-width:0;overflow:visible;overflow-x:hidden;padding:15px}.ui-page-fullscreen
148
+ .ui-content{padding:0}.ui-mobile-touch-overflow.ui-page.ui-native-fixed,.ui-mobile-touch-overflow.ui-page.ui-native-fullscreen{overflow:visible}.ui-mobile-touch-overflow.ui-native-fixed
149
+ .ui-header,.ui-mobile-touch-overflow.ui-native-fixed
150
+ .ui-footer{position:fixed;left:0;right:0;top:0;z-index:200}.ui-mobile-touch-overflow.ui-page.ui-native-fixed
151
+ .ui-footer{top:auto;bottom:0}.ui-mobile-touch-overflow.ui-native-fixed
152
+ .ui-content{padding-top:2.5em;padding-bottom:3em;top:0;bottom:0;height:auto;position:absolute}.ui-mobile-touch-overflow.ui-native-fullscreen
153
+ .ui-content{padding-top:0;padding-bottom:0}.ui-mobile-touch-overflow.ui-native-fullscreen
154
+ .ui-header,.ui-mobile-touch-overflow.ui-native-fullscreen
155
+ .ui-footer{opacity:.9}.ui-native-bars-hidden{display:none}.ui-icon{width:18px;height:18px}.ui-fullscreen
156
+ img{max-width:100%}.ui-nojs{position:absolute;left:-9999px}.spin{-webkit-transform:rotate(360deg);-webkit-animation-name:spin;-webkit-animation-duration:1s;-webkit-animation-iteration-count:infinite;-webkit-animation-timing-function:linear}@-webkit-keyframes
157
+ spin{from{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}.in,.out{-webkit-animation-timing-function:ease-in-out;-webkit-animation-duration:350ms}.slide.out{-webkit-transform:translateX(-100%);-webkit-animation-name:slideouttoleft}.slide.in{-webkit-transform:translateX(0);-webkit-animation-name:slideinfromright}.slide.out.reverse{-webkit-transform:translateX(100%);-webkit-animation-name:slideouttoright}.slide.in.reverse{-webkit-transform:translateX(0);-webkit-animation-name:slideinfromleft}.slideup.out{-webkit-animation-name:dontmove;z-index:0}.slideup.in{-webkit-transform:translateY(0);-webkit-animation-name:slideinfrombottom;z-index:10}.slideup.in.reverse{z-index:0;-webkit-animation-name:dontmove}.slideup.out.reverse{-webkit-transform:translateY(100%);z-index:10;-webkit-animation-name:slideouttobottom}.slidedown.out{-webkit-animation-name:dontmove;z-index:0}.slidedown.in{-webkit-transform:translateY(0);-webkit-animation-name:slideinfromtop;z-index:10}.slidedown.in.reverse{z-index:0;-webkit-animation-name:dontmove}.slidedown.out.reverse{-webkit-transform:translateY(-100%);z-index:10;-webkit-animation-name:slideouttotop}@-webkit-keyframes
158
+ slideinfromright{from{-webkit-transform:translateX(100%)}to{-webkit-transform:translateX(0)}}@-webkit-keyframes
159
+ slideinfromleft{from{-webkit-transform:translateX(-100%)}to{-webkit-transform:translateX(0)}}@-webkit-keyframes
160
+ slideouttoleft{from{-webkit-transform:translateX(0)}to{-webkit-transform:translateX(-100%)}}@-webkit-keyframes
161
+ slideouttoright{from{-webkit-transform:translateX(0)}to{-webkit-transform:translateX(100%)}}@-webkit-keyframes
162
+ slideinfromtop{from{-webkit-transform:translateY(-100%)}to{-webkit-transform:translateY(0)}}@-webkit-keyframes
163
+ slideinfrombottom{from{-webkit-transform:translateY(100%)}to{-webkit-transform:translateY(0)}}@-webkit-keyframes
164
+ slideouttobottom{from{-webkit-transform:translateY(0)}to{-webkit-transform:translateY(100%)}}@-webkit-keyframes
165
+ slideouttotop{from{-webkit-transform:translateY(0)}to{-webkit-transform:translateY(-100%)}}@-webkit-keyframes
166
+ fadein{from{opacity:0}to{opacity:1}}@-webkit-keyframes
167
+ fadeout{from{opacity:1}to{opacity:0}}.fade.out{z-index:0;-webkit-animation-name:fadeout}.fade.in{opacity:1;z-index:10;-webkit-animation-name:fadein}.viewport-flip{-webkit-perspective:1000;position:absolute}.ui-mobile-viewport-transitioning,.ui-mobile-viewport-transitioning
168
+ .ui-page{width:100%;height:100%;overflow:hidden}.flip{-webkit-animation-duration:.65s;-webkit-backface-visibility:hidden;-webkit-transform:translateX(0)}.flip.out{-webkit-transform:rotateY(-180deg)
169
+ scale(.8);-webkit-animation-name:flipouttoleft}.flip.in{-webkit-transform:rotateY(0)
170
+ scale(1);-webkit-animation-name:flipinfromleft}.flip.out.reverse{-webkit-transform:rotateY(180deg)
171
+ scale(.8);-webkit-animation-name:flipouttoright}.flip.in.reverse{-webkit-transform:rotateY(0)
172
+ scale(1);-webkit-animation-name:flipinfromright}@-webkit-keyframes flipinfromright{from{-webkit-transform:rotateY(-180deg)
173
+ scale(.8)}to{-webkit-transform:rotateY(0) scale(1)}}@-webkit-keyframes flipinfromleft{from{-webkit-transform:rotateY(180deg)
174
+ scale(.8)}to{-webkit-transform:rotateY(0) scale(1)}}@-webkit-keyframes flipouttoleft{from{-webkit-transform:rotateY(0)
175
+ scale(1)}to{-webkit-transform:rotateY(-180deg) scale(.8)}}@-webkit-keyframes flipouttoright{from{-webkit-transform:rotateY(0)
176
+ scale(1)}to{-webkit-transform:rotateY(180deg) scale(.8)}}@-webkit-keyframes
177
+ dontmove{from{opacity:1}to{opacity:1}}.pop{-webkit-transform-origin:50%
178
+ 50%}.pop.in{-webkit-transform:scale(1);opacity:1;-webkit-animation-name:popin;z-index:10}.pop.in.reverse{z-index:0;-webkit-animation-name:dontmove}.pop.out.reverse{-webkit-transform:scale(.2);opacity:0;-webkit-animation-name:popout;z-index:10}@-webkit-keyframes
179
+ popin{from{-webkit-transform:scale(.2);opacity:0}to{-webkit-transform:scale(1);opacity:1}}@-webkit-keyframes
180
+ popout{from{-webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(.2);opacity:0}}.ui-grid-a,.ui-grid-b,.ui-grid-c,.ui-grid-d{overflow:hidden}.ui-block-a,.ui-block-b,.ui-block-c,.ui-block-d,.ui-block-e{margin:0;padding:0;border:0;float:left;min-height:1px}.ui-grid-solo
181
+ .ui-block-a{width:100%;float:none}.ui-grid-a .ui-block-a,.ui-grid-a .ui-block-b{width:50%}.ui-grid-a .ui-block-a{clear:left}.ui-grid-b
182
+ .ui-block-a,.ui-grid-b .ui-block-b,.ui-grid-b .ui-block-c{width:33.333%}.ui-grid-b .ui-block-a{clear:left}.ui-grid-c .ui-block-a,.ui-grid-c
183
+ .ui-block-b,.ui-grid-c .ui-block-c,.ui-grid-c .ui-block-d{width:25%}.ui-grid-c .ui-block-a{clear:left}.ui-grid-d .ui-block-a,.ui-grid-d
184
+ .ui-block-b,.ui-grid-d .ui-block-c,.ui-grid-d .ui-block-d,.ui-grid-d .ui-block-e{width:20%}.ui-grid-d
185
+ .ui-block-a{clear:left}.ui-header,.ui-footer,.ui-page-fullscreen .ui-header,.ui-page-fullscreen
186
+ .ui-footer{position:absolute;overflow:hidden;width:100%;border-left-width:0;border-right-width:0}.ui-header-fixed,.ui-footer-fixed{z-index:1000;-webkit-transform:translateZ(0)}.ui-footer-duplicate,.ui-page-fullscreen
187
+ .ui-fixed-inline{display:none}.ui-page-fullscreen .ui-header,.ui-page-fullscreen .ui-footer{opacity:.9}.ui-navbar{overflow:hidden}.ui-navbar
188
+ ul,.ui-navbar-expanded ul{list-style:none;padding:0;margin:0;position:relative;display:block;border:0}.ui-navbar-collapsed
189
+ ul{float:left;width:75%;margin-right:-2px}.ui-navbar-collapsed .ui-navbar-toggle{float:left;width:25%}.ui-navbar
190
+ li.ui-navbar-truncate{position:absolute;left:-9999px;top:-9999px}.ui-navbar li .ui-btn,.ui-navbar .ui-navbar-toggle
191
+ .ui-btn{display:block;font-size:12px;text-align:center;margin:0;border-right-width:0}.ui-navbar li .ui-btn{margin-right:-1px}.ui-navbar li
192
+ .ui-btn:last-child{margin-right:0}.ui-header .ui-navbar li .ui-btn,.ui-header .ui-navbar .ui-navbar-toggle .ui-btn,.ui-footer .ui-navbar li
193
+ .ui-btn,.ui-footer .ui-navbar .ui-navbar-toggle .ui-btn{border-top-width:0;border-bottom-width:0}.ui-navbar
194
+ .ui-btn-inner{padding-left:2px;padding-right:2px}.ui-navbar-noicons li .ui-btn .ui-btn-inner,.ui-navbar-noicons .ui-navbar-toggle
195
+ .ui-btn-inner{padding-top:.8em;padding-bottom:.9em}.ui-navbar-expanded .ui-btn{margin:0;font-size:14px}.ui-navbar-expanded
196
+ .ui-btn-inner{padding-left:5px;padding-right:5px}.ui-navbar-expanded .ui-btn-icon-top .ui-btn-inner{padding:45px 5px
197
+ 15px;text-align:center}.ui-navbar-expanded .ui-btn-icon-top .ui-icon{top:15px}.ui-navbar-expanded .ui-btn-icon-bottom .ui-btn-inner{padding:15px
198
+ 5px 45px;text-align:center}.ui-navbar-expanded .ui-btn-icon-bottom .ui-icon{bottom:15px}.ui-navbar-expanded li .ui-btn
199
+ .ui-btn-inner{min-height:2.5em}.ui-navbar-expanded .ui-navbar-noicons .ui-btn
200
+ .ui-btn-inner{padding-top:1.8em;padding-bottom:1.9em}.ui-btn{display:block;text-align:center;cursor:pointer;position:relative;margin:.5em
201
+ 5px;padding:0}.ui-btn:focus,.ui-btn:active{outline:0}.ui-header .ui-btn,.ui-footer .ui-btn,.ui-bar
202
+ .ui-btn{display:inline-block;font-size:13px;margin:0}.ui-btn-inline{display:inline-block}.ui-btn-inner{padding:.6em
203
+ 25px;display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;position:relative;zoom:1}.ui-header .ui-btn-inner,.ui-footer
204
+ .ui-btn-inner,.ui-bar .ui-btn-inner{padding:.4em 8px .5em}.ui-btn-icon-notext{width:24px;height:24px}.ui-btn-icon-notext
205
+ .ui-btn-inner{padding:2px 1px 2px 3px}.ui-btn-icon-notext .ui-btn-text{position:absolute;left:-999px}.ui-btn-icon-left
206
+ .ui-btn-inner{padding-left:33px}.ui-header .ui-btn-icon-left .ui-btn-inner,.ui-footer .ui-btn-icon-left .ui-btn-inner,.ui-bar .ui-btn-icon-left
207
+ .ui-btn-inner{padding-left:27px}.ui-btn-icon-right .ui-btn-inner{padding-right:33px}.ui-header .ui-btn-icon-right .ui-btn-inner,.ui-footer
208
+ .ui-btn-icon-right .ui-btn-inner,.ui-bar .ui-btn-icon-right .ui-btn-inner{padding-right:27px}.ui-btn-icon-top
209
+ .ui-btn-inner{padding-top:33px}.ui-header .ui-btn-icon-top .ui-btn-inner,.ui-footer .ui-btn-icon-top .ui-btn-inner,.ui-bar .ui-btn-icon-top
210
+ .ui-btn-inner{padding-top:27px}.ui-btn-icon-bottom .ui-btn-inner{padding-bottom:33px}.ui-header .ui-btn-icon-bottom .ui-btn-inner,.ui-footer
211
+ .ui-btn-icon-bottom .ui-btn-inner,.ui-bar .ui-btn-icon-bottom .ui-btn-inner{padding-bottom:27px}.ui-btn-icon-notext
212
+ .ui-icon{display:block}.ui-btn-icon-left .ui-icon,.ui-btn-icon-right .ui-icon{position:absolute;top:50%;margin-top:-9px}.ui-btn-icon-top
213
+ .ui-icon,.ui-btn-icon-bottom .ui-icon{position:absolute;left:50%;margin-left:-9px}.ui-btn-icon-left .ui-icon{left:10px}.ui-btn-icon-right
214
+ .ui-icon{right:10px}.ui-btn-icon-top .ui-icon{top:10px}.ui-btn-icon-bottom .ui-icon{bottom:10px}.ui-header .ui-btn-icon-left .ui-icon,.ui-footer
215
+ .ui-btn-icon-left .ui-icon,.ui-bar .ui-btn-icon-left .ui-icon{left:4px}.ui-header .ui-btn-icon-right .ui-icon,.ui-footer .ui-btn-icon-right
216
+ .ui-icon,.ui-bar .ui-btn-icon-right .ui-icon{right:4px}.ui-header .ui-btn-icon-top .ui-icon,.ui-footer .ui-btn-icon-top .ui-icon,.ui-bar
217
+ .ui-btn-icon-top .ui-icon{top:4px}.ui-header .ui-btn-icon-bottom .ui-icon,.ui-footer .ui-btn-icon-bottom .ui-icon,.ui-bar .ui-btn-icon-bottom
218
+ .ui-icon{bottom:4px}.ui-btn-hidden{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-appearance:button;opacity:.1;cursor:pointer;background:transparent;font-size:1px;border:0;line-height:999px}.ui-collapsible{margin:.5em
219
+ 0}.ui-collapsible-heading{font-size:16px;display:block;margin:0 -8px;padding:0;border-width:0 0 1px 0;position:relative}.ui-collapsible-heading
220
+ a{text-align:left;margin:0}.ui-collapsible-heading a .ui-btn-inner{padding-left:40px}.ui-collapsible-heading a
221
+ span.ui-btn{position:absolute;left:6px;top:50%;margin:-12px 0 0 0;width:20px;height:20px;padding:1px 0 1px
222
+ 2px;text-indent:-9999px}.ui-collapsible-heading a span.ui-btn .ui-btn-inner{padding:10px 0}.ui-collapsible-heading a span.ui-btn
223
+ .ui-icon{left:0;margin-top:-10px}.ui-collapsible-heading-status{position:absolute;left:-9999px}.ui-collapsible-content{display:block;margin:0
224
+ -8px;padding:10px
225
+ 16px;border-top:0;background-image:none;font-weight:normal}.ui-collapsible-content-collapsed{display:none}.ui-collapsible-set{margin:.5em
226
+ 0}.ui-collapsible-set .ui-collapsible{margin:-1px 0 0}.ui-controlgroup,fieldset.ui-controlgroup{padding:0;margin:.5em 0 1em}.ui-bar
227
+ .ui-controlgroup{margin:0 .3em}.ui-controlgroup-label{font-size:16px;line-height:1.4;font-weight:normal;margin:0 0
228
+ .3em}.ui-controlgroup-controls{display:block;width:95%}.ui-controlgroup li{list-style:none}.ui-controlgroup-vertical
229
+ .ui-btn,.ui-controlgroup-vertical .ui-checkbox,.ui-controlgroup-vertical .ui-radio{margin:0;border-bottom-width:0}.ui-controlgroup-vertical
230
+ .ui-controlgroup-last{border-bottom-width:1px}.ui-controlgroup-horizontal{padding:0}.ui-controlgroup-horizontal
231
+ .ui-btn{display:inline-block;margin:0 -5px 0 0}.ui-controlgroup-horizontal .ui-checkbox,.ui-controlgroup-horizontal
232
+ .ui-radio{float:left;margin:0 -1px 0 0}.ui-controlgroup-horizontal .ui-checkbox .ui-btn,.ui-controlgroup-horizontal .ui-radio
233
+ .ui-btn,.ui-controlgroup-horizontal .ui-checkbox:last-child,.ui-controlgroup-horizontal
234
+ .ui-radio:last-child{margin-right:0}.ui-controlgroup-horizontal .ui-controlgroup-last{margin-right:0}.ui-controlgroup .ui-checkbox
235
+ label,.ui-controlgroup .ui-radio label{font-size:16px}@media all and
236
+ (min-width:450px){.ui-controlgroup-label{vertical-align:top;display:inline-block;width:20%;margin:0 2% 0
237
+ 0}.ui-controlgroup-controls{width:60%;display:inline-block}}.ui-dialog{min-height:480px}.ui-dialog .ui-header,.ui-dialog .ui-content,.ui-dialog
238
+ .ui-footer{margin:15px;position:relative}.ui-dialog .ui-header,.ui-dialog .ui-footer{z-index:10;width:auto}.ui-dialog .ui-content,.ui-dialog
239
+ .ui-footer{margin-top:-15px}.ui-checkbox,.ui-radio{position:relative;margin:.2em 0 .5em;z-index:1}.ui-checkbox .ui-btn,.ui-radio
240
+ .ui-btn{margin:0;text-align:left;z-index:2}.ui-checkbox .ui-btn-inner,.ui-radio .ui-btn-inner{white-space:normal}.ui-checkbox .ui-btn-icon-left
241
+ .ui-btn-inner,.ui-radio .ui-btn-icon-left .ui-btn-inner{padding-left:45px}.ui-checkbox .ui-btn-icon-right .ui-btn-inner,.ui-radio
242
+ .ui-btn-icon-right .ui-btn-inner{padding-right:45px}.ui-checkbox .ui-icon,.ui-radio .ui-icon{top:1.1em}.ui-checkbox .ui-btn-icon-left
243
+ .ui-icon,.ui-radio .ui-btn-icon-left .ui-icon{left:15px}.ui-checkbox .ui-btn-icon-right .ui-icon,.ui-radio .ui-btn-icon-right
244
+ .ui-icon{right:15px}.ui-checkbox input,.ui-radio input{position:absolute;left:20px;top:50%;width:10px;height:10px;margin:-5px 0 0
245
+ 0;outline:0!important;z-index:1}.ui-field-contain{padding:1.5em
246
+ 0;margin:0;border-bottom-width:1px;overflow:visible}.ui-field-contain:first-child{border-top-width:0}@media all and
247
+ (min-width:450px){.ui-field-contain{border-width:0;padding:0;margin:1em 0}}.ui-select{display:block;position:relative}.ui-select
248
+ select{position:absolute;left:-9999px;top:-9999px}.ui-select .ui-btn{overflow:hidden}.ui-select .ui-btn
249
+ select{cursor:pointer;-webkit-appearance:button;left:0;top:0;width:100%;min-height:1.5em;min-height:100%;height:3em;max-height:100%;opacity:0;-ms-filter:"alpha(opacity=0)";filter:alpha(opacity=0);z-index:2}@-moz-document
250
+ url-prefix(){.ui-select .ui-btn select{opacity:.0001}}.ui-select .ui-btn select.ui-select-nativeonly{opacity:1;text-indent:0}.ui-select
251
+ .ui-btn-icon-right .ui-btn-inner{padding-right:45px}.ui-select .ui-btn-icon-right
252
+ .ui-icon{right:15px}label.ui-select{font-size:16px;line-height:1.4;font-weight:normal;margin:0 0 .3em;display:block}.ui-select
253
+ .ui-btn-text,.ui-selectmenu .ui-btn-text{display:block;min-height:1em}.ui-select
254
+ .ui-btn-text{text-overflow:ellipsis;overflow:hidden}.ui-selectmenu{position:absolute;padding:0;z-index:100!important;width:80%;max-width:350px;padding:6px}.ui-selectmenu
255
+ .ui-listview{margin:0}.ui-selectmenu
256
+ .ui-btn.ui-li-divider{cursor:default}.ui-selectmenu-hidden{top:-9999px;left:-9999px}.ui-selectmenu-screen{position:absolute;top:0;left:0;width:100%;height:100%;z-index:99}.ui-screen-hidden,.ui-selectmenu-list
257
+ .ui-li .ui-icon{display:none}.ui-selectmenu-list .ui-li .ui-icon{display:block}.ui-li.ui-selectmenu-placeholder{display:none}.ui-selectmenu
258
+ .ui-header .ui-title{margin:.6em 46px .8em}@media all and
259
+ (min-width:450px){label.ui-select{vertical-align:top;display:inline-block;width:20%;margin:0 2% 0
260
+ 0}.ui-select{width:60%;display:inline-block}}.ui-selectmenu .ui-header
261
+ h1:after{content:'.';visibility:hidden}label.ui-input-text{font-size:16px;line-height:1.4;display:block;font-weight:normal;margin:0 0
262
+ .3em}input.ui-input-text,textarea.ui-input-text{background-image:none;padding:.4em;line-height:1.4;font-size:16px;display:block;width:95%}input.ui-input-text{-webkit-appearance:none}textarea.ui-input-text{height:50px;-webkit-transition:height
263
+ 200ms linear;-moz-transition:height 200ms linear;-o-transition:height 200ms linear;transition:height 200ms linear}.ui-input-search{padding:0
264
+ 30px;width:77%;background-image:none;position:relative}.ui-icon-searchfield:after{position:absolute;left:7px;top:50%;margin-top:-9px;content:"";width:18px;height:18px;opacity:.5}.ui-input-search
265
+ input.ui-input-text{border:0;width:98%;padding:.4em 0;margin:0;display:block;background:transparent none;outline:0!important}.ui-input-search
266
+ .ui-input-clear{position:absolute;right:0;top:50%;margin-top:-14px}.ui-input-search .ui-input-clear-hidden{display:none}@media all and
267
+ (min-width:450px){label.ui-input-text{vertical-align:top;display:inline-block;width:20%;margin:0 2% 0
268
+ 0}input.ui-input-text,textarea.ui-input-text,.ui-input-search{width:60%;display:inline-block}.ui-input-search{width:50%}.ui-input-search
269
+ input.ui-input-text{width:98%}}.ui-listview{margin:0;counter-reset:listnumbering}.ui-content .ui-listview{margin:-15px}.ui-content
270
+ .ui-listview-inset{margin:1em
271
+ 0}.ui-listview,.ui-li{list-style:none;padding:0}.ui-li,.ui-li.ui-field-contain{display:block;margin:0;position:relative;overflow:visible;text-align:left;border-width:0;border-top-width:1px}.ui-li
272
+ .ui-btn-text{position:relative;z-index:1}.ui-li .ui-btn-text
273
+ a.ui-link-inherit{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.ui-li-divider,.ui-li-static{padding:.5em
274
+ 15px;font-size:14px;font-weight:bold}.ui-li-divider{counter-reset:listnumbering}ol.ui-listview .ui-link-inherit:before,ol.ui-listview
275
+ .ui-li-static:before,.ui-li-dec{font-size:.8em;display:inline-block;padding-right:.3em;font-weight:normal;counter-increment:listnumbering;content:counter(listnumbering)
276
+ ". "}ol.ui-listview .ui-li-jsnumbering:before{content:""!important}.ui-listview-inset
277
+ .ui-li{border-right-width:1px;border-left-width:1px}.ui-li:last-child,.ui-li.ui-field-contain:last-child{border-bottom-width:1px}.ui-li>.ui-btn-inner{display:block;position:relative;padding:0}.ui-li
278
+ .ui-btn-inner a.ui-link-inherit,.ui-li-static.ui-li{padding:.7em 15px .7em 15px;display:block}.ui-li-has-thumb .ui-btn-inner
279
+ a.ui-link-inherit,.ui-li-static.ui-li-has-thumb{min-height:60px;padding-left:100px}.ui-li-has-icon .ui-btn-inner
280
+ a.ui-link-inherit,.ui-li-static.ui-li-has-icon{min-height:20px;padding-left:40px}.ui-li-has-count .ui-btn-inner
281
+ a.ui-link-inherit,.ui-li-static.ui-li-has-count{padding-right:45px}.ui-li-has-arrow .ui-btn-inner
282
+ a.ui-link-inherit,.ui-li-static.ui-li-has-arrow{padding-right:30px}.ui-li-has-arrow.ui-li-has-count .ui-btn-inner
283
+ a.ui-link-inherit,.ui-li-static.ui-li-has-arrow.ui-li-has-count{padding-right:75px}.ui-li-heading{font-size:16px;font-weight:bold;display:block;margin:.6em
284
+ 0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.ui-li-desc{font-size:12px;font-weight:normal;display:block;margin:-.5em 0
285
+ .6em;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.ui-li-thumb,.ui-li-icon{position:absolute;left:1px;top:0;max-height:80px;max-width:80px}.ui-li-icon{max-height:40px;max-width:40px;left:10px;top:.9em}.ui-li-thumb,.ui-li-icon,.ui-li-content{float:left;margin-right:10px}.ui-li-aside{float:right;width:50%;text-align:right;margin:.3em
286
+ 0}@media all and (min-width:480px){.ui-li-aside{width:45%}}.ui-li-divider{cursor:default}.ui-li-has-alt .ui-btn-inner
287
+ a.ui-link-inherit,.ui-li-static.ui-li-has-alt{padding-right:95px}.ui-li-has-count
288
+ .ui-li-count{position:absolute;font-size:11px;font-weight:bold;padding:.2em .5em;top:50%;margin-top:-.9em;right:38px}.ui-li-divider
289
+ .ui-li-count,.ui-li-static .ui-li-count{right:10px}.ui-li-has-alt
290
+ .ui-li-count{right:55px}.ui-li-link-alt{position:absolute;width:40px;height:100%;border-width:0;border-left-width:1px;top:0;right:0;margin:0;padding:0;z-index:2}.ui-li-link-alt
291
+ .ui-btn{overflow:hidden;position:absolute;right:8px;top:50%;margin:-11px 0 0 0;border-bottom-width:1px;z-index:-1}.ui-li-link-alt
292
+ .ui-btn-inner{padding:0;height:100%;position:absolute;width:100%;top:0;left:0}.ui-li-link-alt .ui-btn
293
+ .ui-icon{right:50%;margin-right:-9px}.ui-listview *
294
+ .ui-btn-inner>.ui-btn>.ui-btn-inner{border-top:0}.ui-listview-filter{border-width:0;overflow:hidden;margin:-15px -15px 15px
295
+ -15px}.ui-listview-filter .ui-input-search{margin:5px;width:auto;display:block}.ui-listview-filter-inset{margin:-15px -5px -15px
296
+ -5px;background:transparent}.ui-li.ui-screen-hidden{display:none}@media only screen and (min-device-width:768px) and
297
+ (max-device-width:1024px){.ui-li
298
+ .ui-btn-text{overflow:visible}}label.ui-slider{display:block}input.ui-slider-input{display:inline-block;width:50px}select.ui-slider-switch{display:none}div.ui-slider{position:relative;display:inline-block;overflow:visible;height:15px;padding:0;margin:0
299
+ 2% 0
300
+ 20px;top:4px;width:66%}a.ui-slider-handle{position:absolute;z-index:10;top:50%;width:28px;height:28px;margin-top:-15px;margin-left:-15px}a.ui-slider-handle
301
+ .ui-btn-inner{padding-left:0;padding-right:0}@media all and
302
+ (min-width:480px){label.ui-slider{vertical-align:top;display:inline-block;width:20%;margin:0 2% 0
303
+ 0}div.ui-slider{width:45%}}div.ui-slider-switch{height:32px;overflow:hidden;margin-left:0}div.ui-slider-inneroffset{margin-left:50%;position:absolute;top:1px;height:100%;width:50%}a.ui-slider-handle-snapping{-webkit-transition:left
304
+ 100ms linear}div.ui-slider-labelbg{position:absolute;top:0;margin:0;border-width:0}div.ui-slider-switch
305
+ div.ui-slider-labelbg-a{width:60%;height:100%;left:0}div.ui-slider-switch
306
+ div.ui-slider-labelbg-b{width:60%;height:100%;right:0}.ui-slider-switch-a div.ui-slider-labelbg-a,.ui-slider-switch-b
307
+ div.ui-slider-labelbg-b{z-index:-1}.ui-slider-switch-a div.ui-slider-labelbg-b,.ui-slider-switch-b
308
+ div.ui-slider-labelbg-a{z-index:0}div.ui-slider-switch
309
+ a.ui-slider-handle{z-index:20;width:101%;height:32px;margin-top:-18px;margin-left:-101%}span.ui-slider-label{width:100%;position:absolute;height:32px;font-size:16px;text-align:center;line-height:2;background:0;border-color:transparent}span.ui-slider-label-a{left:-100%;margin-right:-1px}span.ui-slider-label-b{right:-100%;margin-left:-1px}
metadata CHANGED
@@ -3,10 +3,11 @@ name: assetify
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
- - 1
6
+ - 2
7
7
  - 0
8
8
  - 0
9
- version: 1.0.0
9
+ segments_generated: true
10
+ version: 2.0.0
10
11
  platform: ruby
11
12
  authors:
12
13
  - Marcos Piccinini
@@ -15,7 +16,7 @@ autorequire:
15
16
  bindir: bin
16
17
  cert_chain: []
17
18
 
18
- date: 2011-09-30 00:00:00 -03:00
19
+ date: 2011-10-06 00:00:00 -03:00
19
20
  default_executable: assetify
20
21
  dependencies:
21
22
  - !ruby/object:Gem::Dependency
@@ -29,6 +30,7 @@ dependencies:
29
30
  - 2
30
31
  - 3
31
32
  - 0
33
+ segments_generated: true
32
34
  version: 2.3.0
33
35
  type: :development
34
36
  prerelease: false
@@ -44,6 +46,7 @@ dependencies:
44
46
  - 1
45
47
  - 0
46
48
  - 0
49
+ segments_generated: true
47
50
  version: 1.0.0
48
51
  type: :development
49
52
  prerelease: false
@@ -57,6 +60,7 @@ dependencies:
57
60
  - !ruby/object:Gem::Version
58
61
  segments:
59
62
  - 0
63
+ segments_generated: true
60
64
  version: "0"
61
65
  type: :development
62
66
  prerelease: false
@@ -70,6 +74,7 @@ dependencies:
70
74
  - !ruby/object:Gem::Version
71
75
  segments:
72
76
  - 0
77
+ segments_generated: true
73
78
  version: "0"
74
79
  type: :development
75
80
  prerelease: false
@@ -83,6 +88,7 @@ dependencies:
83
88
  - !ruby/object:Gem::Version
84
89
  segments:
85
90
  - 0
91
+ segments_generated: true
86
92
  version: "0"
87
93
  type: :development
88
94
  prerelease: false
@@ -96,6 +102,7 @@ dependencies:
96
102
  - !ruby/object:Gem::Version
97
103
  segments:
98
104
  - 0
105
+ segments_generated: true
99
106
  version: "0"
100
107
  type: :development
101
108
  prerelease: false
@@ -143,6 +150,7 @@ files:
143
150
  - spec/assetify_spec.rb
144
151
  - spec/fixtures/complex.tgz
145
152
  - spec/fixtures/fancy.tgz
153
+ - spec/fixtures/mobile.css
146
154
  - spec/fixtures/sassify.css
147
155
  - spec/spec_helper.rb
148
156
  has_rdoc: true
@@ -151,7 +159,7 @@ licenses:
151
159
  - MIT
152
160
  post_install_message: "\n\
153
161
  A ------------------------------------------------------------ A\n\n * A S S E T I F Y *\n\n\
154
- Thank you for installing assetify-1.0.0.\n\n\
162
+ Thank you for installing assetify-2.0.0.\n\n\
155
163
  Here is a few optional gems:\n\n * libarchive - For untar/unzip packages\n * minimagick - For image transformations\n * sass - For css2sass support\n\n\n\
156
164
  We hope `assetify` saves you some time!\n\n\
157
165
  A ------------------------------------------------------------ A\n"
@@ -164,9 +172,10 @@ required_ruby_version: !ruby/object:Gem::Requirement
164
172
  requirements:
165
173
  - - ">="
166
174
  - !ruby/object:Gem::Version
167
- hash: 4282977214519276665
175
+ hash: 2940899508080035935
168
176
  segments:
169
177
  - 0
178
+ segments_generated: true
170
179
  version: "0"
171
180
  required_rubygems_version: !ruby/object:Gem::Requirement
172
181
  none: false
@@ -175,6 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
175
184
  - !ruby/object:Gem::Version
176
185
  segments:
177
186
  - 0
187
+ segments_generated: true
178
188
  version: "0"
179
189
  requirements: []
180
190