assetify 1.0.0.rc1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
1
  #
2
- # Assetify Jsfile
2
+ # Assetify Assetfile
3
3
  #
4
4
 
5
5
  rb "colored", "https://github.com/defunkt/colored/raw/master/lib/colored.rb", :to => "lib/assetify"
data/Gemfile CHANGED
@@ -9,4 +9,6 @@ group :development do
9
9
  gem "bundler", ">= 1.0.0"
10
10
  gem "jeweler" #, ">= 1.6.0"
11
11
  gem "webmock", ">= 0"
12
+ gem "sinatra"
13
+ gem "libarchive"
12
14
  end
@@ -9,6 +9,8 @@ GEM
9
9
  bundler (~> 1.0)
10
10
  git (>= 1.2.5)
11
11
  rake
12
+ libarchive (0.1.2)
13
+ rack (1.3.3)
12
14
  rake (0.9.2)
13
15
  rspec (2.6.0)
14
16
  rspec-core (~> 2.6.0)
@@ -18,6 +20,10 @@ GEM
18
20
  rspec-expectations (2.6.0)
19
21
  diff-lcs (~> 1.1.2)
20
22
  rspec-mocks (2.6.0)
23
+ sinatra (1.2.6)
24
+ rack (~> 1.1)
25
+ tilt (>= 1.2.2, < 2.0)
26
+ tilt (1.3.3)
21
27
  webmock (1.7.6)
22
28
  addressable (~> 2.2, > 2.2.5)
23
29
  crack (>= 0.1.7)
@@ -28,5 +34,7 @@ PLATFORMS
28
34
  DEPENDENCIES
29
35
  bundler (>= 1.0.0)
30
36
  jeweler
37
+ libarchive
31
38
  rspec (>= 2.3.0)
39
+ sinatra
32
40
  webmock
