module Lanes::Command::ClientModelUpdate
Public Instance Methods
replace_props(file, columns)
click to toggle source
@param file [Pathname] file to replace the props on
# File lib/lanes/command/client_model_update.rb, line 6 def replace_props(file, columns) contents = file.read match = contents.match(/\n(\s+props\s*:\s*)\n+(\s+)\w/m) if !match raise Thor::Error.new("Unable to detect existing props section") end (props,indent) = match.capture3 p match maxlen = columns.map{|field| field.name.length }.max contents = "#{props}" columns.each do | column | contents << sprintf("#{indent}%-#{maxlen+1}s",column.name+':') + type_specification(column) + "\n" end puts contents # gsub_file file, /\n\s+props\s*:\s*\n.*?\n\n/m, contents # props: # <% len = max_name_length(@columns) # @columns.each do | column | -%> # <%= sprintf("%-#{len+1}s",column.name+':') -%> <%= type_specification(column) %> # <% end -%> # <% if @associations.any? -%> # associations: # <% len = max_name_length(@associations) # @associations.each do | assoc | -%> # <%= sprintf("%-#{len+2}s",assoc.name.to_s+':') -%> { <%= assoc.collection? ? 'collection' : 'model' -%>: "<%= assoc.class_name.demodulize %>" } # <% end -%> # <% end -%> end