class Slash3D::Iframe

Represent an Iframe to build a model with 3D Slash

Constants

LANGUAGES

Attributes

lang[R]
redirect_url[R]
source[R]

Public Class Methods

new(content_id: nil, source: nil, redirect_url: nil, lang: nil) click to toggle source
# File lib/slash3d/iframe.rb, line 12
def initialize(content_id: nil,
               source: nil,
               redirect_url: nil,
               lang: nil)
  @content_id = content_id
  @source = source
  @redirect_url = redirect_url
  @lang = lang
end

Public Instance Methods

content_id() click to toggle source
# File lib/slash3d/iframe.rb, line 22
def content_id
  @content_id ||= SecureRandom.hex(32)
end
url() click to toggle source
# File lib/slash3d/iframe.rb, line 26
def url
  parameters = {
    partner: Slash3D.configuration.partner_code,
    content: content_id,
    src: source,
    redirect: redirect_url,
    sign: signature,
    lang: lang_number,
    parent: 1,
  }

  "https://www.3dslash.net/slash.php?" + parameters.to_query
end

Private Instance Methods

lang_number() click to toggle source
# File lib/slash3d/iframe.rb, line 42
def lang_number
  LANGUAGES[lang] || 'en'
end
signature() click to toggle source
# File lib/slash3d/iframe.rb, line 46
def signature
  signature_values = [
    Slash3D.configuration.api_key,
    Slash3D.configuration.partner_code,
    content_id,
    source,
    redirect_url,
  ]

  Digest::SHA256.hexdigest(signature_values.join("|"))
end