print 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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 673aee93f0f7afa526af2bede1b50480e459d69a
4
+ data.tar.gz: a83e11ccd8f1e486fed89fd16ac9a44636bba368
5
+ SHA512:
6
+ metadata.gz: 3699395638df223b8c206428314415ffabb861e24d6dc3e656c0f50d8c1dc86190b1ac6031544e014a01858d9a5fd483ebdeea8692bf4495400961eba58017d8
7
+ data.tar.gz: 1e4c6673a3f2ba47397794787a63574b592cea270fb62a16767427f28a2c8fc7e1827ef9e8c1b7e57fe18a26145c4f972bc0ef72607bc3cd7dfae5107ae10c04
@@ -0,0 +1,8 @@
1
+ require 'print/version'
2
+ require 'print/client'
3
+ require 'print/configuration'
4
+ require 'print/rest/address'
5
+
6
+ module Print
7
+ extend Configuration
8
+ end
@@ -0,0 +1,45 @@
1
+ require 'print/configuration'
2
+ require 'print/rest/address'
3
+ require 'httparty'
4
+
5
+ module Print
6
+ class Client
7
+ include HTTParty
8
+ extend Configuration
9
+ include Print::REST::Address
10
+
11
+ attr_accessor *Configuration::VALID_CONFIG_KEYS
12
+
13
+ def initialize(options={})
14
+ merged_options = Print.options.merge(options)
15
+ Configuration::VALID_CONFIG_KEYS.each do |key|
16
+ send("#{key}=", merged_options[key])
17
+ end
18
+ end
19
+
20
+ base_uri self.endpoint
21
+
22
+ private
23
+
24
+ def headers
25
+ {
26
+ "User-Agent" => self.user_agent,
27
+ "Accept" => "application/io.tmd.v#{self.api_version}",
28
+ "Authorization" => "Token token=\"#{self.api_key}\""
29
+ }
30
+ end
31
+
32
+ def self.get_list(resource)
33
+ self.get('/' + resource.to_s, headers: headers)
34
+ end
35
+
36
+ def self.get_by_id(resource, id)
37
+ self.get('/' + resource.to_s + '/' + id, headers: headers)
38
+ end
39
+
40
+ def self.create(resource, hash)
41
+ self.post('/' + resource.to_s, hash, headers: headers)
42
+ end
43
+
44
+ end
45
+ end
@@ -0,0 +1,43 @@
1
+ module Print
2
+ module Configuration
3
+ VALID_CONNECTION_KEYS = [:endpoint, :user_agent, :method].freeze
4
+ VALID_OPTIONS_KEYS = [:api_key, :format, :api_version].freeze
5
+ VALID_CONFIG_KEYS = VALID_CONNECTION_KEYS + VALID_OPTIONS_KEYS
6
+
7
+ DEFAULT_ENDPOINT = 'http://print.dev/api'
8
+ DEFAULT_METHOD = :get
9
+ DEFAULT_USER_AGENT = "Print API Ruby Gem #{Print::VERSION}".freeze
10
+
11
+ DEFAULT_API_KEY = nil
12
+ DEFAULT_FORMAT = :json
13
+ DEFAULT_API_VERSION = 1
14
+
15
+ # Build accessor methods for every config options so we can do this, for example:
16
+ # Awesome.format = :xml
17
+ attr_accessor *VALID_CONFIG_KEYS
18
+
19
+ # Make sure we have the default values set when we get 'extended'
20
+ def self.extended(base)
21
+ base.reset
22
+ end
23
+
24
+ def configure
25
+ yield self
26
+ end
27
+
28
+ def options
29
+ Hash[ * VALID_CONFIG_KEYS.map { |key| [key, send(key)] }.flatten ]
30
+ end
31
+
32
+ def reset
33
+ self.endpoint = DEFAULT_ENDPOINT
34
+ self.method = DEFAULT_METHOD
35
+ self.user_agent = DEFAULT_USER_AGENT
36
+
37
+ self.api_key = DEFAULT_API_KEY
38
+ self.format = DEFAULT_FORMAT
39
+ self.api_version = DEFAULT_API_VERSION
40
+ end
41
+
42
+ end
43
+ end
@@ -0,0 +1,9 @@
1
+ module Print
2
+ module Resources
3
+ class Address < Base
4
+
5
+ attr_accessor :first_name, :last_name, :address, :secondary_address, :city, :state, :zipcode, :country
6
+
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,16 @@
1
+ module Print
2
+ module Resources
3
+ class Base
4
+
5
+ def initialize(options = {})
6
+ options.each do |key, value|
7
+ instance_variable_set("@#{key}", value)
8
+ end
9
+ yield(self) if block_given?
10
+ end
11
+
12
+
13
+
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,11 @@
1
+ module Print
2
+ module Resources
3
+ class Order
4
+
5
+ def initialize(id: nil)
6
+
7
+ end
8
+
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module Print
2
+ module Resources
3
+ class Piece
4
+
5
+ def initialize(id: nil)
6
+
7
+ end
8
+
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module Print
2
+ module Resources
3
+ class Product
4
+
5
+ def initialize(id: nil)
6
+
7
+ end
8
+
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,15 @@
1
+ module Print
2
+ module REST
3
+ module Address
4
+
5
+ def addresses(id: nil)
6
+ if id.nil?
7
+ self.class.get_list(:addresses)
8
+ else
9
+ self.class.get_by_id(:addresses, id)
10
+ end
11
+ end
12
+
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,3 @@
1
+ module Print
2
+ VERSION = "0.0.1"
3
+ end
metadata ADDED
@@ -0,0 +1,124 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: print
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Tyler Davis
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-11-03 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.6'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
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: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: httparty
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: webmock
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: ''
84
+ email:
85
+ - tyler@tmd.io
86
+ executables: []
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - lib/print.rb
91
+ - lib/print/client.rb
92
+ - lib/print/configuration.rb
93
+ - lib/print/resources/address.rb
94
+ - lib/print/resources/base.rb
95
+ - lib/print/resources/order.rb
96
+ - lib/print/resources/piece.rb
97
+ - lib/print/resources/product.rb
98
+ - lib/print/rest/address.rb
99
+ - lib/print/version.rb
100
+ homepage: http://tmd.io
101
+ licenses:
102
+ - MIT
103
+ metadata: {}
104
+ post_install_message:
105
+ rdoc_options: []
106
+ require_paths:
107
+ - lib
108
+ required_ruby_version: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ required_rubygems_version: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ requirements: []
119
+ rubyforge_project:
120
+ rubygems_version: 2.2.2
121
+ signing_key:
122
+ specification_version: 4
123
+ summary: A wrapper for the SoundViz print api.
124
+ test_files: []