```ruby
require 'net/http'
require 'json'

require 'random_yiff/version'

module RandomYiff
  class Yiff
    def self.post_uri
      res = Net::HTTP.get_response(URI('https://e621.net/post/random'))
      URI(res['location'] + '?format=json')
    end

    attr_reader :post_uri

    def initialize
      @post_uri = self.class.post_uri
      yield self if block_given?
    end

    def post
      JSON.load(Net::HTTP.get(post_uri))
    end

    def file_uri
      URI(file_url)
    end

    def file
      Net::HTTP.get(file_uri)
    end

    def method_missing(m, *args, &block)
      post["#{m}"] || super(m, *args, &block)
    end
  end
end
```

Move Yiff to its own file
user
```ruby
require 'net/http'
require 'json'

require 'random_yiff/version'
require 'random_yiff/yiff'

module RandomYiff

end
```
assistant