Sha256: 489a7cb42e2a285bb79da653c44ae2a6c324e2887437fdf4cc20714ccaececa9
Contents?: true
Size: 1.89 KB
Versions: 7
Compression:
Stored size: 1.89 KB
Contents
module Rails3::Assist::Artifact module View include Rails3::Assist::BaseHelper def has_view? name, *args, &block file_name = view_file_name(name, args) file_name.path.file? end # CREATE def create_view name, *args, &block file_name = view_file_name(name, args) dir = File.dirname(file_name) FileUtils.mkdir_p dir if !File.directory?(dir) content = get_view_content(args) || yield if block # abort if no content given debug "Warning: Content must be passed in either as a :content hash or a block" if !content return nil if !content debug "Writing view file: #{file_name}" # write file content of view File.open(file_name, 'w') do |f| f.puts content end end # READ def read_view(name, *args, &block) file_name = view_file_name(name, args) debug "reading from: #{file_name}" file = File.new(file_name) raise "The view file: #{file} could not be found" if !file begin content = file.read debug "read content: #{content}" yield content if block content rescue nil end end # UPDATE def insert_into_view(name, *args, &block) file_name = view_file_name(name, args) debug "file insertion (view): #{file_name}" options = last_option args raise ArgumentError, ":before or :after option must be specified for insertion" if !(options[:before] || options[:after]) File.insert_into file_name, options, &block end # DELETE def remove_view name, action=nil, type=nil file = view_file_name(name, action, type) FileUtils.rm_f(file) if File.exist?(file) end def get_view_content args args = args.flatten case args.first when Hash args.first[:content] end end multi_aliases_for :view end end
Version data entries
7 entries across 7 versions & 1 rubygems