traitify 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
 - data/.gitignore +34 -0
 - data/CHANGELOG.md +12 -0
 - data/Gemfile +4 -0
 - data/Gemfile.lock +54 -0
 - data/LICENSE.txt +22 -0
 - data/README.md +166 -0
 - data/lib/traitify.rb +13 -0
 - data/lib/traitify/assessments.rb +36 -0
 - data/lib/traitify/badges.rb +43 -0
 - data/lib/traitify/client.rb +35 -0
 - data/lib/traitify/client/assessments.rb +20 -0
 - data/lib/traitify/client/results.rb +17 -0
 - data/lib/traitify/client/slides.rb +36 -0
 - data/lib/traitify/client/users.rb +17 -0
 - data/lib/traitify/configuration.rb +21 -0
 - data/lib/traitify/connection.rb +46 -0
 - data/lib/traitify/error.rb +44 -0
 - data/lib/traitify/personality_blends.rb +55 -0
 - data/lib/traitify/personality_types.rb +39 -0
 - data/lib/traitify/request.rb +46 -0
 - data/lib/traitify/results.rb +31 -0
 - data/lib/traitify/slides.rb +95 -0
 - data/lib/traitify/users.rb +39 -0
 - data/lib/traitify/version.rb +3 -0
 - data/spec/spec_helper.rb +19 -0
 - data/spec/support/mocks/assessment.json +7 -0
 - data/spec/support/mocks/result.json +157 -0
 - data/spec/support/mocks/slide.json +13 -0
 - data/spec/support/mocks/slides.json +54 -0
 - data/spec/support/mocks/slides_complete.json +54 -0
 - data/spec/support/mocks/user.json +8 -0
 - data/spec/traitify-ruby/client/assessment_spec.rb +64 -0
 - data/spec/traitify-ruby/client/result_spec.rb +54 -0
 - data/spec/traitify-ruby/client/slide_spec.rb +87 -0
 - data/spec/traitify-ruby/client/user_spec.rb +41 -0
 - data/traitify.gemspec +29 -0
 - metadata +202 -0
 
    
        checksums.yaml
    ADDED
    
    | 
         @@ -0,0 +1,7 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ---
         
     | 
| 
      
 2 
     | 
    
         
            +
            SHA1:
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 63fba7187cd2db760a452ee645019b4b3c7f4639
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: a4679dc09c00cf736d46499ce4d8b48b35880ed3
         
     | 
| 
      
 5 
     | 
    
         
            +
            SHA512:
         
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: a11b1f2283ab1414f20c8e7cab20a9ce555bd90dc17becf00f8af96d15e6c0a1ac78c02b87492f350f19c9884e74b328541da66419ca805977a1eb5a88917b6b
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 10f132345ad8f3a41005ad0aaf07c80f38daf94c7c7c283a5a8ef1e07fd7f47d89f1c76ba6b836a827d7ab530b986a6693b21370af0cd1afcaeb11b079b45bee
         
     | 
    
        data/.gitignore
    ADDED
    
    | 
         @@ -0,0 +1,34 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            *.gem
         
     | 
| 
      
 2 
     | 
    
         
            +
            *.rbc
         
     | 
| 
      
 3 
     | 
    
         
            +
            /.config
         
     | 
| 
      
 4 
     | 
    
         
            +
            /coverage/
         
     | 
| 
      
 5 
     | 
    
         
            +
            /InstalledFiles
         
     | 
| 
      
 6 
     | 
    
         
            +
            /pkg/
         
     | 
| 
      
 7 
     | 
    
         
            +
            /spec/reports/
         
     | 
| 
      
 8 
     | 
    
         
            +
            /test/tmp/
         
     | 
| 
      
 9 
     | 
    
         
            +
            /test/version_tmp/
         
     | 
| 
      
 10 
     | 
    
         
            +
            /tmp/
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            ## Specific to RubyMotion:
         
     | 
| 
      
 13 
     | 
    
         
            +
            # .dat*
         
     | 
| 
      
 14 
     | 
    
         
            +
            # .repl_history
         
     | 
| 
      
 15 
     | 
    
         
            +
            # build/
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            ## Documentation cache and generated files:
         
     | 
