Sometimes relationships need to be flexible, and that's where we look to polymorphism. Say we want to implement:
- A Person
- A Company
- A PhoneNumberthat can connect to aPersonor aCompany
| OpenDNS 1 - 208.67.222.222 | |
| OpenDNS 1 - 208.67.220.220 | |
| Google Public DNS1 - 8.8.8.8 | |
| Google Public DNS2 - 8.8.4.4 | 
| # testing the webservice with soapUI works fine using : | |
| # <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/"> | |
| # <soapenv:Header/> | |
| # <soapenv:Body> | |
| # <tem:GetAllUsers/> | |
| # </soapenv:Body> | |
| # </soapenv:Envelope> | |
| require 'rubygems' | |
| require 'savon' | 
| ## based on the example at: | |
| ## http://gist.github.com/17371 | |
| ## | |
| ## put me in lib/un_haml.rb (in the haml-based project) | |
| ## | |
| ## call me on the command line thus: | |
| ## $ script/runner UnHaml app/views/layouts/application.html.haml | |
| ## $ script/runner UnHaml */*/*/*.haml | |
| ## | |
| class UnHaml < Haml::Engine | 
| function listAllProperties(o){ | |
| var objectToInspect; | |
| var result = []; | |
| for(objectToInspect = o; objectToInspect !== null; objectToInspect = Object.getPrototypeOf(objectToInspect)){ | |
| console.log(Object.getOwnPropertyNames(objectToInspect)); | |
| } | |
| } | 
| bundle config --delete bin # Turn off Bundler's stub generator | |
| rake rails:update:bin # Use the new Rails 4 executables | |
| git add bin # Add bin/ to source control |