Traitify is a ruby gem wrapper for Traitify's Personality API
Ruby
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
spec
.gitignore
CHANGELOG.md
Gemfile
Gemfile.lock
LICENSE.txt
README.md
traitify.gemspec

README.md

Traitify

Traitify is a ruby gem wrapper for Traitify's Personality API

Installation

Add this line to your Gemfile (using bundler):

gem "traitify"

Or install it yourself with:

gem install traitify

Usage

First, it is helpful to configure Traitify, otherwise everytime you create a Traitify object you must add the configuration

Configuration

All the configuration options can be found in lib/Traitify/configuration.rb

Traitify.configure do |traitify|
  traitify.host = "https://api-sandbox.traitify.com"
  traitify.version = "v1"
  traitify.secret_key = "secret"
  traitify.public_key = "public" # Optional
  traitify.deck_id = "deck-uuid"  # Optional
  traitify.image_pack = "image-pack-type"  # Optional
  traitify.locale_key = "en-us"  # Optional
end

With config file:

traitify = Traitify.new
traitify.create_assessment

Without config file:

traitify = Traitify.new(
  host: "https://api-sandbox.traitify.com",
  version: "v1",
  secret_key: "secret",
  deck_id: "deck-uuid"
)
traitify.create_assessment

Decks

Getting all the decks:

decks = traitify.decks

Returns an array of Deck objects:

deck = decks.first
deck.id                   #=> "deck-uuid"
deck.name                 #=> "Career"
deck.description          #=> "Description of deck"
# And more

Assessments

Creating an assessment:

assessment = traitify.create_assessment

You must can specify the deck in your configuration or override it here

assessment = traitify.create_assessment(deck_id: "deck-uuid")

You can optionally specify image pack or locale

assessment = traitify.create_assessment(image_pack: "full-color")

Returns an assessment object:

assessment.id           #=> "assessment-uuid"
assessment.deck_id      #=> "deck-uuid"
assessment.created_at   #=> Returns time in Epoch format
assessment.completed_at #=> nil

Finding an assessment:

assessment = traitify.find_assessment("assessment-uuid")

Returns an assessment object as seen above

Taking an assessment:

An assessment can be taken through our javascript plugin or by getting the slides and iterating through them

Finding an assessment's slides:

slides = traitify.find_slides("assessment-uuid")

Returns an array of slides

Updating an assessment's slides:

slides.map! do |slide|
  # true for me, false for not me
  slide.response = true
  # Pass in the time it took to make that choice (milliseconds)
  slide.time_taken = 600
  slide
end

traitify.update_slides("assessment-uuid", slides)

Updating a single assessment slide:

slide = assessment.slides.first
slide.response = true
slide.time_taken = 600
traitify.update_slide(assessment.id, slide)

Results

Getting an assessment's results

results = traitify.find_results("assessment-uuid")

Returns a results object:

results.personality_blend #=> Personality blend object
results.personality_types #=> Array of personality type objects (with scores)

personality_blend = results.personality_blend
personality_blend.personality_type_1 #=> Personality type object
personality_blend.personality_type_2 #=> Personality type object
personality_blend.name               #=> "Visionary Creator"
personality_blend.description        #=> "Visionary Creator description"
personality_blend.compliments        #=> "Visionary Creator compliments"
personality_blend.conflicts          #=> "Visionary Creator conflicts"

type = results.personality_types.first
type.score                   #=> 100
personality_type = type.personality_type
personality_type.name        #=> "Creator"
personality_type.description #=> "Creator description"
personality_type.badge       #=> Badge object

badge = personality_type.badge
badge.image_small  #=> "http://s3.amazonaws.com/traitify-api/badges/creator/flat/small"
badge.image_medium #=> "http://s3.amazonaws.com/traitify-api/badges/creator/flat/medium"
badge.image_large  #=> "http://s3.amazonaws.com/traitify-api/badges/creator/flat/large"

Getting an assessment's personality traits

traits = traitify.raw_personality_traits("assessment-uuid")
trait = traits.first
trait.score #=> 100
personality_trait = trait.personality_trait
personality_trait.name        #=> "Imaginative"
personality_trait.definition  #=> "Able to think symbolically and play with ideas."
personality_trait.description #=> "Coming Soon"

More results

More API endpoints may be available. You can find more at developer.traitify.com. To make authenticated calls to new endpoints use the syntax below:

traitify.get("/new/endpoint")
traitify.post("/new/endpoint", { ready: true })