| 
      
 18 
     | 
    
         
            +
            /.yardoc/
         
     | 
| 
      
 19 
     | 
    
         
            +
            /_yardoc/
         
     | 
| 
      
 20 
     | 
    
         
            +
            /doc/
         
     | 
| 
      
 21 
     | 
    
         
            +
            /rdoc/
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            ## Environment normalisation:
         
     | 
| 
      
 24 
     | 
    
         
            +
            /.bundle/
         
     | 
| 
      
 25 
     | 
    
         
            +
            /lib/bundler/man/
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            # for a library or gem, you might want to ignore these files since the code is
         
     | 
| 
      
 28 
     | 
    
         
            +
            # intended to run in multiple environments; otherwise, check them in:
         
     | 
| 
      
 29 
     | 
    
         
            +
            # Gemfile.lock
         
     | 
| 
      
 30 
     | 
    
         
            +
            # .ruby-version
         
     | 
| 
      
 31 
     | 
    
         
            +
            # .ruby-gemset
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
         
     | 
| 
      
 34 
     | 
    
         
            +
            .rvmrc
         
     | 
    
        data/CHANGELOG.md
    ADDED
    
    | 
         @@ -0,0 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ### 1.1.0
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            * Features
         
     | 
| 
      
 4 
     | 
    
         
            +
              * Added ability to get results (by [@tomprats])
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            ### 1.0.1
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            * Bug Fixes
         
     | 
| 
      
 9 
     | 
    
         
            +
              * Fixed error with package requires being capitalized (by [@cpreisinger])
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
              [@cpreisinger]:https://github.com/cpreisinger
         
     | 
| 
      
 12 
     | 
    
         
            +
              [@tomprats]:https://github.com/tomprats
         
     | 
    
        data/Gemfile
    ADDED
    
    
    
        data/Gemfile.lock
    ADDED
    
    | 
         @@ -0,0 +1,54 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            PATH
         
     | 
| 
      
 2 
     | 
    
         
            +
              remote: .
         
     | 
| 
      
 3 
     | 
    
         
            +
              specs:
         
     | 
| 
      
 4 
     | 
    
         
            +
                traitify (1.1.0)
         
     | 
| 
      
 5 
     | 
    
         
            +
                  faraday (~> 0.8.0)
         
     | 
| 
      
 6 
     | 
    
         
            +
                  faraday_middleware (~> 0.9.0)
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            GEM
         
     | 
| 
      
 9 
     | 
    
         
            +
              remote: https://rubygems.org/
         
     | 
| 
      
 10 
     | 
    
         
            +
              specs:
         
     | 
| 
      
 11 
     | 
    
         
            +
                addressable (2.3.6)
         
     | 
| 
      
 12 
     | 
    
         
            +
                binding_of_caller (0.7.2)
         
     | 
| 
      
 13 
     | 
    
         
            +
                  debug_inspector (>= 0.0.1)
         
     | 
| 
      
 14 
     | 
    
         
            +
                coderay (1.1.0)
         
     | 
| 
      
 15 
     | 
    
         
            +
                crack (0.4.2)
         
     | 
| 
      
 16 
     | 
    
         
            +
                  safe_yaml (~> 1.0.0)
         
     | 
| 
      
 17 
     | 
    
         
            +
                debug_inspector (0.0.2)
         
     | 
| 
      
 18 
     | 
    
         
            +
                diff-lcs (1.2.5)
         
     | 
| 
      
 19 
     | 
    
         
            +
                faraday (0.8.9)
         
     | 
| 
      
 20 
     | 
    
         
            +
                  multipart-post (~> 1.2.0)
         
     | 
| 
      
 21 
     | 
    
         
            +
                faraday_middleware (0.9.1)
         
     | 
| 
      
 22 
     | 
    
         
            +
                  faraday (>= 0.7.4, < 0.10)
         
     | 
| 
      
 23 
     | 
    
         
            +
                method_source (0.8.2)
         
     | 
| 
      
 24 
     | 
    
         
            +
                multipart-post (1.2.0)
         
     | 
| 
      
 25 
     | 
    
         
            +
                pry (0.9.12.6)
         
     | 
