def fetch!
      obj = ComicVine::API.get_details_by_url(self.api_detail_url)
      self.methods.each do |m|
        # Look for methods that can be set (i.e. ends with a =)
        if m.to_s =~ /^(?!_)([\w\d\_]+)=$/
          # Save our method symbols in a more readable fashion
          get_m = $1.to_sym
          set_m = m

          # Skip setting ids, as this should be handled by the classes when setting the children objects if needed
          next if get_m.to_s =~ /\_ids?$/ || set_m.to_s =~ /attributes/

          # Verify the new object has a get method and it is not nil or empty
          if self.respond_to?(set_m) && obj.respond_to?(get_m) && !obj.method(get_m).call.nil?
            # Now set the method to the new value
            self.method(set_m).call obj.method(get_m).call
          end
        end
      end
      self
    end
def fetch!
      obj = ComicVine::API.get_details_by_url(self.api_detail_url)
      self.methods.each do |m|
        # Look for methods that can be set (i.e. ends with a =)
        if m.to_s =~ /^(?!_)([\w\d\_]+)=$/
          # Save our method symbols in a more readable fashion
          get_m = $1.to_sym
          set_m = m

          # Skip setting ids, as this should be handled by the classes when setting the children objects if needed
          next if get_m.to_s =~ /\_ids?$/ || set_m.to_s =~ /attributes/

          # Verify the new object has a get method and it is not nil or empty
          if self.respond_to?(set_m) && obj.respond_to?(get_m) && !obj.method(get_m).call.nil?
            # Now set the method to the new value
            self.method(set_m).call obj.method(get_m).call
          end
        end
      end
      self
    end
Fetches data from ComicVine based on objects api_detail_url and updates self with new values

 @return [ComicVine::Resource]
 @since 0.1.2