FlickrMocks

Wiki | RDocs

FlickrMocks simplifies access to the Flickr API by providing wrappers and helpers on top of the FlickRaw gem.

Installation

In a standalone ruby project:

gem install flickrmocks

# in your code
require 'flickrmocks'

In Rails 3, add this to your Gemfile.

gem "flickrmocks"

In Rails 2, add this to your environment.rb file.

config.gem "flickrmocks"

Alternatively, you can install it as a plugin.

rails plugin install git://github.com/takaltoo/flickrmocks.git

Getting Started

FlickrMocks API helpers expect the FlickRaw.api_key to be initialized before they are called:

FlickRaw.api_key = your_flickr_api_key

In Rails you can automate the initialization by creating the initializer file config/initializers/flickraw_config.rb with the content:

FlickRaw.api_key = your_flickr_api_key[http://www.flickr.com/services/api/misc.api_keys.html]

Alternatively, your flickr api key can be placed into a separate YAML configuration file. In this scenario the contents of the config/initializers/flickrwa_config.rb would be something like:

FlickRaw.api_key = APP_CONFIG['flickr_api_key']

Your config/config.yml could look something similar to this (Note: you can use this file to place all your custom configurations):

development:
  flickr_api_key: xyz
test:
  flickr_api_key: xyz
production:
  flickr_api_key: xyz

Using the search API

FlickrMocks::Api.photo(options_hash), returns object of class FlickrMocks::Photo. The options accepted include:

:photo_id => "id for photo"
:secret => "secret for photo"

FlickrMocks::Api.photo_details(options_hash), returns object of class FlickrMocks::PhotoDetails. The options accepted include:

:photo_id => "id for photo"
:secret => "secret for photo"

FlickrMocks::Api.photos(options_hash), returns object of class FlickrMocks::PhotoSearch. The options accepted include:

:search_terms => 'search terms' # comma separated list of search terms 'happy cow, pasture'
:owner_id => 'id for owner of photo' # either :owner_id or :search_terms must be specified
:tag_mode => 'all' # optional argument, can be either all or any
:per_page =>  '50' # optional argument, can be any number greater than 0
:page =>  '1' # optional argument, can be any number greater than 0
:base_url => 'url' # optional argument

FlickrMocks::Api.photo_sizes(options_hash), returns object of class FlickrMocks::PhotoSizes. The options accepted include:

:photo_id => "id for photo"
:secret => "secret for photo" # optional argument

FlickrMocks::Api.interesting_photos(options_hash), returns object of class FlickrMocks::PhotoSearch. The options accepted include:

:date => '2010-10-10' # date of format YYYY-MM-DD
:per_page => 'number' # optional argument
:page =>  'number' # optional argument

FlickrMocks::Api.commons_institutions(options_hash), returns object of class FlickrMocks::CommonsInstitutions. The options accepted include:

:per_page => 'number' # optional argument
:current_page => 'number' # optional argument

Stubs for testing

FlickrMocks provides Rspec 2.0 stubs for the search API routines. To stub all the routines simply call:

FlickrMocks::Stubs::Api.all

By calling FlickrMocks::Stubs::Api.all the following methods will be stubbed.

FlickrMocks::Api.photo
FlickrMocks::Api.photos
FlickrMocks::Api.photo_details
FlickrMocks::Api.photo_sizes
FlickrMocks::Api.interesting_photos
FlickrMocks::Api.commons_institutions

NOTE: the stubs return errors when not called with proper options. Moreover, some of the stubs return different objects depending on how they are called. For additional details please refer RDocs.

Additional Docs

  • RDOCs

  • See more

  • Run the specs manually once you have checked out the repository:

    rspec spec -f d
    

Questions or Problems?

If you have any issues with FlickrMocks which you cannot find the solution to in the documentation, please add an issue on GitHub or fork the project and send a pull request.

To get the specs running you should call bundle and then rake.

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I do not break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request.

License

FlickrMocks is released under the MIT license.

Copyright © 2010 Takaltoo