| 
      
 26 
     | 
    
         
            +
                  coderay (~> 1.0)
         
     | 
| 
      
 27 
     | 
    
         
            +
                  method_source (~> 0.8)
         
     | 
| 
      
 28 
     | 
    
         
            +
                  slop (~> 3.4)
         
     | 
| 
      
 29 
     | 
    
         
            +
                rake (10.1.1)
         
     | 
| 
      
 30 
     | 
    
         
            +
                rspec (2.14.1)
         
     | 
| 
      
 31 
     | 
    
         
            +
                  rspec-core (~> 2.14.0)
         
     | 
| 
      
 32 
     | 
    
         
            +
                  rspec-expectations (~> 2.14.0)
         
     | 
| 
      
 33 
     | 
    
         
            +
                  rspec-mocks (~> 2.14.0)
         
     | 
| 
      
 34 
     | 
    
         
            +
                rspec-core (2.14.8)
         
     | 
| 
      
 35 
     | 
    
         
            +
                rspec-expectations (2.14.5)
         
     | 
| 
      
 36 
     | 
    
         
            +
                  diff-lcs (>= 1.1.3, < 2.0)
         
     | 
| 
      
 37 
     | 
    
         
            +
                rspec-mocks (2.14.6)
         
     | 
| 
      
 38 
     | 
    
         
            +
                safe_yaml (1.0.3)
         
     | 
| 
      
 39 
     | 
    
         
            +
                slop (3.5.0)
         
     | 
| 
      
 40 
     | 
    
         
            +
                webmock (1.13.0)
         
     | 
| 
      
 41 
     | 
    
         
            +
                  addressable (>= 2.2.7)
         
     | 
| 
      
 42 
     | 
    
         
            +
                  crack (>= 0.3.2)
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
            PLATFORMS
         
     | 
| 
      
 45 
     | 
    
         
            +
              ruby
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
            DEPENDENCIES
         
     | 
| 
      
 48 
     | 
    
         
            +
              binding_of_caller
         
     | 
| 
      
 49 
     | 
    
         
            +
              bundler (~> 1.3)
         
     | 
| 
      
 50 
     | 
    
         
            +
              pry
         
     | 
| 
      
 51 
     | 
    
         
            +
              rake (~> 10.1.0)
         
     | 
| 
      
 52 
     | 
    
         
            +
              rspec (~> 2.14.0)
         
     | 
| 
      
 53 
     | 
    
         
            +
              traitify!
         
     | 
| 
      
 54 
     | 
    
         
            +
              webmock (~> 1.13.0)
         
     | 
    
        data/LICENSE.txt
    ADDED
    
    | 
         @@ -0,0 +1,22 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Copyright (c) 2014 Tom Prats
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            MIT License
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            Permission is hereby granted, free of charge, to any person obtaining
         
     | 
| 
      
 6 
     | 
    
         
            +
            a copy of this software and associated documentation files (the
         
     | 
| 
      
 7 
     | 
    
         
            +
            "Software"), to deal in the Software without restriction, including
         
     | 
| 
      
 8 
     | 
    
         
            +
            without limitation the rights to use, copy, modify, merge, publish,
         
     | 
| 
      
 9 
     | 
    
         
            +
            distribute, sublicense, and/or sell copies of the Software, and to
         
     | 
| 
      
 10 
     | 
    
         
            +
            permit persons to whom the Software is furnished to do so, subject to
         
     | 
| 
      
 11 
     | 
    
         
            +
            the following conditions:
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            The above copyright notice and this permission notice shall be
         
     | 
| 
      
 14 
     | 
    
         
            +
            included in all copies or substantial portions of the Software.
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         
     | 
| 
      
 17 
     | 
    
         
            +
            EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
         
     | 
| 
      
 18 
     | 
    
         
            +
            MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         
     | 
| 
      
 19 
     | 
    
         
            +
            NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
         
     | 
| 
      
 20 
     | 
    
         
            +
            LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
         
     | 
| 
      
 21 
     | 
    
         
            +
            OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
         
     | 
