shirtsio 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cb8da6ea02a157477414d05adb7c6b87a2870dcf
4
- data.tar.gz: 51f822aa19b970e7531cfadd8a2dad55fc0487d8
3
+ metadata.gz: 4be6149f4625de501167a9c29c1766958b1e45a0
4
+ data.tar.gz: af8ce14c981ce2c081e1791c7fe60ebda55d88ab
5
5
  SHA512:
6
- metadata.gz: a69d934ccba8b365b53d69d955b5883c29529fa2b320b3ed218c51cb5cf2ce44702adbf31fa2b985394127ac0892b4aa9c041e621ff8ef789d11812918984ab1
7
- data.tar.gz: fd215fdf061db9e1516e6c2a07d2bc510b42237024a998aa2489c64b700390e28a0b7ef6875a37284ec0bbd32d925d6edb5a8870a62f187595613b5dc2551be1
6
+ metadata.gz: 41f2e1da3a993ed8fe95cc10ebaf14f4a28ff7b12124de8911cada51dcf1a0c9ed07edad81f4e7b9b2cea1e4a129e2d4835004127206bd7811bf6f39167a86d2
7
+ data.tar.gz: dc7554f85245e013c6024f28ae234b540847772e7c3be717af593d478304f504fce83c08cfa2acf771dfc467b23936bdcd9f300ba786e88d192c1f2b3592bd60
@@ -0,0 +1,11 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 2.0.0
5
+ - ruby-head
6
+ - jruby-19mode
7
+ - jruby-head
8
+ - rbx-19mode
9
+ matrix:
10
+ allow_failures:
11
+ - rvm: ruby-head
data/Gemfile CHANGED
@@ -3,12 +3,17 @@ source 'https://rubygems.org'
3
3
  # Specify your gem's dependencies in shirtsio.gemspec
4
4
  gemspec
5
5
 
6
+ platforms :rbx do
7
+ gem 'json'
8
+ end
9
+
6
10
  group :development do
7
- gem 'bundler', '~> 1.3'
11
+ gem 'bundler'
8
12
  gem 'rake'
9
13
  gem 'yard'
10
14
  end
11
15
 
12
16
  group :test do
13
17
  gem 'rspec'
18
+ gem 'simplecov'
14
19
  end
data/README.md CHANGED
@@ -1,7 +1,9 @@
1
- # Shirtsio
1
+ # Shirtsio [![endorse](http://api.coderwall.com/anthonator/endorsecount.png)](http://coderwall.com/anthonator)
2
2
 
3
3
  A Ruby wrapper around the shirts.io API
4
4
 
5
+ [![Build Status](https://travis-ci.org/anthonator/shirtsio.png?branch=master)](https://travis-ci.org/anthonator/shirtsio)
6
+
5
7
  ## Documentation
6
8
 
7
9
  You can view detailed documentation of this library at http://rdoc.info/github/anthonator/shirtsio/frames. We try to make sure that our documentation is up-to-date and thorough. However, we do recommend keeping the [shirts.io API documentation](https://www.shirts.io/docs/overview/) handy.
data/Rakefile CHANGED
@@ -6,3 +6,5 @@ require 'rspec/core/rake_task'
6
6
  RSpec::Core::RakeTask.new(:spec) do |spec|
7
7
  spec.pattern = FileList['spec/**/*_spec.rb']
8
8
  end
9
+
10
+ task :default => :spec
@@ -29,6 +29,7 @@ class Shirtsio::Product < Shirtsio::Endpoint
29
29
  response.each do |product|
30
30
  products << Shirtsio::Product::Simple.new(product)
31
31
  end
32
+ products
32
33
  end
33
34
 
34
35
  # Get a list of all available product categories.
@@ -1,16 +1,16 @@
1
1
  module Shirtsio
2
2
  module Request
3
- def get(path, options = {}, headers = {}, raw = false)
4
- request(:get, path, options, headers, raw)
3
+ def get(path, options = {}, headers = {})
4
+ request(:get, path, options, headers)
5
5
  end
6
6
 
7
- def post(path, options = {}, headers = {}, raw = false)
8
- request(:post, path, options, headers, raw)
7
+ def post(path, options = {}, headers = {})
8
+ request(:post, path, options, headers)
9
9
  end
10
10
 
11
11
  private
12
12
  # Perform an HTTP request
13
- def request(method, path, options, headers, raw)
13
+ def request(method, path, options, headers)
14
14
  headers.merge!({
15
15
  'User-Agent' => user_agent
16
16
  })
@@ -20,25 +20,13 @@ module Shirtsio
20
20
  })
21
21
 
22
22
  response = connection.send(method) do |request|
23
- if method == :get
24
- request.url "#{endpoint}#{path}", options
25
- else
26
- request.url "#{endpoint}#{path}"
27
- request.body = options
28
- end
23
+ request.url "#{endpoint}#{path}", options
24
+ request.body = options
29
25
  request.headers = headers
30
26
  end
31
27
  Shirtsio::Utils.handle_api_error(response) if response.status != 200
32
28
 
33
- if raw
34
- result = response.body
35
- else
36
- # The API is returning the "result" encoded as a string rather than
37
- # object notation so it requires a second pass of the JSON parser
38
- result = Shirtsio::Utils.parse_json(response.body)[:result]
39
- end
40
-
41
- result
29
+ Shirtsio::Utils.parse_json(response.body)[:result]
42
30
  end
43
31
  end
44
32
  end
@@ -1,3 +1,3 @@
1
1
  module Shirtsio
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
@@ -0,0 +1,10 @@
1
+ require 'spec_helper'
2
+
3
+ describe Shirtsio::Configuration do
4
+ it "should allow the api_key to be set" do
5
+ Shirtsio.configure do |config|
6
+ config.api_key = 'abcd1234'
7
+ end
8
+ Shirtsio.api_key.should == 'abcd1234'
9
+ end
10
+ end
@@ -32,4 +32,11 @@ describe Shirtsio::DSL::QueryBuilder do
32
32
  end.to_hash)
33
33
  URI::unescape(query).should == 'a_method[b_method][0]=value'
34
34
  end
35
+
36
+ it "should translate File to Faraday::UploadIO" do
37
+ query = Shirtsio::DSL::QueryBuilder.new([:a_method]) do |builder|
38
+ builder.a_method File.new(File.expand_path('support/ruby.png', File.dirname(__FILE__)))
39
+ end.to_hash
40
+ query[:a_method].class.should == Faraday::UploadIO
41
+ end
35
42
  end
@@ -0,0 +1,52 @@
1
+ require 'spec_helper'
2
+
3
+ describe Shirtsio::Order, :skip_if_travis => true do
4
+ it "should create an order" do
5
+ order = Shirtsio::Order.create do |order|
6
+ order.test true
7
+ order.price 28.43
8
+ order.print_type 'Digital Print'
9
+ order.ship_type 'Standard'
10
+ order.garment do |garment|
11
+ garment.product_id 1
12
+ garment.color 'Black'
13
+ garment.sizes do |size|
14
+ size.med 1
15
+ end
16
+ end
17
+ order.print do |print|
18
+ print.front do |front|
19
+ front.artwork File.new(File.expand_path('support/ruby.png', File.dirname(__FILE__)))
20
+ front.proof File.new(File.expand_path('support/ruby.jpg', File.dirname(__FILE__)))
21
+ front.color_count 1
22
+ front.colors ['Black']
23
+ front.dimensions '5.0 inches wide'
24
+ front.placement '4.0 inches below bottom of collar'
25
+ end
26
+ end
27
+ order.personalization do |personalization|
28
+ personalization.size 'med'
29
+ personalization.batch 1
30
+ personalization.number 1
31
+ personalization.number_size 2
32
+ personalization.name 'Bob'
33
+ personalization.name_size 1
34
+ end
35
+ order.addresses do |address|
36
+ address.name 'Anthony'
37
+ address.company 'Sticksnleaves'
38
+ address.address '1234 Hopes and Dreams Ln.'
39
+ address.address2 'Apt. <3'
40
+ address.city 'Seattle'
41
+ address.state 'Washington'
42
+ address.zipcode 55555
43
+ address.country 'US'
44
+ address.batch 1
45
+ address.sizes do |size|
46
+ size.med 1
47
+ end
48
+ end
49
+ end
50
+ order.class.should == Shirtsio::Order
51
+ end
52
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ describe Shirtsio::Product, :skip_if_travis => true do
4
+ it "should find a specific product" do
5
+ product = Shirtsio::Product.find(1)
6
+ product.class.should == Shirtsio::Product
7
+ end
8
+
9
+ describe Shirtsio::Product::Category do
10
+ it "should return a list of categories" do
11
+ categories = Shirtsio::Product::Category.list
12
+ categories[0].class.should == Shirtsio::Product::Category
13
+ end
14
+
15
+ it "should return a list of products" do
16
+ categories = Shirtsio::Product::Category.list
17
+ categories[0].products[0].class.should == Shirtsio::Product::Simple
18
+ end
19
+
20
+ it "should return a complete product object" do
21
+ categories = Shirtsio::Product::Category.list
22
+ categories[0].products[0].full_product.class.should == Shirtsio::Product
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ describe Shirtsio::Quote do
4
+ it "should retrieve a quote" do
5
+ quote = Shirtsio::Quote.create do |quote|
6
+ quote.print_type 'Digital Print'
7
+ quote.garment do |garment|
8
+ garment.product_id 1
9
+ garment.color 'Black'
10
+ garment.sizes do |size|
11
+ size.med 1
12
+ end
13
+ end
14
+ quote.print do |print|
15
+ print.front do |front|
16
+ front.color_count 1
17
+ front.colors ['Black']
18
+ end
19
+ end
20
+ end
21
+ quote.class.should == Shirtsio::Quote
22
+ end
23
+ end
@@ -1,11 +1,29 @@
1
- ENV['RAILS_ENV'] = 'test'
2
-
3
- require 'shirtsio'
4
-
5
1
  # Require supporting ruby files with custom matchers and macros, etc,