data/README.md CHANGED
@@ -18,11 +18,11 @@ On any project`s root:
18
18
  assetify
19
19
 
20
20
 
21
- This will create a `Jsfile` if not found.
21
+ This will create a `Assetfile` if not found.
22
22
 
23
23
 
24
- Jsfile
25
- ======
24
+ Assetfile
25
+ =========
26
26
 
27
27
  Like a `Gemfile`, but you choose the filetype (or extension) before:
28
28
 
data/Rakefile CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'rubygems'
4
4
  require 'bundler'
5
+ require './lib/assetify/version'
5
6
  begin
6
7
  Bundler.setup(:default, :development)
7
8
  rescue Bundler::BundlerError => e
@@ -18,9 +19,28 @@ Jeweler::Tasks.new do |gem|
18
19
  gem.homepage = "http://github.com/nofxx/assetify"
19
20
  gem.license = "MIT"
20
21
  gem.summary = %Q{Downloads/updates assets. Any framework.}
21
- gem.description = %Q{Downloads/updates assets based on a Jsfile. Any framework.}
22
+ gem.description = %Q{Downloads/updates assets based on an Assetfile. Any framework.}
22
23
  gem.email = "x@nofxx.com"
23
- gem.authors = ["Marcos Piccinini"]
24
+ gem.authors = ["Marcos Piccinini", "Rafael Barbosa"]
25
+ gem.post_install_message = <<-POST_INSTALL_MESSAGE
26
+
27
+ A #{'-' * 60} A
28
+
29
+ * A S S E T I F Y *
30
+
31
+ Thank you for installing assetify-#{Assetify::VERSION}.
32
+
33
+ Here is a few optional gems:
34
+
35
+ * libarchive - For untar/unzip packages
36
+ * minimagick - For image transformations
37
+ * sass - For css2sass support
38
+
39
+
40
+ We hope `assetify` saves you some time!
41
+
42
+ A #{'-' * 60} A
43
+ POST_INSTALL_MESSAGE
24
44
  # dependencies defined in Gemfile
25
45
  end
26
46
  Jeweler::RubygemsDotOrgTasks.new
@@ -38,8 +58,8 @@ end
38
58
 
39
59
  task :default => :spec
40
60
 
41
- require 'rake/rdoctask'
42
- Rake::RDocTask.new do |rdoc|
61
+ require 'rdoc/task'
62
+ RDoc::Task.new do |rdoc|
43
63
  version = File.exist?('VERSION') ? File.read('VERSION') : ""
44
64
 
45
65
  rdoc.rdoc_dir = 'rdoc'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.0.rc1
1
+ 1.0.0
@@ -5,13 +5,13 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{assetify}
8
- s.version = "1.0.0.rc1"
8
+ s.version = "1.0.0"
9
9
 
10
- s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Marcos Piccinini"]
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Marcos Piccinini", "Rafael Barbosa"]
12
12
  s.date = %q{2011-09-30}
13
13
  s.default_executable = %q{assetify}
14
- s.description = %q{Downloads/updates assets based on a Jsfile. Any framework.}
14
+ s.description = %q{Downloads/updates assets based on an Assetfile. Any framework.}
15
15
  s.email = %q{x@nofxx.com}
16
16
  s.executables = ["assetify"]
17
17
  s.extra_rdoc_files = [
@@ -20,9 +20,9 @@ Gem::Specification.new do |s|
20
20
  s.files = [
21
21
  ".document",
22
22
  ".rspec",
23
+ "Assetfile",
23
24
  "Gemfile",
24
25
  "Gemfile.lock",
25
- "Jsfile",
26
26
  "README.md",
27
27
  "Rakefile",
28
28
  "VERSION",
@@ -32,13 +32,18 @@ Gem::Specification.new do |s|
32
32
  "lib/assetify/asset.rb",
33
33
  "lib/assetify/asset/pathfix.rb",
34
34
  "lib/assetify/asset/pkg.rb",
35
+ "lib/assetify/assetfile.rb",
36
+ "lib/assetify/cli.rb",
37
+ "lib/assetify/cli/colored.rb",
38
+ "lib/assetify/cli/term.rb",
39
+ "lib/assetify/constants.rb",
35
40
  "lib/assetify/dsl.rb",
36
41
  "lib/assetify/extensions/string.rb",
42
+ "lib/assetify/gui.rb",
37
43
  "lib/assetify/gui/server.rb",
38
44
  "lib/assetify/gui/views/home.html.erb",
39
45
  "lib/assetify/helpers.rb",
40
- "lib/assetify/tui/colored.rb",
41
- "lib/assetify/tui/term.rb",
46
+ "lib/assetify/version.rb",
42
47
  "spec/assetify/asset_spec.rb",
43
48
  "spec/assetify/dsl_spec.rb",
44
49
  "spec/assetify/helpers_spec.rb",
@@ -52,6 +57,24 @@ Gem::Specification.new do |s|
52
57
  ]
53
58
  s.homepage = %q{http://github.com/nofxx/assetify}
54
59
  s.licenses = ["MIT"]
60
+ s.post_install_message = %q{
61
+ A ------------------------------------------------------------ A
62
+
63
+ * A S S E T I F Y *
64
+
65
+ Thank you for installing assetify-1.0.0.
66
+
67
+ Here is a few optional gems:
68
+
69
+ * libarchive - For untar/unzip packages
70
+ * minimagick - For image transformations
71
+ * sass - For css2sass support
72
+
73
+
74
+ We hope `assetify` saves you some time!
75
+
76
+ A ------------------------------------------------------------ A
77
+ }
55
78
  s.require_paths = ["lib"]
56
79
  s.rubygems_version = %q{1.3.7}
57
80
  s.summary = %q{Downloads/updates assets. Any framework.}
@@ -65,17 +88,23 @@ Gem::Specification.new do |s|
65
88
  s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
66
89
  s.add_development_dependency(%q<jeweler>, [">= 0"])
67
90
  s.add_development_dependency(%q<webmock>, [">= 0"])
91
+ s.add_development_dependency(%q<sinatra>, [">= 0"])
92
+ s.add_development_dependency(%q<libarchive>, [">= 0"])
68
93
  else
69
94
  s.add_dependency(%q<rspec>, [">= 2.3.0"])
70
95
  s.add_dependency(%q<bundler>, [">= 1.0.0"])
71
96
  s.add_dependency(%q<jeweler>, [">= 0"])
72
97
  s.add_dependency(%q<webmock>, [">= 0"])
98
+ s.add_dependency(%q<sinatra>, [">= 0"])
99
+ s.add_dependency(%q<libarchive>, [">= 0"])
73
100
  end
74
101
  else
75
102
  s.add_dependency(%q<rspec>, [">= 2.3.0"])
76
103
  s.add_dependency(%q<bundler>, [">= 1.0.0"])
77
104
  s.add_dependency(%q<jeweler>, [">= 0"])
78
105
  s.add_dependency(%q<webmock>, [">= 0"])
106
+ s.add_dependency(%q<sinatra>, [">= 0"])
107
+ s.add_dependency(%q<libarchive>, [">= 0"])
79
108
  end
80
109
  end
81
110
 
@@ -6,7 +6,7 @@ require 'assetify'
6
6
 
7
7
  opt = OptionParser.new do |o|
8
8
  o.banner = <<BANNER
9
- Bugs Bunny - RabbitMQ Playground
9
+ This is Assetify! What we`re going to do?
10
10
 