| 
      
 22 
     | 
    
         
            +
            WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
         
     | 
    
        data/README.md
    ADDED
    
    | 
         @@ -0,0 +1,166 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Traitify
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            Traitify is a ruby gem wrapper for the Traitify Developer's API
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            ## Installation
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            Add this line to your Gemfile (using bundler):
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                gem 'traitify'
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            Or install it yourself with:
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                gem install traitify
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            ## Usage
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            First it is helpful to configure Traitify, otherwise everytime you create a Traitify object you must add the configuration
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            ### Configuration
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            All the configuration options can be found in `lib/Traitify/configuration.rb`
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                Traitify.configure do |tom|
         
     | 
| 
      
 24 
     | 
    
         
            +
                  tom.secret = "secret"
         
     | 
| 
      
 25 
     | 
    
         
            +
                  tom.api_host = "http://example.com"
         
     | 
| 
      
 26 
     | 
    
         
            +
                  tom.api_version = "v1"
         
     | 
| 
      
 27 
     | 
    
         
            +
                  tom.deck_id = "deck-uuid"
         
     | 
| 
      
 28 
     | 
    
         
            +
                end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
            #### With config file:
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                tom = Traitify.new
         
     | 
| 
      
 33 
     | 
    
         
            +
                tom.create_assessment
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            #### Without config file:
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                tom = Traitify.new(api_host: "http://example.com", api_version: "v1", deck_id: "deck-uuid", secret: "secret")
         
     | 
| 
      
 38 
     | 
    
         
            +
                tom.create_assessment
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
            ### Users
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
            #### Creating a user:
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                user = tom.create_user(
         
     | 
| 
      
 45 
     | 
    
         
            +
                  first_name: "Tom",
         
     | 
| 
      
 46 
     | 
    
         
            +
                  last_name: "Prats",
         
     | 
| 
      
 47 
     | 
    
         
            +
                  email: "tom@tomprats.com"
         
     | 
| 
      
 48 
     | 
    
         
            +
                )
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
            Returns a user object:
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                user.id         #=> "toms-uuid"
         
     | 
| 
      
 53 
     | 
    
         
            +
                user.first_name #=> "Tom"
         
     | 
| 
      
 54 
     | 
    
         
            +
                user.last_name  #=> "Prats"
         
     | 
| 
      
 55 
     | 
    
         
            +
                user.email      #=> "tom@tomprats.com"
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
            #### Finding a user:
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
                tom.find_user("toms-uuid")
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
            Returns a user object as seen above
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
            ### Assessments
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
            #### Creating an assessment:
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
                assessment = tom.create_assessment
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
            You can also pass a user id to tie it to a user
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
                assessment = tom.create_assessment(user_id: "toms-uuid")
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
            You must can specify the deck in your configuration or override it here
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
                assessment = tom.create_assessment(deck_id: "deck-uuid")
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
            Returns an assessment object:
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
                assessment.id           #=> "assessment-uuid"
         
     | 
| 
      
 80 
     | 
    
         
            +
                assessment.deck_id      #=> "deck-uuid"
         
     | 
| 
      
 81 
     | 
    
         
            +
                assessment.user_id      #=> "toms-uuid"
         
     | 
| 
      
 82 
     | 
    
         
            +
                assessment.created_at   #=> 46197-10-17 12:29:08 -0400
         
     | 
| 
      
 83 
     | 
    
         
            +
                assessment.completed_at #=> nil
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
            #### Finding an assessment:
         
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
                assessment = tom.find_assessment("assessment-uuid")
         
     | 
| 
      
 88 
     | 
    
         
            +
             
     | 
| 
      
 89 
     | 
    
         
            +
            Returns an assessment object as seen above
         
     | 
| 
      
 90 
     | 
    
         
            +
             
     | 
| 
      
 91 
     | 
    
         
            +
            #### Taking an assessment:
         
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
      
 93 
     | 
    
         
            +
            An assessment can be taken through our javascript plugin or by getting the slides and iterating through them
         
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
      
 95 
     | 
    
         
            +
            #### Finding an assessment's slides:
         
     | 
| 
      
 96 
     | 
    
         
            +
             
     | 
| 
      
 97 
     | 
    
         
            +
                slides = tom.find_slides("assessment_id")
         
     | 
