Module: Assetify

Defined in:
lib/assetify.rb,
lib/assetify/dsl.rb,
lib/assetify/pkg.rb,
lib/assetify/tui.rb,
lib/assetify/asset.rb,
lib/assetify/helpers.rb

Defined Under Namespace

Modules: Helpers Classes: Asset, DSL, NoJSFile, Pkg, TUI

Constant Summary collapse

TSIZE =
80
LINE =
TUI.new
ASSETS =
[:javascripts, :stylesheets, :images]
Opt =
{
  :jspath   =>  "public/javascripts",
  :csspath  =>  "public/stylesheets",
  :imgpath  =>  "public/images",
  :vendor   =>  "public/vendor",
  :newname  =>  true
}

Class Method Summary collapse

Class Method Details

.barObject



103
104
105
# File 'lib/assetify.rb', line 103

def bar
  puts "-" * TSIZE
end

.check_param(params, string) ⇒ Object

Text Interface



77
78
79
80
81
82
# File 'lib/assetify.rb', line 77

def check_param params, string
  unless string.include? params[0]
    puts "Did you mean #{string}?"
    exit 0
  end
end

.find_assets(filter = nil) ⇒ Object

Fuzzy find files



85
86
87
88
# File 'lib/assetify.rb', line 85

def find_assets(filter = nil)
  return @assets unless filter
  @assets.select {  |a| "#{a.name}#{a.pkg}" =~ /#{filter}/ }
end

.find_jsfileObject



55
56
57
# File 'lib/assetify.rb', line 55

def find_jsfile
  no_jsfile! unless File.exists?("Jsfile")
end

.no_jsfile!Object

Jsfile stuff



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/assetify.rb', line 31

def no_jsfile!
  print "Jsfile not found, create one? [Y/n] "
  res = gets.chomp
  unless res =~ /n|N/
    File.open("Jsfile", "w+") do |f|
      f.print <<TXT
#
# #{Dir.pwd.split('/').last.capitalize} Jsfile
#

js  :jquery, "http://jquery.com"
css :reset,  "http://prefered/rset/url"

group :forms do
  js :validator, "http://..."
end

TXT
    end
    puts "Jsfile created!"
    exit 0
  end
end

.read_jsfileObject



59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/assetify.rb', line 59

def read_jsfile
  file = File.open("Jsfile") # ruby 1.8/1.9 (ugly) fix
  code = file.send(file.respond_to?(:lines) ? :lines : :readlines).map do |line|
    next if line =~ /^\w*\#|^#/
    if line =~ /^\w{2,3}path/
      key, val = line.split(" ")
      Opt[key.to_sym] = val
      next
    end
    line
  end.reject(&:nil?)
  DSL.parse code.join(";")
end

.work!(params) ⇒ Object



107
108
109
110
111
112
113
114
115
116
# File 'lib/assetify.rb', line 107

def work!(params)
  start = Time.now
  puts "Assetify"
  bar
  find_jsfile
  @assets = read_jsfile
  work_on params
  bar
  puts "Done in #{Time.now - start}s"
end

.work_on(params) ⇒ Object



90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/assetify.rb', line 90

def work_on params
  case params.first
  when /^i/, nil
    check_param params, "install" if params[0]
    find_assets(params[1]).map(&:install!)
  when /^u/
    check_param params, "update"
    find_assets(params[1]).map { |a| a.install! :force }
  else
    puts "Dunno how to #{params.join}."
  end
end