explicit require in resource.rb
housekeeping
making use of destructuring syntax, and using #fetch as suggested on avdi's rubytapas
when you have objects, use objects.

tweaked ResourceExtractor to be less destructive.

# 0. make local variable an instance variable

    @json = MultiJson.load(json)

# 1. overload the method's param by naming the var the same.

if the tests are green this means that we didn't break the method.
thought this allowed me to not touch the method call/sig, I still
had to change the respective destructive operation. e.g.

    def initialize(json)
      # links = json.delete '_links'
      links = {}

    def extract_properties(properties)
      properties = @json.reject {|k,v| k == '_links'    }
                        .reject {|k,v| k == '_embedded' }

# 2. change the method signature.

now we're ready to remove that pesky param and change the line where the
extract methods are being called.

    def initialize(json)
      # properties and extract_properties properties
      extract_properties

    # def extract_properties(properties)
    def extract_properties

# Extra

I snuck in Hash#fetch that returns an empty array.
this way if the hash property is non-existent, the enumerator will just
skip
it merrily.

    def extract_links
      links = @json.fetch('_links', [])