| 
      
 98 
     | 
    
         
            +
             
     | 
| 
      
 99 
     | 
    
         
            +
            Returns a slides object which has the assessment id but also functions as an array
         
     | 
| 
      
 100 
     | 
    
         
            +
             
     | 
| 
      
 101 
     | 
    
         
            +
                slides.assessment_id #=> "assessment-uuid"
         
     | 
| 
      
 102 
     | 
    
         
            +
                slides.first         #=> Slide object
         
     | 
| 
      
 103 
     | 
    
         
            +
                slides.all           #=> Array of slide objects
         
     | 
| 
      
 104 
     | 
    
         
            +
             
     | 
| 
      
 105 
     | 
    
         
            +
            #### Updating an assessment's slides:
         
     | 
| 
      
 106 
     | 
    
         
            +
             
     | 
| 
      
 107 
     | 
    
         
            +
                slides.all.map! do |slide|
         
     | 
| 
      
 108 
     | 
    
         
            +
                  # true for me, false for not me
         
     | 
| 
      
 109 
     | 
    
         
            +
                  slide.response = true
         
     | 
| 
      
 110 
     | 
    
         
            +
                  # Pass in the time it took to make that choice (milliseconds)
         
     | 
| 
      
 111 
     | 
    
         
            +
                  slide.time_taken = 600
         
     | 
| 
      
 112 
     | 
    
         
            +
                  slide
         
     | 
| 
      
 113 
     | 
    
         
            +
                end
         
     | 
| 
      
 114 
     | 
    
         
            +
             
     | 
| 
      
 115 
     | 
    
         
            +
                tom.update_slides(slides)
         
     | 
| 
      
 116 
     | 
    
         
            +
             
     | 
| 
      
 117 
     | 
    
         
            +
            #### Updating a single assessment slide:
         
     | 
| 
      
 118 
     | 
    
         
            +
             
     | 
| 
      
 119 
     | 
    
         
            +
                slide = assessment.slides.first
         
     | 
| 
      
 120 
     | 
    
         
            +
                slide.response = true
         
     | 
| 
      
 121 
     | 
    
         
            +
                slide.time_taken = 600
         
     | 
| 
      
 122 
     | 
    
         
            +
                slides.first = tom.update_slide(assessment.id, slide)
         
     | 
| 
      
 123 
     | 
    
         
            +
             
     | 
| 
      
 124 
     | 
    
         
            +
            Or with a hash
         
     | 
| 
      
 125 
     | 
    
         
            +
             
     | 
| 
      
 126 
     | 
    
         
            +
                assessment.slides.first = tom.update_slide(
         
     | 
| 
      
 127 
     | 
    
         
            +
                  assessment_id: assessment.id,
         
     | 
| 
      
 128 
     | 
    
         
            +
                  slide_id:      assessment.slides.first.id,
         
     | 
| 
      
 129 
     | 
    
         
            +
                  response:      0,
         
     | 
| 
      
 130 
     | 
    
         
            +
                  time_taken:    600
         
     | 
| 
      
 131 
     | 
    
         
            +
                )
         
     | 
| 
      
 132 
     | 
    
         
            +
             
     | 
| 
      
 133 
     | 
    
         
            +
             
     | 
| 
      
 134 
     | 
    
         
            +
            ### Results
         
     | 
| 
      
 135 
     | 
    
         
            +
             
     | 
| 
      
 136 
     | 
    
         
            +
            #### Getting an assessment's results
         
     | 
| 
      
 137 
     | 
    
         
            +
             
     | 
| 
      
 138 
     | 
    
         
            +
                results = tom.find_results("assessment-uuid")
         
     | 
| 
      
 139 
     | 
    
         
            +
             
     | 
| 
      
 140 
     | 
    
         
            +
            Returns a results object:
         
     | 
| 
      
 141 
     | 
    
         
            +
             
     | 
| 
      
 142 
     | 
    
         
            +
                results.personality_blend #=> Personality blend object
         
     | 
| 
      
 143 
     | 
    
         
            +
                results.personality_types #=> Array of personality type objects (with scores)
         
     | 
| 
      
 144 
     | 
    
         
            +
             
     | 
| 
      
 145 
     | 
    
         
            +
                personality_blend = results.personality_blend
         
     | 
| 
      
 146 
     | 
    
         
            +
                personality_blend.personality_type1                     #=> Personality type object (without score)
         
     | 
| 
      
 147 
     | 
    
         
            +
                personality_blend.personality_type2                     #=> Personality type object (without score)
         
     | 
| 
      
 148 
     | 
    
         
            +
                personality_blend.name                                  #=> "Visionary Creator"
         
     | 
| 
      
 149 
     | 
    
         
            +
                personality_blend.description                           #=> "Visionary Creator description"
         
     | 
| 
      
 150 
     | 
    
         
            +
                personality_blend.compliments                           #=> "Visionary Creator compliments"
         
     | 
| 
      
 151 
     | 
    
         
            +
                personality_blend.conflicts                             #=> "Visionary Creator conflicts"
         
     | 
| 
      
 152 
     | 
    
         
            +
                personality_blend.compatible_work_environment_1         #=> "Example text here"
         
     | 
| 
      
 153 
     | 
    
         
            +
                personality_blend.compatible_work_environment_2         #=> "Example text here"
         
     | 
| 
      
 154 
     | 
    
         
            +
                personality_blend.compatible_work_environment_3         #=> "Example text here"
         
     | 
| 
      
 155 
     | 
    
         
            +
                personality_blend.compatible_work_environment_4         #=> "Example text here"
         
     | 
| 
      
 156 
     | 
    
         
            +
             
     | 
| 
      
 157 
     | 
    
         
            +
                personality_type = results.personality_types.first
         
     | 
| 
      
 158 
     | 
    
         
            +
                personality_type.name        #=> "Creator"
         
     | 
| 
      
 159 
     | 
    
         
            +
                personality_type.description #=> "Creator description"
         
     | 
| 
      
 160 
     | 
    
         
            +
                personality_type.badge       #=> Badge object
         
     | 
| 
      
 161 
     | 
    
         
            +
                personality_type.score       #=> 100
         
     | 
| 
      
 162 
     | 
    
         
            +
             
     | 
| 
      
 163 
     | 
    
         
            +
                badge = personality_type.badge
         
     | 
| 
      
 164 
     | 
    
         
            +
                badge.image_small  #=> "http://s3.amazonaws.com/traitify-api/badges/creator/flat/small"
         
     | 
| 
      
 165 
     | 
    
         
            +
                badge.image_medium #=> "http://s3.amazonaws.com/traitify-api/badges/creator/flat/medium"
         
     | 
| 
      
 166 
     | 
    
         
            +
                badge.image_large  #=> "http://s3.amazonaws.com/traitify-api/badges/creator/flat/large"
         
     | 
    
        data/lib/traitify.rb
    ADDED
    
    
| 
         @@ -0,0 +1,36 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Traitify
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Assessment
         
     | 
| 
      
 3 
     | 
    
         
            +
                attr_accessor :id, :deck_id, :user_id, :created_at, :completed_at
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                def initialize(options = {})
         
     | 
| 
      
 6 
     | 
    
         
            +
                  self.id            = options[:id]
         
     | 
| 
      
 7 
     | 
    
         
            +
                  self.deck_id       = options[:deck_id]
         
     | 
| 
      
 8 
     | 
    
         
            +
                  self.user_id       = options[:user_id]
         
     | 
| 
      
 9 
     | 
    
         
            +
                  self.created_at    = options[:created_at]
         
     | 
| 
      
 10 
     | 
    
         
            +
                  self.completed_at  = options[:completed_at]
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                def self.parse_json(assessment)
         
     | 
| 
      
 14 
     | 
    
         
            +
                  created_at = assessment["created_at"] ? Time.at(assessment["created_at"]) : nil
         
     | 
