Class: TaskSupport
- Inherits:
-
Object
- Object
- TaskSupport
- Defined in:
- lib/task_support.rb
Class Method Summary collapse
- .cache_admin_js ⇒ Object
-
.cache_files(dir, files, cache_file) ⇒ Object
Write the combined content of files in dir into cache_file in the same dir.
- .config_export(path = "#{Rails.root}/config/radiant_config.yml") ⇒ Object
- .config_import(path = "#{Rails.root}/config/radiant_config.yml", clear = nil) ⇒ Object
- .establish_connection ⇒ Object
-
.find_admin_js ⇒ Object
Reads through the layout file and returns an array of JS filenames.
Class Method Details
.cache_admin_js ⇒ Object
54 55 56 57 |
# File 'lib/task_support.rb', line 54 def cache_admin_js dir = "#{Rails.root}/public/javascripts/admin" cache_files(dir, find_admin_js, 'all.js') end |
.cache_files(dir, files, cache_file) ⇒ Object
Write the combined content of files in dir into cache_file in the same dir.
35 36 37 38 39 40 41 42 |
# File 'lib/task_support.rb', line 35 def cache_files(dir, files, cache_file) cache_content = files.collect { |f| File.read(File.join(dir, f)) }.join("\n\n") cache_path = File.join(dir, cache_file) rm(cache_path) if File.exists?(cache_path) File.open(cache_path, "w+") { |f| f.write(cache_content) } end |
.config_export(path = "#{Rails.root}/config/radiant_config.yml") ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/task_support.rb', line 10 def config_export(path = "#{Rails.root}/config/radiant_config.yml") self.establish_connection FileUtils.mkdir_p(File.dirname(path)) if File.open(File.(path), 'w') { |f| YAML.dump(Radiant::Config.to_hash.to_yaml,f) } puts "Radiant::Config saved to #{path}" end end |
.config_import(path = "#{Rails.root}/config/radiant_config.yml", clear = nil) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/task_support.rb', line 17 def config_import(path = "#{Rails.root}/config/radiant_config.yml", clear = nil) self.establish_connection Radiant::Config.delete_all if clear if File.exist?(path) configs = YAML.load(YAML.load_file(path)) configs.each do |key, value| c = Radiant::Config.find_or_initialize_by_key(key) c.value = value c.save end puts "Radiant::Config updated from #{path}" else puts "No file exists at #{path}" end end |
.establish_connection ⇒ Object
3 4 5 6 7 8 9 |
# File 'lib/task_support.rb', line 3 def establish_connection unless ActiveRecord::Base.connected? connection_hash = YAML.load_file("#{Rails.root}/config/database.yml").to_hash env_connection = connection_hash[RAILS_ENV] ActiveRecord::Base.establish_connection(env_connection) end end |
.find_admin_js ⇒ Object
Reads through the layout file and returns an array of JS filenames
TODO: cache this lazily at runtime?
47 48 49 50 51 52 |
# File 'lib/task_support.rb', line 47 def find_admin_js layout = "#{RADIANT_ROOT}/app/views/layouts/radiant.html.haml" js_regexp = /javascript_include_tag %w\((.*)\), :cache => 'admin\/all/ files = File.open(layout) { |f| f.read.match(js_regexp)[1].split } files.collect { |f| f.split('/').last + '.js' } end |