Module: ShareMeowClient

Extended by:
Configuration
Defined in:
lib/share_meow_client.rb,
lib/share_meow_client/version.rb

Constant Summary collapse

VERSION =
'0.1.2'

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Configuration

configuration, define_setting

Class Method Details

.image_url(template:, options:) ⇒ String

Generates a ShareMeow URL

Usage

image_url = ShareMeowClient.image_url(template: 'HelloWorld', options: { message: 'Hi' })

Parameters:

  • template (String)

    The name of the ShareMeow template

  • options (Hash)

    The options required by the template

Returns:

  • (String)

    ShareMeow URL



37
38
39
40
41
42
43
44
45
# File 'lib/share_meow_client.rb', line 37

def self.image_url(template:, options:)
  json_params = options.merge(template: template).to_json

  encoded_params = Base64.urlsafe_encode64(json_params)
  hmac = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha1'.freeze), secret_key, encoded_params)
  hmac_digest = Base64.urlsafe_encode64([hmac].pack('H*'.freeze))

  "#{base_url}/v1/#{encoded_params}/#{hmac_digest}/image.jpg"
end

Instance Method Details

#base_urlObject

Set the configuration variables

Usage

# config/initializers/share_meow.rb
ShareMeowClient.configuration do |config|
  config.base_url = 'https://your-share-meow.example.com'
  config.secret_key = 'a_very_long_secret_key'
end


19
# File 'lib/share_meow_client.rb', line 19

define_setting :base_url