makeprintable 0.0.1
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/Gemfile +3 -0
- data/README.md +1 -0
- data/Rakefile +2 -0
- data/lib/makeprintable.rb +23 -0
- data/lib/makeprintable/client.rb +12 -0
- data/lib/makeprintable/client/endpoints.rb +23 -0
- data/lib/makeprintable/client/jobs.rb +40 -0
- data/lib/makeprintable/version.rb +3 -0
- data/lib/misc/hash.rb +12 -0
- data/lib/misc/object.rb +10 -0
- data/spec/client_spec.rb +13 -0
- data/spec/endpoints_spec.rb +22 -0
- data/spec/makeprintable_spec.rb +10 -0
- data/spec/spec_helper.rb +6 -0
- metadata +105 -0
    
        checksums.yaml
    ADDED
    
    | @@ -0,0 +1,7 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            SHA1:
         | 
| 3 | 
            +
              metadata.gz: 56cf908e95969b49d1ce9c54c36ac0658f58dfc9
         | 
| 4 | 
            +
              data.tar.gz: 9b760a6f4eae6cb0c943c0f3469cef345e1b41f3
         | 
| 5 | 
            +
            SHA512:
         | 
| 6 | 
            +
              metadata.gz: 3624f2c0a68f3af8c3a06b0b45e9c0686fc6f2c9993e80021f14d5629dc5e1995f44609c732ef5051e87565ff482f960aeddab8d898a696a24b69636098ada3b
         | 
| 7 | 
            +
              data.tar.gz: 1027890696b27f331d1314449e5907b495f85498e37033f1106d296f34752da88e0736b250d32cef1e7b8f3150eb24abdd5034d13e2c20511bbb3c8395f7ca5e
         | 
    
        data/Gemfile
    ADDED
    
    
    
        data/README.md
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            # makeprintable
         | 
    
        data/Rakefile
    ADDED
    
    
| @@ -0,0 +1,23 @@ | |
| 1 | 
            +
            require 'makeprintable/version'
         | 
| 2 | 
            +
            require 'rubygems'
         | 
| 3 | 
            +
            require 'rest-client'
         | 
| 4 | 
            +
            require 'json'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            require File.expand_path('../misc/hash.rb', __FILE__)
         | 
| 7 | 
            +
            require File.expand_path('../makeprintable/client.rb', __FILE__)
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            module MakePrintable
         | 
| 10 | 
            +
              class << self
         | 
| 11 | 
            +
                attr_accessor :configuration
         | 
| 12 | 
            +
              end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
              def self.configure
         | 
| 15 | 
            +
                self.configuration ||= Configuration.new
         | 
| 16 | 
            +
                yield(configuration)
         | 
| 17 | 
            +
              end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
             | 
| 20 | 
            +
              class Configuration
         | 
| 21 | 
            +
                attr_accessor :api_key, :api_secret
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
            end
         | 
| @@ -0,0 +1,12 @@ | |
| 1 | 
            +
            require File.expand_path('../client/endpoints.rb', __FILE__)
         | 
| 2 | 
            +
            require File.expand_path('../client/jobs.rb', __FILE__)
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            module MakePrintable
         | 
| 5 | 
            +
              class Client
         | 
| 6 | 
            +
                attr_accessor :api_key, :api_secret
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                def initialize
         | 
| 9 | 
            +
                  @api_key, @api_secret = [MakePrintable.configuration.api_key, MakePrintable.configuration.api_secret]
         | 
| 10 | 
            +
                end
         | 
| 11 | 
            +
              end
         | 
| 12 | 
            +
            end
         | 
| @@ -0,0 +1,23 @@ | |
| 1 | 
            +
            module MakePrintable
         | 
| 2 | 
            +
              class Client
         | 
| 3 | 
            +
                def base_uri(path='/')
         | 
| 4 | 
            +
                  "http://api.makeprintable.com#{path}?api_key=#{api_key}&api_secret=#{api_secret}"
         | 
| 5 | 
            +
                end
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                def configure_payload(path, opts={})
         | 
| 8 | 
            +
                  base_uri(path) + opts.to_params
         | 
| 9 | 
            +
                end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                def get_request(uri)
         | 
| 12 | 
            +
                  JSON.parse RestClient.get(uri)
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                def post_request(path, opts)
         | 
| 16 | 
            +
                  JSON.parse RestClient.post(base_uri(path), opts)
         | 
| 17 | 
            +
                end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                def delete_request(uri)
         | 
| 20 | 
            +
                  JSON.parse RestClient.delete(uri)
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
            end
         | 
| @@ -0,0 +1,40 @@ | |
| 1 | 
            +
            module MakePrintable
         | 
| 2 | 
            +
              class Client
         | 
| 3 | 
            +
                # Upload a model to fix it later
         | 
| 4 | 
            +
                def upload(opts={})
         | 
| 5 | 
            +
                  opts.assert_valid_keys(:file)
         | 
| 6 | 
            +
                  post_request '/items', opts
         | 
| 7 | 
            +
                end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                # Return a list of previously uploaded items
         | 
| 10 | 
            +
                def items
         | 
| 11 | 
            +
                  get_request configure_payload("/items")
         | 
