Tags:

Since the happymapper google group has been closed to posting, thought I’d toss this up here.

I posted this question to the group:

---------------------------------------------------
I have a node that looks like this:

<ItemInfo>
<ProductVar text_id="Variable1">MyValue</ProductVar>
<ProductVar text_id="Variable2">MySecondValue</ProductVar>
</ItemInfo>
I need both the value of the attribute "text_id" and the element value
"MyValue". I was trying to use something like what I saw in the
"current weather" example:
<aws:current-condition icon="http://deskwx.weatherbug.com/images/
Forecast/icons/cond007.gif">Sunny</aws:current-condition>
element :current_condition, String, :tag => 'current-
condition', :attributes => {:icon => String}
Which (the example) works just fine on my system. So this is the
mapping I have:
class ItemInfo
include HappyMapper
tag 'ItemInfo'
has_many :product_var, String, :tag => "ProductVar", :attributes =>
{:text_id => String}
end
This does not return text_id. I can return
item_info.product_var.text_id if I use "element" in place of
"has_many", but there are always going to be multiple "ProductVar"s,
so that won't work. Whenever I try to replace "element" with
"has_many", I get this error:
undefined method `attribute_nodes' for ["text_id", "Variable1"]:Array
Ideas?
---------------------------------------------------

Well, if I’d thought this through and read the code, as suggested here:http://railstips.org/blog/archives/2010/10/14/stop-googling/
I’d have figured this out. Since I didn’t, it took the help of both the wonderful Eric Larson and Damien Le Berrigaud to point out my epic failure to read the docs (in the nicest way possible).

Eric pointed out that what I needed was to make ProductVar its own class:

Which I thought was brilliant, but then realized I didn’t have the method “content” available to me because I was using the nokogiri-happymapper gem. So off to Damien I went, to ask if he could merge in the “content” method to nokogiri-happymapper, only to have him tell me:

---------------------------------------------------
You can already do that with text_node. Check the spec: it "should parse text node correctly" in happymapper_spec
---------------------------------------------------

So, had I just read the docs and/or the spec, I’d have figured this out. SMRT.

Tags:

Ok, technically I’m not schilling because I’m not even pretending I’m not involved.

Luke and I are paying for the bulk of our wedding costs… and we’re coming up a bit short. If you’re interested in buying any of Luke’s music, now would be the helpful time to do it. “WHAT A RIPOFF! VOLUME 2″, an odds-and-ends compilation was just released, as well as the “GREATEST HITS VOLUME 1″ 2-CD. Also, he’s always looking for more work as a caricature artist & cartoonist – he’s for hire at parties as well as for individual caricatures/cartoons for gifts, as well as promo art.

I’m pretty much booked for website work for now, but I’ll be available after the wedding for more freelance.

Tags:

If you ever run into this pain in the butt error, hopefully this’ll save you some time:

Installing a gem without the version works fine; installing a gem using “-v 2.x.x” or whatever version you like ends in:spec_fetcher.rb:254: warning: getc is obsolete; use STDIN.getc instead

Guess what? RubyGems 1.3.7 doesn’t play nice with OSX 10.5.8. So downgrade to 1.3.6, or if you’re using RVM, do this:echo 'rubygems_version=1.3.6' >> ~/.rvm/config/user ; rvm remove 1.8.7 ; rvm install 1.8.7
(assuming you are using 1.8.7 in your RVM, otherwise, use 1.9.1 or whatever)
Voila, works like a charm.

EDIT 7/7/2011: According to Mike Shaheen, the new way to do this is simply: rvm rubygems 1.3.5

Thanks to Wayne E. Seguin for his help on irc.freenode.net #rvm (and for RVM in the first place!)

PS You may have to downgrade to 1.3.5 to get “rake gems:install” to work.

Tags:

Remember my last post about how I was starting an herb garden, about two months ago, and I wasn’t expecting anything to actually grow?

Stuff grew! The big foof of green you see on the left is parsley; I had to separate it out from the others so they didn’t hog all the sun. The rest in the tray is oregano, basil, tarragon, and catnip. The plant in the soda bottle bottom behind the parsley is a marigold I got from the UU church’s earth day service. Thinking tomorrow will be a good day for planting outside.

Well, here’s yet again another attempt at me starting an herb garden. Difference this time is that I actually have land to plant on. Yay, home ownership! I’ve got parsley, catnip, oregano, thyme, tarragon, and basil. Any tips from you green thumbs out there? ‘Cause generally anything I plant dies pretty horribly. Black thumbs run in my family. I know I need to keep them watered, but not too watered or I’ll get root rot. When should I water them? Every other day? Every second day? I have them at a west-facing window so they’ll get some sunlight filtered through the pine tree back there every day.