platformcraft-filespot 0.1.2 → 0.1.3

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: 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: