module CouchRest::Commands::Generate
Public Class Methods
help()
click to toggle source
# File lib/couchrest/commands/generate.rb, line 49 def self.help helpstring = <<-GEN Usage: couchview generate directory design1 design2 design3 ... Couchview will create directories and example views for the design documents you specify. GEN helpstring.gsub(/^ /, '') end
run(options)
click to toggle source
# File lib/couchrest/commands/generate.rb, line 7 def self.run(options) directory = options[:directory] design_names = options[:trailing_args] FileUtils.mkdir_p(directory) filename = File.join(directory, "lib.js") self.write(filename, " // Put global functions here. // Include in your views with // // //include-lib ") design_names.each do |design_name| subdirectory = File.join(directory, design_name) FileUtils.mkdir_p(subdirectory) filename = File.join(subdirectory, "sample-map.js") self.write(filename, " function(doc) { // Keys is first letter of _id emit(doc._id[0], doc); } ") filename = File.join(subdirectory, "sample-reduce.js") self.write(filename, " function(keys, values) { // Count the number of keys starting with this letter return values.length; } ") filename = File.join(subdirectory, "lib.js") self.write(filename, " // Put functions specific to '#{design_name}' here. // Include in your views with // // //include-lib ") end end
write(filename, contents)
click to toggle source
# File lib/couchrest/commands/generate.rb, line 60 def self.write(filename, contents) puts "Writing #{filename}" File.open(filename, "w") do |f| # Remove leading spaces contents.gsub!(/^ ( )?/, '') f.write contents end end