Module: MagicBell

Defined in:
lib/magicbell.rb,
lib/magicbell/hmac.rb,
lib/magicbell/user.rb,
lib/magicbell/config.rb,
lib/magicbell/railtie.rb,
lib/magicbell/version.rb,
lib/magicbell/init/rails.rb,
lib/magicbell/action_mailer_extension.rb

Defined Under Namespace

Modules: ActionMailerExtension, HMAC, Init Classes: Config, Railtie, User

Constant Summary collapse

CLOUDFRONT_DOMAIN =
"dxd8ma9fvw6e2.cloudfront.net"
VERSION =
'0.1.0'

Class Method Summary collapse

Class Method Details

.api_hostObject



27
28
29
# File 'lib/magicbell.rb', line 27

def api_host
  config.api_host
end

.api_keyObject



35
36
37
# File 'lib/magicbell.rb', line 35

def api_key
  config.api_key
end

.api_secretObject



39
40
41
# File 'lib/magicbell.rb', line 39

def api_secret
  config.api_secret
end

.configObject



14
15
16
# File 'lib/magicbell.rb', line 14

def config
  @config ||= Config.new
end

.configure {|config| ... } ⇒ Object

Yields:



10
11
12
# File 'lib/magicbell.rb', line 10

def configure
  yield(config)
end

.extras_css_urlObject Also known as: host_page_css_url



22
23
24
# File 'lib/magicbell.rb', line 22

def extras_css_url
  "//#{CLOUDFRONT_DOMAIN}/extras.magicbell.css"
end

.magic_addressObject



47
48
49
# File 'lib/magicbell.rb', line 47

def magic_address
  config.magic_address
end

.project_idObject



43
44
45
# File 'lib/magicbell.rb', line 43

def project_id
  config.project_id
end

.project_specific_headersObject



51
52
53
54
55
56
# File 'lib/magicbell.rb', line 51

def project_specific_headers
  {
    'X-MAGICBELL-API-KEY' => config.api_key,
    'X-MAGICBELL-API-SECRET' => config.api_secret
  }
end

.reset_configObject



18
19
20
# File 'lib/magicbell.rb', line 18

def reset_config
  @config = nil
end

.user_key(user_email) ⇒ Object

Calculate HMAC for user’s email



59
60
61
# File 'lib/magicbell.rb', line 59

def user_key(user_email)
  MagicBell::HMAC.calculate(user_email, MagicBell.api_secret)
end

.widget_javascript_urlObject



31
32
33
# File 'lib/magicbell.rb', line 31

def widget_javascript_url
  "//#{CLOUDFRONT_DOMAIN}/widget.magicbell.js"
end