Sha256: a4b329fdaf5d06964b034e2baff7cb13ffa05a1df2da3b5fc0bf1b96b8722afd
Contents?: true
Size: 1.82 KB
Versions: 1
Compression:
Stored size: 1.82 KB
Contents
# code: # * George Moschovitis <gm@navel.gr> # # (c) 2004 Navel, all rights reserved. # $Id: form.rb 187 2004-12-10 13:34:28Z gmosx $ module N # = FormBuilder # class FormBuilder @@forms_cache = G::SafeHash.new # Render a standard form for the given managed object. # If show_all is false then apply field filtering. # # Example: # # <p> # <form name="test"> # #{N::FormBuilder.render(entry)} # </form> # </p> # def self.render(obj, lc = nil, show_all = false) str = '<dl>' for p in obj.class.__props unless show_all next if :oid == p.symbol end if p.klass.ancestors.include?(Integer) or p.klass.ancestors.include?(Float) str << %{ <dt><label for="#{p.name}">#{p.name}</label></dt> <dd> <input type="text" name="#{p.name}" value="#{obj.send(p.symbol)}" /> </dd> } elsif p.klass.ancestors.include?(String) str << %{ <dt><label for="#{p.name}">#{p.name}</label></dt> <dd> } if :textarea == p.meta[:form] str << %{ <textarea name="#{p.name}">#{obj.send(p.symbol)}</textarea> } else str << %{ <input type="text" name="#{p.name}" value="#{obj.send(p.symbol)}" /> } end str << %{ </dd> } elsif p.klass.ancestors.include?(TrueClass) str << %{ <dt><label for="#{p.name}">#{p.name}</label></dt> <dd> <input type="checkbox" name="${p.name}" /> </dd> } =begin elsif p.klass.ancestors.include?(Time) return %|#\{@#{p.symbol} ? "'#\{Og::Utils.timestamp(@#{p.symbol})\}'" : 'NULL'\}| elsif p.klass.ancestors.include?(Date) return %|#\{@#{p.symbol} ? "'#\{Og::Utils.date(@#{p.symbol})\}'" : 'NULL'\}| else return %|#\{@#{p.symbol} ? "'#\{Og::Utils.escape(@#{p.symbol}.to_yaml)\}'" : "''"\}| =end end end str << '</dl>' return str end end end # module
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
nitro-0.6.0 | lib/nitro/builders/form.rb |