6
2
  # in spec/support/ and its subdirectories.
7
3
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
8
4
 
5
+ require 'simplecov'
6
+ SimpleCov.start do
7
+ if Support::Travis::travis?
8
+ add_filter do |source_file|
9
+ ['product_spec.rb', 'product.rb', 'order_spec.rb', 'order.rb', 'status_spec.rb', 'status.rb'].include?(File.basename(source_file.filename))
10
+ end
11
+ end
12
+ end
13
+
14
+ ENV['RAILS_ENV'] = 'test'
15
+
16
+ require 'tempfile'
17
+ require 'shirtsio'
18
+
9
19
  RSpec.configure do |config|
20
+ config.before(:each) do
21
+ Shirtsio.configure do |config|
22
+ config.api_key = '...'
23
+ end
24
+ end
10
25
 
26
+ if Support::Travis::travis?
27
+ config.filter_run_excluding :skip_if_travis => true
28
+ end
11
29
  end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+
3
+ describe Shirtsio::Status, :skip_if_travis => true do
4
+ describe Shirtsio::Status::Webhook do
5
+ it "should register a webhook" do
6
+ Shirtsio::Status::Webhook.create('http://www.example.com').should be_true
7
+ Shirtsio::Status::Webhook.delete('http://www.example.com') # teardown
8
+ end
9
+
10
+ it "should return a list of webhooks" do
11
+ Shirtsio::Status::Webhook.create('http://www.example.com') # seed
12
+ webhooks = Shirtsio::Status::Webhook.list
13
+ webhooks[0].class.should == Shirtsio::Status::Webhook
14
+ Shirtsio::Status::Webhook.delete('http://www.example.com') # teardown
15
+ end
16
+
17
+ it "should delete a webhook" do
18
+ Shirtsio::Status::Webhook.create('http://www.example.com') # seed
19
+ Shirtsio::Status::Webhook.delete('http://www.example.com').should be_true # teardown
20
+ end
21
+
22
+ it "should delete a webhook by instance" do
23
+ Shirtsio::Status::Webhook.create('http://www.example.com') # seed
24
+ webhooks = Shirtsio::Status::Webhook.list
25
+ webhooks[0].delete.should be_true
26
+ end
27
+ end
28
+ end
Binary file
Binary file
@@ -0,0 +1,7 @@
1
+ module Support
2
+ module Travis
3
+ def self.travis?
4
+ ENV['CI'] && ENV['TRAVIS']
5
+ end
6
+ end
7
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shirtsio
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anthony Smith
@@ -60,11 +60,11 @@ extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
62
  - .gitignore
63
+ - .travis.yml
63
64
  - Gemfile
64
65
  - LICENSE.txt
65
66
  - README.md
66
67
  - Rakefile
67
- - e
68
68
  - lib/shirtsio.rb
69
69
  - lib/shirtsio/api.rb
70
70
  - lib/shirtsio/configuration.rb
@@ -80,8 +80,16 @@ files:
80
80
  - lib/shirtsio/utils.rb
81
81
  - lib/shirtsio/version.rb
82
82
  - shirtsio.gemspec
83
+ - spec/configuration_spec.rb
83
84
  - spec/dsl_spec.rb
85
+ - spec/order_spec.rb
86
+ - spec/product_spec.rb
87
+ - spec/quote_spec.rb
84
88
  - spec/spec_helper.rb
89
+ - spec/status_spec.rb
90
+ - spec/support/ruby.jpg
91
+ - spec/support/ruby.png
92
+ - spec/support/travis.rb
85
93
  homepage: https://github.com/anthonator/shirtsio
86
94
  licenses:
87
95
  - MIT
@@ -107,6 +115,14 @@ signing_key:
107
115
  specification_version: 4
108
116
  summary: shirts.io REST API client library for Ruby
109
117
  test_files:
118
+ - spec/configuration_spec.rb
110
119
  - spec/dsl_spec.rb
120
+ - spec/order_spec.rb
121
+ - spec/product_spec.rb
122
+ - spec/quote_spec.rb
111
123
  - spec/spec_helper.rb
124
+ - spec/status_spec.rb
125
+ - spec/support/ruby.jpg
126
+ - spec/support/ruby.png
127
+ - spec/support/travis.rb
112
128
  has_rdoc:
data/e DELETED
File without changes