platformcraft-filespot 0.1.2 → 0.1.3

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: d6bf9e9f33e476a6f92d4895ac4243944642b042
4
- data.tar.gz: ce9672030d01ecda8e969836df3bd163f773f26a
3
+ metadata.gz: 9bb3562213d02635405c3b26c8cd37e2dc4289b5
4
+ data.tar.gz: ae843536033964ca2e757bb029e4d9b92c4cabf6
5
5
  SHA512:
6
- metadata.gz: ea5192f38a95b6119cbee4584d1380e6fb5e8349dae2ff23843cd196f10129589dc4f23787e0cf25f4d1cd34d5d11114d458ef8e12181e06038aa17972f2bcc5
7
- data.tar.gz: 314388a79535f18353cd9e817daff0b32b39d38c0731bf20e8a69efe3dfe229beafb1ff680f70aa5c0c62d763ac99c4b188116291c79c4d0166d535b2d026eff
6
+ metadata.gz: 906ef21911f89f986f7cb2854463369e1e5ed532bfed47ae598dfc238834252f8e6cb84e223c6558236e6bb6ec3a248622ce311871eac4f88be5b740c51009b6
7
+ data.tar.gz: c340ee0cb7fbfab8b0c96993bfd0ac28a43ce317685af5127c92acf6cb4bee422431a9fdbeb3100845a9c752142e76d7e65514f2b9f359004651806afe2b4d2f
@@ -0,0 +1,5 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9
4
+ - 2.1
5
+ - 2.2
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ [![Build Status](https://travis-ci.org/droff/platformcraft-filespot.svg?branch=master)](https://travis-ci.org/droff/platformcraft-filespot)
2
+
1
3
  Filespot API Ruby Gem
2
4
  ====================
3
5
  A Ruby wrapper for the Filespot API
@@ -0,0 +1,26 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'rspec/core/rake_task'
5
+ RSpec::Core::RakeTask.new(:spec)
6
+
7
+ task default: :spec
8
+
9
+ namespace :doc do
10
+ begin
11
+ require 'yard'
12
+ rescue LoadError
13
+ else
14
+ YARD::Rake::YardocTask.new do |task|
15
+ task.files = ['README.md', 'lib/**/*.rb']
16
+ task.options = [
17
+ '--protected',
18
+ '--output-dir', 'doc/yard',
19
+ '--tag', 'format:Supported formats',
20
+ '--tag', 'authenticated:Requires Authentication',
21
+ '--tag', 'rate_limited:Rate Limited',
22
+ '--markup', 'markdown',
23
+ ]
24
+ end
25
+ end
26
+ end
@@ -4,7 +4,7 @@ require 'base64'
4
4
  module Filespot
5
5
  class Digest
6
6
  def self.hmac(http_method, uri)
7
- data = "#{http_method.upcase}+#{URI.decode(uri).gsub('http://', '')}"
7
+ data = "#{http_method.upcase}+#{URI.decode(uri).gsub(/\Ahttps?:\/\//, '')}"
8
8
  OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), Filespot.apikey, data)
9
9
  end
10
10
  end
@@ -5,22 +5,21 @@ module Filespot
5
5
  attr_reader :code, :status, :data
6
6
 
7
7
  def initialize(response)
8
+ return error if response.status == 500
9
+
10
+ @data = JSON.parse(response.body)
8
11
  if response.status == 200
9
- json_data = JSON.parse(response.body)
10
- @code = json_data.delete('code').to_i
11
- @status = json_data.delete('status')
12
- @data = json_data
13
- else
14
- return_error
12
+ @code = @data.delete('code').to_i
13
+ @status = @data.delete('status')
15
14
  end
15
+ error(response.status) unless @status
16
16
  end
17
17
 
18
18
  private
19
19
 
20
- def return_error
21
- @code = 500
20
+ def error(code=500)
21
+ @code = code
22
22
  @status = 'error'
23
- @data = nil
24
23
  end
25
24
  end
26
25
  end
@@ -1,3 +1,3 @@
1
1
  module Filespot
2
- VERSION = '0.1.2'.freeze
2
+ VERSION = '0.1.3'.freeze
3
3
  end
@@ -8,6 +8,7 @@ Gem::Specification.new do |gem|
8
8
  gem.summary = "http://doc.platformcraft.ru/filespot/api/"
9
9
  gem.homepage = ""
10
10
 
11
+ gem.add_development_dependency 'rake'
11
12
  gem.add_development_dependency 'rspec'
12
13
  gem.add_development_dependency 'webmock'
13
14
  gem.add_dependency 'json'
@@ -1,5 +1,3 @@
1
- require 'spec_helper'
2
-
3
1
  describe Filespot::Download do
4
2
  describe 'Download' do
5
3
  context '#get_download_task' do
@@ -1,12 +1,16 @@
1
- require 'spec_helper'
2
-
3
1
  describe Filespot::Digest do
4
- context 'fake data' do
5
- subject { Filespot::Digest.hmac('GET', 'api.platformcraft.ru/1/objects?apiuserid=test&timestamp=1450342665') }
2
+ context '#hmac' do
3
+ let (:apikey) { 'APIUserKey' }
4
+ let (:url) { 'api.platformcraft.ru/1/objects?apiuserid=test&timestamp=1450342665' }
5
+ let (:hash) { OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), apikey, "GET+#{url}") }
6
+
7
+ subject { described_class.hmac('GET', url) }
8
+
9
+
10
+ it 'evaluate correct' do
11
+ allow(Filespot).to receive(:apikey).and_return(apikey)
6
12
 
7
- it '.hmac' do
8
- allow(Filespot).to receive(:apikey) { "APIUserKey" }
9
- expect(subject).to eq '46c5500379d2c09c6f8972c7fd79c27fd7ebf0dd0ab47833a034fd613a4f4d93'
13
+ expect(subject).to eq hash
10
14
  end
11
15
  end
12
16
  end
@@ -1,5 +1,3 @@
1
- require 'spec_helper'
2
-
3
1
  describe Filespot::Response do
4
2
  context 'errors' do
5
3
  let(:response) { double('response') }
@@ -1,5 +1,7 @@
1
1
  require 'webmock/rspec'
2
2
  require 'filespot'
3
+ require 'openssl'
4
+ require 'base64'
3
5
 
4
6
  RSpec.configure do |config|
5
7
  config.expect_with :rspec do |expectations|
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: platformcraft-filespot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - droff
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-20 00:00:00.000000000 Z
11
+ date: 2016-06-22 00:00:00.000000000 Z
12
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: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: rspec
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -74,8 +88,10 @@ extra_rdoc_files: []
74
88
  files:
75
89
  - ".gitignore"
76
90
  - ".rspec"
91
+ - ".travis.yml"
77
92
  - Gemfile
78
93
  - README.md
94
+ - Rakefile
79
95
  - lib/filespot.rb
80
96
  - lib/filespot/client.rb
81
97
  - lib/filespot/client/download.rb
@@ -121,3 +137,4 @@ signing_key:
121
137
  specification_version: 4
122
138
  summary: http://doc.platformcraft.ru/filespot/api/
123
139
  test_files: []
140
+ has_rdoc: