<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: generic code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sun, 12 Oct 2008 08:27:44 GMT</pubDate>
    <description>DZone Snippets: generic code</description>
    <item>
      <title>Update a simple XML file using a generic update method.</title>
      <link>http://snippets.dzone.com/posts/show/4811</link>
      <description>This Ruby code updates an xml file using a method which can be applied where ever a simple struct form is used. ie. &lt;records&gt;&lt;record id="1"&gt;&lt;name/&gt;&lt;description/&gt;&lt;/record&gt;&lt;record id="2"&gt;&lt;name/&gt;&lt;description/&gt;&lt;/record&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#test.xml = "&lt;pears&gt;&lt;pear id="1254"/&gt;&lt;name/&gt;&lt;region/&gt;&lt;/pear&gt;&lt;pear id="5656"&gt;&lt;name/&gt;&lt;region/&gt;&lt;/pear&gt;&lt;/pears&gt;"&lt;br /&gt;&lt;br /&gt;require 'rexml/document'&lt;br /&gt;include REXML&lt;br /&gt;&lt;br /&gt;class Update&lt;br /&gt;  def initialize&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def update_item(doc_p, pelement_name)&lt;br /&gt;    #get the target xml file&lt;br /&gt;    file = File.new('test.xml')&lt;br /&gt;    doc = Document.new(file)&lt;br /&gt;&lt;br /&gt;    puts doc&lt;br /&gt;    # get a reference to the record&lt;br /&gt;    id = doc_p.root.elements["parameter[@id]"].attributes.get_attribute('id')&lt;br /&gt;    puts id&lt;br /&gt;&lt;br /&gt;    node = doc.root.elements[pelement_name + "[@id='#{id}']"]&lt;br /&gt;    puts node&lt;br /&gt;    rnode = map_record(node, doc_p)&lt;br /&gt;    puts doc&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def map_record(o_node, doc_input)&lt;br /&gt;    # set the element values for each field&lt;br /&gt;    doc_input.elements.each('parameters/parameter') do |in_node|&lt;br /&gt;      field = in_node.attributes.get_attribute('field').to_s&lt;br /&gt;      in_node.elements.each('attributes/attribute') do | attributex|&lt;br /&gt;        attribute_name = attributex.attributes.get_attribute('name').to_s&lt;br /&gt;        attribute_value = attributex.attributes.get_attribute('value').to_s&lt;br /&gt;        o_field = o_node.elements[attribute_name]&lt;br /&gt;        o_field.add_attribute(attribute_name, attribute_value)&lt;br /&gt;      end&lt;br /&gt;      map(o_node, field, in_node.attributes.get_attribute('value').to_s)&lt;br /&gt;&lt;br /&gt;    end&lt;br /&gt;    o_node&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  def map(o_node, field, value)&lt;br /&gt;    o_element = o_node.elements[field]&lt;br /&gt;    o_element.text = value&lt;br /&gt;    o_element&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;if __FILE__ == $0&lt;br /&gt;  u = Update.new&lt;br /&gt;  doc = Document.new&lt;br /&gt;  parameters = Element.new('parameters')&lt;br /&gt;  parameter = Element.new('parameter')&lt;br /&gt;  parameter.add_attribute('id', '5656')&lt;br /&gt;  parameters.add_element(parameter)&lt;br /&gt;  parameter = Element.new('parameter')&lt;br /&gt;  parameter.add_attribute('field', 'name')&lt;br /&gt;  parameter.add_attribute('value', 'Harovin Gaia')&lt;br /&gt;  parameters.add_element(parameter)&lt;br /&gt;  parameter = Element.new('parameter')&lt;br /&gt;  parameter.add_attribute('field', 'region')&lt;br /&gt;  parameter.add_attribute('value', 'Niagara')&lt;br /&gt;  parameters.add_element(parameter)&lt;br /&gt;  doc.add_element(parameters)&lt;br /&gt;  u.update_item(doc, 'pear')&lt;br /&gt;  puts doc&lt;br /&gt;end</description>
      <pubDate>Thu, 22 Nov 2007 15:37:35 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4811</guid>
      <author>jrobertson (James Robertson)</author>
    </item>
    <item>
      <title>Generic XHTML template</title>
      <link>http://snippets.dzone.com/posts/show/583</link>
      <description>I'm often having to reconstruct this, as I can no longer memorize everything (just blank HTML and BODY tags used to be acceptable ;-)) with the DOCTYPE and namespaces.. so to make it easier to grab in future:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"&lt;br /&gt;       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;&lt;br /&gt;&lt;br /&gt;&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"&gt;&lt;br /&gt;	&lt;head&gt;&lt;br /&gt;		&lt;title&gt;&lt;/title&gt;&lt;br /&gt;		&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;&lt;br /&gt;		&lt;link rel="stylesheet" href="styles.css" type="text/css" media="screen" /&gt;&lt;br /&gt;		&lt;script type="text/javascript" src="common.js"&gt;&lt;/script&gt;&lt;br /&gt;	&lt;/head&gt;&lt;br /&gt;&lt;br /&gt;	&lt;body&gt;&lt;br /&gt;		&lt;div id="container"&gt;&lt;br /&gt;&lt;br /&gt;			&lt;div id="header"&gt;&lt;br /&gt;			&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;			&lt;div id="wrapper"&gt;&lt;br /&gt;				&lt;div id="main"&gt;&lt;br /&gt;					&lt;br /&gt;				&lt;/div&gt;&lt;br /&gt;			&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;			&lt;div id="footer"&gt;&lt;br /&gt;			&lt;/div&gt;&lt;br /&gt;			&lt;br /&gt;		&lt;/div&gt;&lt;br /&gt;	&lt;/body&gt;&lt;br /&gt;&lt;br /&gt;&lt;/html&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 17 Aug 2005 23:58:16 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/583</guid>
      <author>peter (Peter Cooperx)</author>
    </item>
    <item>
      <title>Generic layout RHTML for Rails apps</title>
      <link>http://snippets.dzone.com/posts/show/552</link>
      <description>This will not be 100% for everyone, but I use it for most of my apps and it does all the most important stuff I can't be bothered to retype each time.&lt;br /&gt;&lt;br /&gt;(Updated August 2006 to slightly more up to date standards!)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"&lt;br /&gt;       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;&lt;br /&gt;&lt;br /&gt;&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;	&lt;title&gt;&lt;%= @page_title %&gt;&lt;/title&gt;&lt;br /&gt;	&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;&lt;br /&gt;	&lt;%= stylesheet_link_tag "main" %&gt;&lt;br /&gt;	&lt;%= javascript_include_tag :defaults %&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;br /&gt;&lt;body&lt;% if @page_class %&gt; class="&lt;%= @page_class %&gt;"&lt;% end %&gt;&gt;&lt;br /&gt;&lt;br /&gt;	&lt;% unless session[:user_id] %&gt;&lt;%= render :partial =&gt; "generic/loginstuff" -%&gt;&lt;% end %&gt;&lt;br /&gt;&lt;br /&gt;	&lt;div id="container"&gt;&lt;br /&gt;	&lt;br /&gt;		&lt;div id="header"&gt;&lt;br /&gt;		&lt;/div&gt;&lt;br /&gt;	&lt;br /&gt;		&lt;% unless @message_override &amp;&amp; @message_override == 1 %&gt;&lt;%= render :partial =&gt; "generic/messageboxes" %&gt;&lt;% end %&gt;&lt;br /&gt;	&lt;br /&gt;		&lt;div id="main"&gt;&lt;br /&gt;			&lt;%= yield %&gt;&lt;br /&gt;		&lt;/div&gt;&lt;br /&gt;	&lt;br /&gt;		&lt;div id="footer"&gt;&lt;br /&gt;		&lt;/div&gt;&lt;br /&gt;	&lt;br /&gt;	&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 05 Aug 2005 04:25:40 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/552</guid>
      <author>peter (Peter Cooperx)</author>
    </item>
    <item>
      <title>generic object</title>
      <link>http://snippets.dzone.com/posts/show/80</link>
      <description>a generic object type thing for perl where you can use setanything and getanything to set and get properties via the AUTOLOAD method.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;package thing;&lt;br /&gt;&lt;br /&gt;use strict;&lt;br /&gt;&lt;br /&gt;sub new {&lt;br /&gt;	my %self;&lt;br /&gt;	my ($class,@rest) = @_;&lt;br /&gt;	unless ($#rest%2) { die "Odd parameter count\n"}&lt;br /&gt;	for (my $k=0; $k&lt;@rest; $k+=2) {&lt;br /&gt;		my $wotsit = lc($rest[$k]);&lt;br /&gt;		$wotsit =~ s/-//;&lt;br /&gt;		$self{$wotsit} = $rest[$k+1];&lt;br /&gt;		}&lt;br /&gt;	bless \%self,$class;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sub AUTOLOAD {&lt;br /&gt;        my ($where,$val) = @_;&lt;br /&gt;        our $AUTOLOAD;&lt;br /&gt;        $AUTOLOAD =~ s/.*://;&lt;br /&gt;        my ($dirn,$what) = ($AUTOLOAD =~ /(...)(.*)/);&lt;br /&gt;        if ($dirn eq "get") {&lt;br /&gt;                return $$where{lc($what)};&lt;br /&gt;        } elsif ($dirn eq "set") {&lt;br /&gt;                $$where{lc($what)} = $val;&lt;br /&gt;        }&lt;br /&gt;        return 1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;1;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Here's a quick example of usage&lt;br /&gt;&lt;code&gt;&lt;br /&gt;use thing&lt;br /&gt;&lt;br /&gt;$house = new thing("type","building","rooms",12,"foundations", "yes");&lt;br /&gt;&lt;br /&gt;print $house -&gt; gettype();&lt;br /&gt;$house -&gt; settype("tree");&lt;br /&gt;print " " . $house -&gt; gettype();&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 08 Apr 2005 18:00:28 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/80</guid>
      <author>tomp (tomp)</author>
    </item>
  </channel>
</rss>