| 
      
 15 
     | 
    
         
            +
                  completed_at = assessment["completed_at"] ? Time.at(assessment["completed_at"]) : nil
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                  Assessment.new(
         
     | 
| 
      
 18 
     | 
    
         
            +
                    id:           assessment["id"],
         
     | 
| 
      
 19 
     | 
    
         
            +
                    deck_id:      assessment["deck_id"],
         
     | 
| 
      
 20 
     | 
    
         
            +
                    user_id:      assessment["user_id"],
         
     | 
| 
      
 21 
     | 
    
         
            +
                    created_at:   created_at,
         
     | 
| 
      
 22 
     | 
    
         
            +
                    completed_at: completed_at
         
     | 
| 
      
 23 
     | 
    
         
            +
                  )
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                def to_hash
         
     | 
| 
      
 27 
     | 
    
         
            +
                  {
         
     | 
| 
      
 28 
     | 
    
         
            +
                    id:           id,
         
     | 
| 
      
 29 
     | 
    
         
            +
                    deck_id:      deck_id,
         
     | 
| 
      
 30 
     | 
    
         
            +
                    user_id:      user_id,
         
     | 
| 
      
 31 
     | 
    
         
            +
                    created_at:   created_at,
         
     | 
| 
      
 32 
     | 
    
         
            +
                    completed_at: completed_at
         
     | 
| 
      
 33 
     | 
    
         
            +
                  }
         
     | 
| 
      
 34 
     | 
    
         
            +
                end
         
     | 
| 
      
 35 
     | 
    
         
            +
              end
         
     | 
| 
      
 36 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,43 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Traitify
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Badge
         
     | 
| 
      
 3 
     | 
    
         
            +
                attr_accessor :image_small, :image_medium, :image_large, :font_color, :color_1, :color_2, :color_3
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                def initialize(options = {})
         
     | 
| 
      
 6 
     | 
    
         
            +
                  self.image_small  = options[:image_small]
         
     | 
| 
      
 7 
     | 
    
         
            +
                  self.image_medium = options[:image_medium]
         
     | 
| 
      
 8 
     | 
    
         
            +
                  self.image_large  = options[:image_large]
         
     | 
| 
      
 9 
     | 
    
         
            +
                  self.font_color   = options[:font_color]
         
     | 
| 
      
 10 
     | 
    
         
            +
                  self.color_1      = options[:color1]
         
     | 
| 
      
 11 
     | 
    
         
            +
                  self.color_2      = options[:color2]
         
     | 
| 
      
 12 
     | 
    
         
            +
                  self.color_3      = options[:color3]
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                def self.parse_json(badge)
         
     | 
| 
      
 16 
     | 
    
         
            +
                  if badge
         
     | 
| 
      
 17 
     | 
    
         
            +
                    Badge.new(
         
     | 
| 
      
 18 
     | 
    
         
            +
                      image_small:  badge["image_small"],
         
     | 
| 
      
 19 
     | 
    
         
            +
                      image_medium: badge["image_medium"],
         
     | 
| 
      
 20 
     | 
    
         
            +
                      image_large:  badge["image_large"],
         
     | 
| 
      
 21 
     | 
    
         
            +
                      font_color:   badge["font_color"],
         
     | 
| 
      
 22 
     | 
    
         
            +
                      color_1:      badge["color_1"],
         
     | 
| 
      
 23 
     | 
    
         
            +
                      color_2:      badge["color_2"],
         
     | 
| 
      
 24 
     | 
    
         
            +
                      color_3:      badge["color_3"]
         
     | 
| 
      
 25 
     | 
    
         
            +
                    )
         
     | 
| 
      
 26 
     | 
    
         
            +
                  else
         
     | 
| 
      
 27 
     | 
    
         
            +
                    nil
         
     | 
| 
      
 28 
     | 
    
         
            +
                  end
         
     | 
| 
      
 29 
     | 
    
         
            +
                end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                def to_hash
         
     | 
| 
      
 32 
     | 
    
         
            +
                  {
         
     | 
| 
      
 33 
     | 
    
         
            +
                    image_small:  image_small,
         
     | 
| 
      
 34 
     | 
    
         
            +
                    image_medium: image_medium,
         
     | 
| 
      
 35 
     | 
    
         
            +
                    image_large:  image_large,
         
     | 
| 
      
 36 
     | 
    
         
            +
                    font_color:   font_color,
         
     | 
| 
      
 37 
     | 
    
         
            +
                    color_1:      color1,
         
     | 
| 
      
 38 
     | 
    
         
            +
                    color_2:      color2,
         
     | 
| 
      
 39 
     | 
    
         
            +
                    color_3:      color3
         
     | 
| 
      
 40 
     | 
    
         
            +
                  }
         
     | 
