How about (for a little SRP and lighter method)

```ruby
def add_embedded(base_object, options)
  if (embedded = get_embedded(options)) && embedded.any?
    base_object[:_embedded] = embedded 
    add_embedded_links(base_object, embedded)
  end
  base_object
end

def add_embedded_links(base_object, embedded)
  embedded_links = embedded.inject({}) { |hash, (k,v)| hash.merge({k => get_self_links(v)}) }
  base_object[:_links] = base_object[:_links].merge( embedded_links )
end
```