| 12 | 
            +
                end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                # Return specific item information
         | 
| 15 | 
            +
                def find_item(id)
         | 
| 16 | 
            +
                  get_request configure_payload("/items/#{id}")
         | 
| 17 | 
            +
                end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                # Delete a specific item from server.
         | 
| 20 | 
            +
                def delete_item(id)
         | 
| 21 | 
            +
                  delete_request configure_payload("/item/#{id}")
         | 
| 22 | 
            +
                end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                # Repairs an uploaded item
         | 
| 25 | 
            +
                def repair(opts={})
         | 
| 26 | 
            +
                  opts.assert_valid_keys(:item_id, :callback_url, :name, :wall_thickness, :print_quality, :pre_optimize, :post_optimize)
         | 
| 27 | 
            +
                  post_request '/fixes', opts
         | 
| 28 | 
            +
                end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                # Returns repair information for a specific repair request, including status, progress and download links.
         | 
| 31 | 
            +
                def find_repaired(id)
         | 
| 32 | 
            +
                  get_request configure_payload("/fixes/#{id}")
         | 
| 33 | 
            +
                end
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                # Return a list of repaired items
         | 
| 36 | 
            +
                def repaired
         | 
| 37 | 
            +
                  get_request configure_payload('/fixes')
         | 
| 38 | 
            +
                end
         | 
| 39 | 
            +
              end
         | 
| 40 | 
            +
            end
         | 
    
        data/lib/misc/hash.rb
    ADDED
    
    | @@ -0,0 +1,12 @@ | |
| 1 | 
            +
            require File.expand_path('../object', __FILE__)
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            class Hash
         | 
| 4 | 
            +
              def assert_valid_keys(*valid_keys)
         | 
| 5 | 
            +
                valid_keys.flatten!
         | 
| 6 | 
            +
                each_key {|k| raise(ArgumentError, "Unknown key #{k}") unless valid_keys.include?(k)}
         | 
| 7 | 
            +
              end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
              def to_params
         | 
| 10 | 
            +
                '&'+collect{|k, v| v.to_query(k)}.sort * '&'
         | 
| 11 | 
            +
              end
         | 
| 12 | 
            +
            end
         | 
    
        data/lib/misc/object.rb
    ADDED
    
    
    
        data/spec/client_spec.rb
    ADDED
    
    | @@ -0,0 +1,13 @@ | |
| 1 | 
            +
            require 'spec_helper'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe MakePrintable::Client do
         | 
| 4 | 
            +
              describe '#initialize' do
         | 
| 5 | 
            +
             | 
| 6 | 
            +
                it 'should inherit configuration block and set it to client object' do
         | 
| 7 | 
            +
                  client = MakePrintable::Client.new
         | 
| 8 | 
            +
                  expect(client.api_key).to eq '123apikey'
         | 
| 9 | 
            +
                  expect(client.api_secret).to eq '123apisecret'
         | 
| 10 | 
            +
                end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              end
         | 
| 13 | 
            +
            end
         | 
| @@ -0,0 +1,22 @@ | |
| 1 | 
            +
            require 'spec_helper'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe MakePrintable::Client do
         | 
| 4 | 
            +
              describe '#base_uri' do
         | 
| 5 | 
            +
                it 'should be created from set configuration' do
         | 
| 6 | 
            +
                  client = MakePrintable::Client.new
         | 
| 7 | 
            +
                  expect(client.base_uri).to eq "http://api.makeprintable.com/?api_key=123apikey&api_secret=123apisecret"
         | 
| 8 | 
            +
                end
         | 
| 9 | 
            +
              end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
              describe '#configure payload' do
         | 
| 12 | 
            +
                it 'should add an extra variable to the base_uri' do
         | 
| 13 | 
            +
                  client = MakePrintable::Client.new
         | 
| 14 | 
            +
                  expect(client.configure_payload('/', variable: true)).to eq "http://api.makeprintable.com/?api_key=123apikey&api_secret=123apisecret&variable=true"
         | 
| 15 | 
            +
                end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                it 'should have no problems chaining variables' do
         | 
| 18 | 
            +
                  client = MakePrintable::Client.new
         | 
| 19 | 
            +
                  expect(client.configure_payload('/', variable1: true, variable2: false)).to eq "http://api.makeprintable.com/?api_key=123apikey&api_secret=123apisecret&variable1=true&variable2=false"
         | 
| 20 | 
            +
                end
         | 
| 21 | 
            +
              end
         | 
| 22 | 
            +
            end
         | 
| @@ -0,0 +1,10 @@ | |
| 1 | 
            +
            require 'spec_helper'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe MakePrintable do
         | 
| 4 | 
            +
              describe '#configuration' do
         | 
| 5 | 
            +
                it 'should adopt configuration set in the initializer' do
         | 
| 6 | 
            +
                  expect(MakePrintable.configuration.api_key).to eq '123apikey'
         | 
| 7 | 
            +
                  expect(MakePrintable.configuration.api_secret).to eq '123apisecret'
         | 
| 8 | 
            +
                end
         | 
| 9 | 
            +
              end
         | 
| 10 | 
            +
            end
         | 
    
        data/spec/spec_helper.rb
    ADDED
    
    
    
        metadata
    ADDED
    
    | @@ -0,0 +1,105 @@ | |
| 1 | 
            +
            --- !ruby/object:Gem::Specification
         | 
| 2 | 
            +
            name: makeprintable
         | 
| 3 | 
            +
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            +
              version: 0.0.1
         | 
| 5 | 
            +
            platform: ruby
         | 
| 6 | 
            +
            authors:
         | 
| 7 | 
            +
            - Dennis de Vulder
         | 
| 8 | 
            +
            autorequire: 
         | 
| 9 | 
            +
            bindir: bin
         | 
| 10 | 
            +
            cert_chain: []
         | 
| 11 | 
            +
            date: 2015-06-05 00:00:00.000000000 Z
         | 
| 12 | 
            +
            dependencies:
         | 
| 13 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            +
              name: rake
         | 
| 15 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            +
                requirements:
         | 
| 17 | 
            +
                - - ">="
         | 
| 18 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            +
                    version: '0'
         | 
| 20 | 
            +
              type: :runtime
         | 
| 21 | 
            +
              prerelease: false
         | 
| 22 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            +
                requirements:
         | 
| 24 | 
            +
                - - ">="
         | 
| 25 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            +
                    version: '0'
         | 
| 27 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            +
              name: rspec
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - ">="
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: '0'
         | 
| 34 | 
            +
              type: :runtime
         | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - ">="
         | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: '0'
         | 
| 41 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            +
              name: rest-client
         | 
| 43 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 | 
            +
                requirements:
         | 
| 45 | 
            +
                - - ">="
         | 
| 46 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            +
                    version: '0'
         | 
| 48 | 
            +
              type: :runtime
         | 
| 49 | 
            +
              prerelease: false
         | 
| 50 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 | 
            +
                requirements:
         | 
| 52 | 
            +
                - - ">="
         | 
| 53 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            +
                    version: '0'
         | 
| 55 | 
            +
            description: ''
         | 
| 56 | 
            +
            email:
         | 
| 57 | 
            +
            - dennisdevulder@gmail.com
         | 
| 58 | 
            +
            executables: []
         | 
| 59 | 
            +
            extensions: []
         | 
| 60 | 
            +
            extra_rdoc_files: []
         | 
| 61 | 
            +
            files:
         | 
| 62 | 
            +
            - Gemfile
         | 
| 63 | 
            +
            - README.md
         | 
| 64 | 
            +
            - Rakefile
         | 
| 65 | 
            +
            - lib/makeprintable.rb
         | 
| 66 | 
            +
            - lib/makeprintable/client.rb
         | 
| 67 | 
            +
            - lib/makeprintable/client/endpoints.rb
         | 
| 68 | 
            +
            - lib/makeprintable/client/jobs.rb
         | 
| 69 | 
            +
            - lib/makeprintable/version.rb
         | 
| 70 | 
            +
            - lib/misc/hash.rb
         | 
| 71 | 
            +
            - lib/misc/object.rb
         | 
| 72 | 
            +
            - spec/client_spec.rb
         | 
| 73 | 
            +
            - spec/endpoints_spec.rb
         | 
| 74 | 
            +
            - spec/makeprintable_spec.rb
         | 
| 75 | 
            +
            - spec/spec_helper.rb
         | 
| 76 | 
            +
            homepage: http://rubygems.org/gems/makeprintable
         | 
| 77 | 
            +
            licenses:
         | 
| 78 | 
            +
            - MIT
         | 
| 79 | 
            +
            metadata: {}
         | 
| 80 | 
            +
            post_install_message: 
         | 
| 81 | 
            +
            rdoc_options: []
         | 
| 82 | 
            +
            require_paths:
         | 
| 83 | 
            +
            - lib
         | 
| 84 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 85 | 
            +
              requirements:
         | 
| 86 | 
            +
              - - ">="
         | 
| 87 | 
            +
                - !ruby/object:Gem::Version
         | 
| 88 | 
            +
                  version: '0'
         | 
| 89 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 90 | 
            +
              requirements:
         | 
| 91 | 
            +
              - - ">="
         | 
| 92 | 
            +
                - !ruby/object:Gem::Version
         | 
| 93 | 
            +
                  version: '0'
         | 
| 94 | 
            +
            requirements: []
         | 
| 95 | 
            +
            rubyforge_project: 
         | 
| 96 | 
            +
            rubygems_version: 2.2.2
         | 
| 97 | 
            +
            signing_key: 
         | 
| 98 | 
            +
            specification_version: 4
         | 
| 99 | 
            +
            summary: Ruby wrapper for detecting flaws in 3D designs and repairing them for 3D
         | 
| 100 | 
            +
              printing. Using the makeprintable API.
         | 
| 101 | 
            +
            test_files:
         | 
| 102 | 
            +
            - spec/client_spec.rb
         | 
| 103 | 
            +
            - spec/endpoints_spec.rb
         | 
| 104 | 
            +
            - spec/makeprintable_spec.rb
         | 
| 105 | 
            +
            - spec/spec_helper.rb
         |