| 
      
 41 
     | 
    
         
            +
                end
         
     | 
| 
      
 42 
     | 
    
         
            +
              end
         
     | 
| 
      
 43 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,35 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # require base modules
         
     | 
| 
      
 2 
     | 
    
         
            +
            require "traitify/connection"
         
     | 
| 
      
 3 
     | 
    
         
            +
            require "traitify/request"
         
     | 
| 
      
 4 
     | 
    
         
            +
            require "traitify/assessments"
         
     | 
| 
      
 5 
     | 
    
         
            +
            require "traitify/badges"
         
     | 
| 
      
 6 
     | 
    
         
            +
            require "traitify/personality_blends"
         
     | 
| 
      
 7 
     | 
    
         
            +
            require "traitify/personality_types"
         
     | 
| 
      
 8 
     | 
    
         
            +
            require "traitify/results"
         
     | 
| 
      
 9 
     | 
    
         
            +
            require "traitify/slides"
         
     | 
| 
      
 10 
     | 
    
         
            +
            require "traitify/users"
         
     | 
| 
      
 11 
     | 
    
         
            +
            # require client modules in lib/Traitify/client
         
     | 
| 
      
 12 
     | 
    
         
            +
            Dir[File.expand_path("../client/*.rb", __FILE__)].each {|f| require f }
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            module Traitify
         
     | 
| 
      
 15 
     | 
    
         
            +
              class Client
         
     | 
| 
      
 16 
     | 
    
         
            +
                attr_accessor(*Configuration::VALID_OPTIONS_KEYS)
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                def initialize(options = {})
         
     | 
| 
      
 19 
     | 
    
         
            +
                  options = Traitify.options.merge(options)
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                  Configuration::VALID_OPTIONS_KEYS.each do |key|
         
     | 
| 
      
 22 
     | 
    
         
            +
                    send("#{key}=", options[key])
         
     | 
| 
      
 23 
     | 
    
         
            +
                  end
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                include Traitify::Connection
         
     | 
| 
      
 27 
     | 
    
         
            +
                include Traitify::Configuration
         
     | 
| 
      
 28 
     | 
    
         
            +
                include Traitify::Request
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                include Traitify::Client::Assessment
         
     | 
| 
      
 31 
     | 
    
         
            +
                include Traitify::Client::User
         
     | 
| 
      
 32 
     | 
    
         
            +
                include Traitify::Client::Result
         
     | 
| 
      
 33 
     | 
    
         
            +
                include Traitify::Client::Slide
         
     | 
| 
      
 34 
     | 
    
         
            +
              end
         
     | 
| 
      
 35 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,20 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Traitify
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Client
         
     | 
| 
      
 3 
     | 
    
         
            +
                module Assessment
         
     | 
| 
      
 4 
     | 
    
         
            +
                  def create_assessment(options = {})
         
     | 
| 
      
 5 
     | 
    
         
            +
                    assessment_params = { deck_id: self.deck_id }
         
     | 
| 
      
 6 
     | 
    
         
            +
                    assessment_params.merge!(deck_id: options[:deck_id]) if options[:deck_id]
         
     | 
| 
      
 7 
     | 
    
         
            +
                    assessment_params.merge!(user_id: options[:user_id]) if options[:user_id]
         
     | 
| 
      
 8 
     | 
    
         
            +
                    response = post("/assessments", assessment_params)
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                    Traitify::Assessment.parse_json(response)
         
     | 
| 
      
 11 
     | 
    
         
            +
                  end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                  def find_assessment(assessment_id)
         
     | 
| 
      
 14 
     | 
    
         
            +
                    response = get("/assessments/#{assessment_id}")
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                    Traitify::Assessment.parse_json(response)
         
     | 
| 
      
 17 
     | 
    
         
            +
                  end
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
              end
         
     | 
| 
      
 20 
     | 
    
         
            +
            end
         
     |