lib/mockspotify.rb in mockspotify-0.0.1 vs lib/mockspotify.rb in mockspotify-0.1.0

- old
+ new

@@ -1,11 +1,41 @@ +require 'ffi' require 'rbconfig' -module MockSpotify - VERSION = "0.0.1" +module Spotify + module Mock + VERSION = '0.1.0' - class << self - def lib_path + # @return [String] path to the libmockspotify C extension binary. + def self.path File.expand_path('../../src/libmockspotify.', __FILE__) << RbConfig::CONFIG['DLEXT'] end + + # Overridden to always ffi_lib the mock path. + def ffi_lib(*) + super(Mock.path) + end + + # Overriden to not throw an error on missing functions. + def attach_function(*) + super + rescue FFI::NotFoundError => e + warn "#{e.message}" if $VERBOSE + end end + + extend FFI::Library + extend Mock + require 'spotify' + + $VERBOSE = true + attach_function :mock_user, :mocksp_user_create, [:string, :string, :string, :string, :relation_type, :bool], :user + attach_function :mock_track, :mocksp_track_create, [:string, :int, :array, :pointer, :int, :int, :int, :int, :error, :bool], :track + attach_function :mock_image, :mocksp_image_create, [:image_id, :imageformat, :size_t, :pointer, :error], :image + attach_function :mock_artist, :mocksp_artist_create, [:string, :bool], :artist + attach_function :mock_album, :mocksp_album_create, [:string, :artist, :int, :pointer, :image_id, :albumtype, :bool, :bool], :album + + attach_function :mock_artistbrowse, :mocksp_artistbrowse_create, [:artist, :bool], :artistbrowse + + attach_function :mock_playlist_event, :mocksp_playlist_event, [:int, :playlist], :void + $VERBOSE = false end