11
11
  Usage: #{File.basename($0)} command [args]
12
12
 
@@ -1,139 +1,20 @@
1
- require "assetify/tui"
2
- module Assetify
3
-
4
- Opt = {
5
- :vendor => "public/vendor",
6
- :newname => true
7
- }
8
-
9
- TSIZE = 80
10
- LINE = TUI.new
11
- ASSETS_PATH = "vendor/assets"
12
- ASSETS = [:javascripts, :stylesheets, :images]
13
- ASSETS.each do |asset|
14
- Opt.merge!(asset => "#{ASSETS_PATH}/#{asset}")
15
- end
16
-
17
- class NoJSFile < StandardError
18
- end
19
- end
1
+ # Options/Constants
2
+ require "assetify/constants"
20
3
 
21
4
  # Ruby Extensions
22
5
  require "assetify/extensions/string"
23
6
 
24
- # Text Interface
25
- require "assetify/tui/term"
26
- require "assetify/tui/colored"
27
-
28
7
  # Core
29
8
  require "assetify/helpers"
9
+ require "assetify/assetfile"
30
10
  require "assetify/asset"
31
11
  require "assetify/dsl"
32
12
 
33
- module Assetify
34
- class << self
35
-
36
- #
37
- # Jsfile stuff
38
- #
39
- def no_jsfile!
40
- print "Jsfile not found, create one? [Y/n] "
41
- res = gets.chomp
42
- unless res =~ /n|N/
43
- File.open("Jsfile", "w+") do |f|
44
- f.print <<TXT
45
- #
46
- # #{Dir.pwd.split('/').last.capitalize} Jsfile
47
- #
48
-
49
- js :jquery, "http://jquery.com"
50
- css :reset, "http://prefered/rset/url"
51
-
52
- group :forms do
53
- js :validator, "http://..."
54
- end
55
-
56
- TXT
57
- end
58
- puts "Jsfile created!"
59
- exit 0
60
- end
61
- end
62
-
63
- def find_jsfile
64
- no_jsfile! unless File.exists?("Jsfile")
65
- end
66
-
67
- def read_jsfile
68
- file = File.open("Jsfile") # ruby 1.8/1.9 (ugly) fix
69
- code = file.send(file.respond_to?(:lines) ? :lines : :readlines).map do |line|
70
- # Parse options
71
- if line =~ /^\w{2,3}path/
72
- key, val = line.split(" ")
73
- Opt[key.to_sym] = val
74
- next
75
- end
76
- line
77
- end.reject(&:nil?)
78
- DSL.parse code.join("")
79
- end
80
-
81
- #
82
- # Text Interface
83
- #
84
-
85
- def check_param params, string
86
- unless string.include? params[0]
87
- puts "Did you mean #{string}?"
88
- exit 0
89
- end
90
- end
91
-
92
- # Fuzzy find files
93
- def find_assets(filter = nil)
94
- return @assets unless filter
95
- @assets.select { |a| "#{a.name}#{a.pkg}" =~ /#{filter}/ }
96
- end
97
-
98
- def work_on params
99
- case params.first
100
- when /^i/, nil
101
- check_param params, "install" if params[0]
102
- find_assets(params[1]).map(&:install!)
103
- when /^u/
104
- check_param params, "update"
105
- find_assets(params[1]).map { |a| a.install! :force }
106
- when /^c/
107
- check_param params, "check"
108
- find_assets(params[1]).map { |a| a.check! }
109
- when /^w/
110
- check_param params, "web"
111
- gui!
112
- else
113
- puts "Dunno how to #{params.join}."
114
- end
115
- end
116
-
117
- def bar
118
- puts "-" * TSIZE
119
- end
120
-
121
- def gui!
122
- require "assetify/gui/server"
123
- Sinatra::Application.run!
124
- end
125
-
126
- def work!(params)
127
- start = Time.now
128
- puts "Assetify"
129
- bar
130
- find_jsfile
131
- Asset.set_all @assets = read_jsfile
132
- work_on params
133
- bar
134
- puts "Done in #{Time.now - start}s"
135
- end
136
-
13
+ # Text Interface
14
+ require "assetify/cli/term"
15
+ require "assetify/cli/colored"
16
+ require "assetify/cli"
137
17
 
138
- end
139
- end
18
+ # Web Interface
19
+ require "assetify/gui/server"
20
+ require "assetify/gui"
@@ -31,6 +31,13 @@ module Assetify
31
31
  @filename = "#{name}.#{ext}"
32
32
  end
33
33
 
34
+ def find_ext_for file
35
+ file.split(".").last[0,3]
36
+ end
37
+
38
+ #
39
+ # Find correct path to put me
40
+ #
34
41
  def find_path_for txt
35
42
  case txt
36
43
  when /js/ then :javascripts
@@ -39,10 +46,6 @@ module Assetify
39
46
  end
40
47
  end
41
48
 
42
- def find_ext_for file
43
- file.split(".").last[0,3]
44
- end
45
-
46
49
  def path
47
50
  args = if @to.empty?
48
51
  tpath = Opt[find_path_for(type)]
@@ -62,22 +65,28 @@ module Assetify
62
65
  File.exists? fullpath
63
66
  end
64
67
 
65
- def print_version
66
- return "" unless ver
67
- ver_str = ver.size > 10 ? ver[0..10] : ver[0]
68
- "v#{ver_str} "
69
- end
70
-
71
68
  def data
72
69
  # Get data, from a pkg or download directly
73
70
  @data ||= @pkg ? @pkg.get(url, :force).values.first : get_data(url)
74
71
  end
75
72
 
73
+ #
74
+ # Asset version
75
+ #
76
76
  def ver
77
77
  return nil unless @data
78
78
  @ver ||= find_version(@data)
79
79
  end
80
80
 
81
+ def print_version
82
+ return "" unless ver
83
+ ver_str = ver.size > 10 ? ver[0..10] : ver[0]
84
+ "v#{ver_str} "
85
+ end
86
+
87
+ #
88
+ # Prints info about the asset (TODO: move this to cli...)
89
+ #
81
90
  def header
82
91
  LINE.p "-> #{name}.#{type}"
83
92
  end
@@ -92,6 +101,9 @@ module Assetify
92
101
  end
93
102
  end
94
103
 
104
+ #
105
+ # Write down asset to disk
106
+ #
95
107
  def install!(force = false)
96
108
  header
97
109
  if !force && file_exists? # Return if file is on path
@@ -114,13 +126,17 @@ module Assetify
114
126
  end
115
127
 
116
128
  class << self
117
- # Simple cache for Jsfile
118
- def self.set_all v
119
- @all = v
129
+ #
130
+ # Simple cache store, read Assetfile and dump it here to use.
131
+ #
132
+ def all
133
+ @all ||= Assetfile.read
120
134
  end
121
- def self.all
122
- @all
135
+
136
+ def filter params
137
+ all.select { |a| "#{a.name}#{a.pkg}" =~ /#{params}/ }
123
138
  end
139
+
124
140
  end
125
141
 
126
142
  end
@@ -0,0 +1,59 @@
1
+ module Assetify
2
+ class Assetfile
3
+ class << self
4
+
5
+
6
+ #
7
+ # Assetfile stuff
8
+ #
9
+ def missing!
10
+ print "Assetfile not found, create one? [Y/n] "
11
+ res = $stdin.gets.chomp # dont forget stdin
12
+ unless res =~ /n|N/
13
+ File.open("Assetfile", "w+") do |f|
14
+ f.print <<TXT
15
+ #
16
+ # #{Dir.pwd.split('/').last.capitalize} Assetfile
17
+ #
18
+
19
+ js :jquery, "http://jquery.com"
20
+ css :reset, "http://prefered/rset/url"
21
+
22
+ group :forms do
23
+ js :validator, "http://..."
24
+ end
25
+
26
+ TXT
27
+ end
28
+ puts "Assetfile created!"
29
+ exit 0
30
+ end
31
+ end
32
+
33
+ #
34
+ # Assetfile find/read
35
+ #
36
+ #
37
+ def find
38
+ missing! unless File.exists?("Assetfile")
39
+ end
40
+
41
+ def read
42
+ file = File.open("Assetfile") # ruby 1.8/1.9 (ugly) fix
43
+ code = file.send(file.respond_to?(:lines) ? :lines : :readlines).map do |line|
44
+ # Parse options
45
+ if line =~ /^\w{2,3}path/
46
+ key, val = line.split(" ")
47
+ Opt[key.to_sym] = val
48
+ next
49
+ end
50
+ line
51
+ end.reject(&:nil?)
52
+ DSL.parse code.join("")
53
+ end
54
+
55
+ # def write
56
+ # end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,75 @@
1
+ #
2
+ # To be refactored...
3
+ #
4
+ module Assetify
5
+ LINE = CLI.new
6
+
7
+ class << self
8
+
9
+ #
10
+ # Text Interface
11
+ #
12
+ def check_param params, string
13
+ unless string.include? params[0]
14
+ puts "Did you mean #{string}?"
15
+ exit 0
16
+ end
17
+ end
18
+
19
+ # Fuzzy find files
20
+ def find_assets(params = nil)
21
+ return Asset.all unless params
22
+ Asset.filter params
23
+ end
24
+
25
+ #
26
+ # CLI Master case/switch!
27
+ #
28
+ # Destructive:
29
+ # i -> install
30
+ # u -> update
31
+ # x -> clean ? todo
32
+ #
33
+ # Safe:
34
+ # c -> check
35
+ # w -> web
36
+ #
37
+ def work_on params
38
+ case params.first
39
+ when /^i/, nil
40
+ check_param params, "install" if params[0]
41
+ find_assets(params[1]).map(&:install!)
42
+ when /^u/
43
+ check_param params, "update"
44
+ find_assets(params[1]).map { |a| a.install! :force }
45
+ when /^c/
46
+ check_param params, "check"
47
+ find_assets(params[1]).map { |a| a.check! }
48
+ when /^w/
49
+ check_param params, "web"
50
+ GUI.boot!
51
+ else
52
+ puts "Dunno how to #{params.join}."
53
+ end
54
+ end
55
+
56
+ #
57
+ # Divider bar
58
+ #
59
+ def bar
60
+ puts "-" * TSIZE
61
+ end
62
+
63
+ def work!(params)
64
+ start = Time.now
65
+ Assetfile.find
66
+ puts "Assetify - #{Asset.all.size} assets"
67
+ bar
68
+ work_on params
69
+ bar
70
+ puts "Done in #{Time.now - start}s"
71
+ end
72
+
73
+ end
74
+
75
+ end
File without changes
@@ -1,6 +1,6 @@
1
1
  module Assetify
2
2
 
3
- class TUI
3
+ class CLI
4
4
  def initialize(size = TSIZE)
5
5
  @size = size
6
6
  @chars = 0
@@ -0,0 +1,17 @@
1
+ module Assetify
2
+
3
+ Opt = {
4
+ :vendor => "public/vendor",
5
+ :newname => true
6
+ }
7
+
8
+ TSIZE = 80
9
+ ASSETS_PATH = "vendor/assets"
10
+ ASSETS = [:javascripts, :stylesheets, :images]
11
+ ASSETS.each do |asset|
12
+ Opt.merge!(asset => "#{ASSETS_PATH}/#{asset}")
13
+ end
14
+
15
+ # class BadAssetfile < StandardError
16
+ # end
17
+ end
@@ -2,8 +2,7 @@ module Assetify
2
2
 
3
3
  class DSL
4
4
  attr_reader :assets
5
-
6
-
5
+
7
6
  #
8
7
  # Makes a pkg, a gz/tar/zip asset/
9
8
  #
@@ -22,7 +21,6 @@ module Assetify
22
21
  assets
23
22
  end
24
23
 
25
-
26
24
  #
27
25
  # Makes a group, a namspace for the assets.
28
26
  #
@@ -43,14 +41,12 @@ module Assetify
43
41
  next if path =~ /\/$/ # dont let dirs get in... ugly
44
42
  ext, *name = path.split(".").reverse
45
43
  name = name.reverse.join(".").split("/").last
46
- (@assets ||= []) << Asset.new(ext, name, path, nil, {
47
- :pkg => @pkg,
48
- :to => to})# h.split(".").last, )
44
+ @assets ||= []
45
+ @assets << Asset.new(ext, name, path, nil, { :pkg => @pkg , :to => to } )
49
46
  end
50
47
  end
51
48
  end
52
49
 
53
-
54
50
  #
55
51
  # Parse the assets.
56
52
  #
@@ -62,7 +58,8 @@ module Assetify
62
58
  opts = {:ns => @ns, :pkg => @pkg}
63
59
  params.each { |hsh| opts.merge! hsh }
64
60
  ver = ver[0]
65
- (@assets ||= []) << Asset.new(method.to_sym, name, uri, ver, opts)
61
+ @assets ||= []
62
+ @assets << Asset.new(method.to_sym, name, uri, ver, opts)
66
63
  end
67
64
 
68
65
  #
@@ -71,12 +68,12 @@ module Assetify
71
68
  # a "jquery", "http://...jquery.js"
72
69
  #
73
70
  def a name, url, *params
74
- ext, *rest = url.split(".").reverse
75
- send(ext, name, url)
71
+ extension = url.split(".").last
72
+ send(extension, name, url)
76
73
  end
77
74
 
78
-
79
- # Create Jsfile assets path setters
75
+ #
76
+ # Create Assetfile assets path setters
80
77
  #
81
78
  # javascript "new/path"
82
79
  # ...
@@ -94,9 +91,9 @@ module Assetify
94
91
  # DSL.parse()
95
92
  #
96
93
  def self.parse chunk
97
- # puts "Assetify - Error Parsing 'Jsfile'."
94
+ # puts "Assetify - Error Parsing 'Assetfile'."
98
95
  # Instance eval with 2nd, 3rd args to the rescue
99
- new.instance_eval(chunk, "Jsfile", 1)
96
+ new.instance_eval(chunk, "Assetfile", 1)
100
97
  end
101
98
 
102
99
  end
@@ -0,0 +1,11 @@
1
+ module Assetify
2
+ class GUI
3
+
4
+ def self. boot!
5
+ require "assetify/gui/server"
6
+ Sinatra::Application.run!
7
+ end
8
+
9
+
10
+ end
11
+ end
@@ -20,7 +20,7 @@
20
20
 
21
21
  <div data-role="content" id="one">
22
22
  <ul data-role="listview" data-theme="g">
23
- <h2>Jsfile</h2>
23
+ <h2>Assetfile</h2>
24
24
  <% for asset in @assets %>
25
25
  <li> asset </li>
26
26
  <% end %>
@@ -8,7 +8,12 @@ module Assetify
8
8
  #
9
9
  def find_version(txt)
10
10
  return unless txt
11
- txt.binary? ? find_version_from_bin(txt) : find_version_from_txt(txt)
11
+ if txt.binary?
12
+ find_version_from_bin(txt)
13
+ else
14
+ v = find_version_from_txt(txt)
15
+ v && v[0] =~ /(\d+)\.(\d+).*/ ? v : find_version_from_bin(txt)
16
+ end
12
17
  end
13
18
 
14
19
  private
@@ -24,14 +29,15 @@ module Assetify
24
29
  Digest::MD5.hexdigest blob
25
30
  end
26
31
 
32
+ #
33
+ # Downloads assets
34
+ #
27
35
  def download url_str, limit = 10
28
36
  raise ArgumentError, 'HTTP redirect too deep' if limit == 0
29
37
  uri = URI.parse url_str
30
- # # response = ""
31
38
  http = Net::HTTP.start(uri.host, :use_ssl => url_str =~ /https/)# do |http|
32
39
  response = http.get(uri.path.empty? ? "/" : uri.path)
33
- # # end
34
- # response = Net::HTTP.get_response(URI.parse(url_str) )# ,:use_ssl => url_str =~ /https/ )
40
+
35
41
  case response
36
42
  when Net::HTTPSuccess then @data = response
37
43
  when Net::HTTPRedirection then download(redirect_url(response), limit - 1)
@@ -49,7 +55,7 @@ module Assetify
49
55
  end
50
56
  end
51
57
 
52
- def write(binary)
58
+ def write binary
53
59
  FileUtils.mkdir_p path unless Dir.exists?(path)
54
60
  File.open(fullpath, "w") { |f| f.puts(binary) }
55
61
  end
@@ -0,0 +1,3 @@
1
+ module Assetify
2
+ VERSION = "1.0.0"
3
+ end
@@ -51,10 +51,10 @@ describe DSL do
51
51
  end
52
52
 
53
53
  it "should accept a especific location with :to" do
54
- Dir.should_receive(:pwd).and_return("/home/nofxx/git/assetify")
54
+ Dir.should_receive(:pwd).and_return("/home/user/git/assetify")
55
55
  a = Assetify::DSL.parse("rb 'foo', 'foolink', :to => 'spec/rock'")[0]
56
56
  a.should be_an Asset
57
- a.fullpath.should eql("/home/nofxx/git/assetify/spec/rock/foo.rb")
57
+ a.fullpath.should eql("/home/user/git/assetify/spec/rock/foo.rb")
58
58
  end
59
59
 
60
60
  it "should not fail with symbols" do
@@ -127,10 +127,12 @@ describe DSL do
127
127
  end
128
128
 
129
129
  it "should read from pkg the regex" do
130
+ Dir.should_receive(:pwd).and_return("/home/user/git/assetify")
131
+
130
132
  as = Assetify::DSL.parse "pkg 'complex', 'http://complex.tgz' do; dir 'images/', :to => 'images/complex/'; end"
131
133
  as[0].name.should eql("two")
132
134
  as[0].ext.should eql("png")
133
- as[0].fullpath.should eql("/home/nofxx/git/assetify/images/complex/two.png")
135
+ as[0].fullpath.should eql("/home/user/git/assetify/images/complex/two.png")
134
136
  end
135
137
 
136
138
  end
@@ -34,7 +34,7 @@ describe Helpers do
34
34
 
35
35
  it "should rescue fine if there isn`t version" do
36
36
  find_version("/* -------------------------------------------------------------- reset.css * Resets default browser CSS.").
37
- should be_nil
37
+ should eql("d356b6a91b0d16e456c7b4f79302d051")
38
38
  end
39
39
 
40
40
  end
@@ -2,33 +2,33 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
2
 
3
3
  describe Assetify do
4
4
 
5
- it "shoud read_jsfile" do
6
- mock_jsfile
7
- Assetify.read_jsfile.should have(1).asset
5
+ it "shoud read_assetfile" do
6
+ mock_assetfile
7
+ Assetfile.read.should have(1).asset
8
8
  end
9
9
 
10
10
  it "should skip comments" do
11
- mock_jsfile("#\n# Oi\n#\n")
12
- Assetify.read_jsfile.should be_nil
11
+ mock_assetfile("#\n# Oi\n#\n")
12
+ Assetfile.read.should be_nil
13
13
  end
14
14
 
15
15
  it "should work with versions url" do
16
- mock_jsfile("#\n# Oi\n#\njs 'down', 'http://js.com/down-{VERSION}.js', '1.6'")
17
- Assetify.read_jsfile.first.url.should eql("http://js.com/down-1.6.js")
16
+ mock_assetfile("#\n# Oi\n#\njs 'down', 'http://js.com/down-{VERSION}.js', '1.6'")
17
+ Assetfile.read.first.url.should eql("http://js.com/down-1.6.js")
18
18
  end
19
19
 
20
20
  describe "read css" do
21
21
  before do
22
- mock_jsfile("#\n# CSS\n#\ncss 'grid', 'http://grid.com/down'")
22
+ mock_assetfile("#\n# CSS\n#\ncss 'grid', 'http://grid.com/down'")
23
23
  end
24
- let(:asset) { Assetify.read_jsfile[0] }
24
+ let(:asset) { Assetfile.read[0] }
25
25
 
26
26
  it "should read css" do
27
- Assetify.read_jsfile.should have(1).asset
27
+ Assetfile.read.should have(1).asset
28
28
  end
29
29
 
30
30
  it "should read css" do
31
- Assetify.read_jsfile.first.type.should eql(:css)
31
+ Assetfile.read.first.type.should eql(:css)
32
32
  end
33
33
 
34
34
  it "should have fullpath" do
@@ -39,7 +39,7 @@ describe Assetify do
39
39
 
40
40
  describe "readjs" do
41
41
 
42
- let(:asset) { mock_jsfile; Assetify.read_jsfile[0] }
42
+ let(:asset) { mock_assetfile; Assetfile.read[0] }
43
43
 
44
44
  it "should be an asset" do
45
45
  asset.should be_an Assetify::Asset
@@ -7,8 +7,8 @@ require 'assetify'
7
7
  include Assetify
8
8
 
9
9
 
10
- def mock_jsfile(d = 'js "cool", "http://cool.js/down"')
11
- File.should_receive(:open).once.with("Jsfile").and_return(d)
10
+ def mock_assetfile(d = 'js "cool", "http://cool.js/down"')
11
+ File.should_receive(:open).once.with("Assetfile").and_return(d)
12
12
  end
13
13
 
14
14
  # Requires supporting files with custom matchers and macros, etc,
metadata CHANGED
@@ -1,17 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: assetify
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: true
4
+ prerelease: false
5
5
  segments:
6
6
  - 1
7
7
  - 0
8
8
  - 0
9
- - rc
10
- - 1
11
- version: 1.0.0.rc1
9
+ version: 1.0.0
12
10
  platform: ruby
13
11
  authors:
14
12
  - Marcos Piccinini
13
+ - Rafael Barbosa
15
14
  autorequire:
16
15
  bindir: bin
17
16
  cert_chain: []
@@ -75,7 +74,33 @@ dependencies:
75
74
  type: :development
76
75
  prerelease: false
77
76
  version_requirements: *id004
78
- description: Downloads/updates assets based on a Jsfile. Any framework.
77
+ - !ruby/object:Gem::Dependency
78
+ name: sinatra
79
+ requirement: &id005 !ruby/object:Gem::Requirement
80
+ none: false
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ segments:
85
+ - 0
86
+ version: "0"
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: *id005
90
+ - !ruby/object:Gem::Dependency
91
+ name: libarchive
92
+ requirement: &id006 !ruby/object:Gem::Requirement
93
+ none: false
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ segments:
98
+ - 0
99
+ version: "0"
100
+ type: :development
101
+ prerelease: false
102
+ version_requirements: *id006
103
+ description: Downloads/updates assets based on an Assetfile. Any framework.
79
104
  email: x@nofxx.com
80
105
  executables:
81
106
  - assetify
@@ -86,9 +111,9 @@ extra_rdoc_files:
86
111
  files:
87
112
  - .document
88
113
  - .rspec
114
+ - Assetfile
89
115
  - Gemfile
90
116
  - Gemfile.lock
91
- - Jsfile
92
117
  - README.md
93
118
  - Rakefile
94
119
  - VERSION
@@ -98,13 +123,18 @@ files:
98
123
  - lib/assetify/asset.rb
99
124
  - lib/assetify/asset/pathfix.rb
100
125
  - lib/assetify/asset/pkg.rb
126
+ - lib/assetify/assetfile.rb
127
+ - lib/assetify/cli.rb
128
+ - lib/assetify/cli/colored.rb
129
+ - lib/assetify/cli/term.rb
130
+ - lib/assetify/constants.rb
101
131
  - lib/assetify/dsl.rb
102
132
  - lib/assetify/extensions/string.rb
133
+ - lib/assetify/gui.rb
103
134
  - lib/assetify/gui/server.rb
104
135
  - lib/assetify/gui/views/home.html.erb
105
136
  - lib/assetify/helpers.rb
106
- - lib/assetify/tui/colored.rb
107
- - lib/assetify/tui/term.rb
137
+ - lib/assetify/version.rb
108
138
  - spec/assetify/asset_spec.rb
109
139
  - spec/assetify/dsl_spec.rb
110
140
  - spec/assetify/helpers_spec.rb
@@ -119,7 +149,12 @@ has_rdoc: true
119
149
  homepage: http://github.com/nofxx/assetify
120
150
  licenses:
121
151
  - MIT
122
- post_install_message:
152
+ post_install_message: "\n\
153
+ 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\
155
+ 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
+ We hope `assetify` saves you some time!\n\n\
157
+ A ------------------------------------------------------------ A\n"
123
158
  rdoc_options: []
124
159
 
125
160
  require_paths:
@@ -129,20 +164,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
129
164
  requirements:
130
165
  - - ">="
131
166
  - !ruby/object:Gem::Version
132
- hash: -4058179870759459477
167
+ hash: 4282977214519276665
133
168
  segments:
134
169
  - 0
135
170
  version: "0"
136
171
  required_rubygems_version: !ruby/object:Gem::Requirement
137
172
  none: false
138
173
  requirements:
139
- - - ">"
174
+ - - ">="
140
175
  - !ruby/object:Gem::Version
141
176
  segments:
142
- - 1
143
- - 3
144
- - 1
145
- version: 1.3.1
177
+ - 0
178
+ version: "0"
146
179
  requirements: []
147
180
 
148
181
  rubyforge_project: