Search Results

Search found 7 results on 1 pages for 'makenai'.

Page 1/1 | 1 

  • Injecting an XML fragment into the current document from an external file

    - by makenai
    I'm currently parsing an XML file using REXML and trying to come up with a way of inserting an XML fragment from an internal file. Currently, I'm using some logic like the following: doc.elements.each('//include') do |element| handleInclude( element ) end def handleInclude( element ) if filename = element.attributes['file'] data = File.open( filename ).read doc = REXML::Document.new( data ) element.parent.replace_child( element, doc ) end end Where my XML looks like the following: <include file="test.xml" /> But this seems a little bit clunky, and I'm worried that REXML might not always parse XML fragments correctly due to absence of a proper root node in some cases. Is there a better way of doing this? Concern #2: REXML seems not to pick up my changes after I replace elements. For example, after making a change: doc.elements.each('rootNode/*') do |element| end ..picks up neither the original element I replaced, nor the one I replaced it with. Is there some trick to getting REXML to rescan its' tree?

    Read the article

  • How can I dereference a hashref constant?

    - by makenai
    Let's say I have a hashref constant like the following: use constant DOGS => { Lassie => 'collie', Benji => 'mutt', Scooby => 'great dane', Goofy => '???' }; How can I dereference it properly to get say.. they keys out of it? warn ref DOGS; # HASH at untitled line 12. warn keys( %{DOGS} ); # Warning: something's wrong (empty list) warn keys( DOGS ); # Type of arg 1 to keys must be hash (not constant item) The following is the only way I can seem to make it work: my $dogs = DOGS; warn keys( %$dogs ); # LassieBenjiGoofyScooby at untitled line 15. What am I doing wrong?

    Read the article

  • How to dereference a hashref constant?

    - by makenai
    Let's say I have a hashref constant like the following: use constant DOGS => { Lassie => 'collie', Benji => 'mutt', Scooby => 'great dane', Goofy => '???' }; How can I dereference it properly to get say.. they keys out of it? warn ref DOGS; # HASH at untitled line 12. warn keys( %{DOGS} ); # Warning: something's wrong (empty list) warn keys( DOGS ); # Type of arg 1 to keys must be hash (not constant item) The following is the only way I can seem to make it work: my $dogs = DOGS; warn keys( %$dogs ); # LassieBenjiGoofyScooby at untitled line 15. What am I doing wrong?

    Read the article

  • PATH_INFO in Apache is eating the first part of the path. Why?

    - by makenai
    I'm writing a simple mod_perl handler that relies on $r-path_info() to do some request routing. However, I find that it's always eating the first part of PATH_INFO when mounted on root. Let's say that the handler just prints the value of $r-path_info: <Location /TEST> PerlHandler MyHandler </Location> Request: /TEST/123 Expected PATH_INFO: /123 Got PATH_INFO: /123 (yay!) <VirtualHost *:80> # or <Location /> for that matter PerlHandler MyHandler </VirtualHost> Request: /123 Expected PATH_INFO: /123 Got PATH_INFO: nothing! (boo!) Request: /TEST/123 Expected PATH_INFO: /TEST/123 Got PATH_INFO: /123 (boo!) What's happening here and how can I fix it to get the results I expect?

    Read the article

  • Getting list of fields back from 'use fields' pragma?

    - by makenai
    So I'm familiar with the use fields pragma in Perl that can be used to restrict the fields that are stored in a class: package Fruit; use fields qw( color shape taste ); sub new { my ( $class, $params ) = @_; my $self = fields::new( $class ) unless ref $class; foreach my $name ( keys %$params ) { $self->{ $name } = $params->{ $name }; } return $self; } My question is.. once I've declared the fields at the top, how I can get the list back.. say because I want to generate accessors dynamically? Is keys %FIELDS the only way? Secondarily, is there a more efficient way to pre-populate the fields in the constructor than looping through and assigning each parameter as I am above? Thanks!

    Read the article

1