shirtsio 1.0.0 → 1.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 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