This repository was archived by the owner on Aug 20, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathRakefile
More file actions
102 lines (86 loc) · 2.79 KB
/
Rakefile
File metadata and controls
102 lines (86 loc) · 2.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
require 'ruby-debug'
require 'coffee-script'
require 'json/pure'
require 'json/add/core'
require 'erubis'
begin
require 'jasmine'
load 'jasmine/tasks/jasmine.rake'
rescue LoadError
task :jasmine do
abort "Jasmine is not available. In order to run jasmine, you must: (sudo) gem install jasmine"
end
end
desc "Compile get_projects_response.xml"
file "spec/javascripts/helpers/get_projects_response.js" => "spec/javascripts/fixtures/get_projects_response.xml" do |t|
puts t.inspect
input_file = t.prerequisites[0]
base_name = File.basename(input_file)
input_content = File.read(t.prerequisites[0])
output_file = t.name
output = ""
output << "if (typeof window.fixtures === 'undefined') { window.fixtures = {}; }\n"
output << "window.fixtures['#{base_name}'] = #{input_content.to_json};"
File.open(output_file, "w") {|file| file.write(output) }
end
FileList['coffeescripts/*.coffee'].each do |input_file|
output_file = input_file.sub(/\.coffee$/,'.js')
desc "Compile #{input_file} to #{output_file}"
file output_file => input_file do |t|
puts t.inspect
output = ::CoffeeScript.compile File.read(t.prerequisites[0])
File.open(t.name,"w") do |file|
file.write(output)
end
end
end
FileList['templates/*.html'].each do |input_file|
output_file = input_file.sub(/\.html$/,'.js')
desc "Compile #{input_file} to #{output_file}"
file output_file => input_file do |t|
puts t.inspect
input_file = t.prerequisites[0]
base_name = File.basename(input_file,".html")
input_html = File.read(t.prerequisites[0])
output = ""
output << "if (typeof window.templates === 'undefined') { window.templates = {}; }\n"
output << "window.templates['#{base_name}'] = #{input_html.to_json};"
File.open(output_file, "w") do |file|
file.write(output)
end
end
end
def render_erb(input_file,variables)
template_content = File.read(input_file)
Erubis::Eruby.new(template_content).result(variables)
end
def write_file(fname, content)
File.open(fname, "w") do |file|
file.write(content)
end
end
all_tasks = Rake::Task.tasks.map(&:name)
gadget_xml_source_files = \
FileList['views/*.erb'] \
+ FileList['stylesheets/*.css'] \
+ FileList['javascripts/*.js'] \
+ all_tasks.grep(/coffeescripts\/.*.js/) \
+ all_tasks.grep(/templates\/.*.js/)
desc "gadget.xml"
file 'gadget.xml' => gadget_xml_source_files do |t|
input_file = "views/gadget.xml.erb"
output_file = "gadget.xml"
output = render_erb input_file, binding()
write_file(output_file, output)
end
desc "upload gadget.xml file"
task 'upload' do
system <<-END
cp gadget.xml website/public/
cd website/; git add -u public/gadget.xml; git commit -m "update gadget.xml"; git push dev
END
end
task :default => 'gadget.xml'