assonnato 0.8.1 → 0.8.2

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: 45bb480c92f0ef2dc129abf005043d72ece3b7b3
4
- data.tar.gz: 13b40e099090902ef38a3f8fecd536aceacf2aaa
3
+ metadata.gz: f07b8f32a089af853e46258703e92a5b5845eac3
4
+ data.tar.gz: 7efa4bb28bc5741c65fe03a33909f60e108f9eac
5
5
  SHA512:
6
- metadata.gz: 8f91082e1ee85eb19b151ac0f3e032588dccd53f018dc2838093ee10d65e552d45201867decd0fa4214522c84f2d3d76b71d9df962da5ca5d4c1bdbcb0096f49
7
- data.tar.gz: 245a253c98544b5edc1d347e88a91c9e92842e3547e22d1185d286195b51846ff353e87cdbb7c8d1acb0c8c3b5ca7926752197540ddf3b9d717edb246fb6b536
6
+ metadata.gz: 73bdcf9e7b370f0caffa64ff8e9ad58ad4a8ea0406f460cb25154db8f627fb4da55b0a6e4bdbf8edce7ff0f8834c9f3ba7f4f354231ea24b028cf041f0751ac1
7
+ data.tar.gz: 8314f35194277b4f030f48f968aa5f8de537369a1c195103c39a38f9e2dbe5949530dedac31b45d90461f330970f8b27631bd7a65bff0efb10fd38d43b080a30
@@ -1,23 +1,23 @@
1
- #--
2
- # Copyright (c) 2014 Giovanni Capuano <webmaster@giovannicapuano.net>
3
- #
4
- # Released under the MIT License
5
- # http://opensource.org/licenses/MIT
6
- #++
7
-
8
- require 'uri'
9
- require 'net/http'
10
- require 'json'
11
-
12
- require 'assonnato/assonnato'
13
- require 'assonnato/api_factory'
14
- require 'assonnato/cookie_jar'
15
- require 'assonnato/request'
16
- require 'assonnato/parser'
17
-
18
- require 'assonnato/client'
19
- require 'assonnato/api/user'
20
- require 'assonnato/api/show'
21
- require 'assonnato/api/episode'
22
-
1
+ #--
2
+ # Copyright (c) 2014 Giovanni Capuano <webmaster@giovannicapuano.net>
3
+ #
4
+ # Released under the MIT License
5
+ # http://opensource.org/licenses/MIT
6
+ #++
7
+
8
+ require 'uri'
9
+ require 'net/http'
10
+ require 'json'
11
+
12
+ require 'assonnato/assonnato'
13
+ require 'assonnato/api_factory'
14
+ require 'assonnato/cookie_jar'
15
+ require 'assonnato/request'
16
+ require 'assonnato/parser'
17
+
18
+ require 'assonnato/client'
19
+ require 'assonnato/api/user'
20
+ require 'assonnato/api/show'
21
+ require 'assonnato/api/episode'
22
+
23
23
  require 'assonnato/version'
@@ -1,41 +1,48 @@
1
- #--
2
- # Copyright (c) 2014 Giovanni Capuano <webmaster@giovannicapuano.net>
3
- #
4
- # Released under the MIT License
5
- # http://opensource.org/licenses/MIT
6
- #++
7
-
8
- module Assonnato
9
-
10
- class Episode
11
- include Parser
12
-
13
- def initialize(client)
14
- @client = client
15
- end
16
-
17
- def all(show)
18
- parse @client.get("/api/v1/episodes/#{URI.escape show}")
19
- end
20
-
21
- def get(show, episode)
22
- all(show).select { |ep| ep.episode == episode }
23
- end
24
-
25
- def last(status)
26
- parse @client.get("/api/v1/episodes/last/#{status}")
27
- end
28
-
29
- def search(keyword)
30
- raise NotImplementedError, 'you cannot search episodes'
31
- end
32
-
33
- def edit(name, episode, fields)
34
- path = '/api/v1/episode/edit'
35
- data = { name: name, episode: episode, _csrf: @client.user.csrf_token }.merge fields
36
-
37
- @client.post path, data
38
- end
39
- end
40
-
41
- end
1
+ #--
2
+ # Copyright (c) 2014 Giovanni Capuano <webmaster@giovannicapuano.net>
3
+ #
4
+ # Released under the MIT License
5
+ # http://opensource.org/licenses/MIT
6
+ #++
7
+
8
+ module Assonnato
9
+
10
+ class Episode
11
+ include Parser
12
+
13
+ def initialize(client)
14
+ @client = client
15
+ end
16
+
17
+ def all(show)
18
+ parse @client.get("/api/v1/episodes/#{URI.escape show}")
19
+ end
20
+
21
+ def get(show, episode)
22
+ all(show).select { |ep| ep.episode == episode }
23
+ end
24
+
25
+ def last(status)
26
+ parse @client.get("/api/v1/episodes/last/#{status}")
27
+ end
28
+
29
+ def search(keyword)
30
+ raise NotImplementedError, 'you cannot search episodes'
31
+ end
32
+
33
+ def add(name, episode, fields)
34
+ path = '/api/v1/episode/add'
35
+ data = { name: name, episode: episode, _csrf: @client.user.csrf_token }.merge fields
36
+
37
+ @client.post path, data
38
+ end
39
+
40
+ def edit(name, episode, fields)
41
+ path = '/api/v1/episode/edit'
42
+ data = { name: name, episode: episode, _csrf: @client.user.csrf_token }.merge fields
43
+
44
+ @client.post path, data
45
+ end
46
+ end
47
+
48
+ end
@@ -1,68 +1,68 @@
1
- #--
2
- # Copyright (c) 2014 Giovanni Capuano <webmaster@giovannicapuano.net>
3
- #
4
- # Released under the MIT License
5
- # http://opensource.org/licenses/MIT
6
- #++
7
-
8
- module Assonnato
9
-
10
- class Show
11
- include Parser
12
-
13
- def initialize(client)
14
- @client = client
15
- end
16
-
17
- def all(status = :ongoing, options = {})
18
- filters = ''.tap { |str|
19
- if options.has_key? :fansub
20
- str << by_fansub(options[:fansub])
21
- elsif options.has_key? :user
22
- if options.has_key? :role
23
- str << by_role(options[:user], options[:role])
24
- else
25
- str << by_staff(options[:user])
26
- end
27
- end
28
- }
29
-
30
- parse @client.get("/api/v1/#{filters}/shows/all/#{status}")
31
- end
32
-
33
- def get(show_name)
34
- search(show_name).select { |show| show.name == show_name }
35
- end
36
-
37
- def last!(status)
38
- raise NotImplementedError, 'Show#last is not implemented'
39
- end
40
-
41
- def search(keyword)
42
- parse @client.get("/api/v1/shows/search/#{URI.escape keyword}")
43
- end
44
-
45
- def edit(name, episode, fields)
46
- path = '/api/v1/episode/edit'
47
- data = { name: name, episode: episode, _csrf: @client.user.csrf_token }.merge fields
48
-
49
- @client.post path, data
50
- end
51
-
52
- private
53
- def by_fansub(fansub)
54
- "/fansubs/#{URI.escape fansub}"
55
- end
56
-
57
- private
58
- def by_staff(user)
59
- "/users/#{URI.escape user}"
60
- end
61
-
62
- private
63
- def by_role(user, role)
64
- "/users/#{URI.escape user}/#{role}"
65
- end
66
- end
67
-
68
- end
1
+ #--
2
+ # Copyright (c) 2014 Giovanni Capuano <webmaster@giovannicapuano.net>
3
+ #
4
+ # Released under the MIT License
5
+ # http://opensource.org/licenses/MIT
6
+ #++
7
+
8
+ module Assonnato
9
+
10
+ class Show
11
+ include Parser
12
+
13
+ def initialize(client)
14
+ @client = client
15
+ end
16
+
17
+ def all(status = :ongoing, options = {})
18
+ filters = ''.tap { |str|
19
+ if options.has_key? :fansub
20
+ str << by_fansub(options[:fansub])
21
+ elsif options.has_key? :user
22
+ if options.has_key? :role
23
+ str << by_role(options[:user], options[:role])
24
+ else
25
+ str << by_staff(options[:user])
26
+ end
27
+ end
28
+ }
29
+
30
+ parse @client.get("/api/v1/#{filters}/shows/all/#{status}")
31
+ end
32
+
33
+ def get(show_name)
34
+ search(show_name).select { |show| show.name == show_name }
35
+ end
36
+
37
+ def last!(status)
38
+ raise NotImplementedError, 'Show#last is not implemented'
39
+ end
40
+
41
+ def search(keyword)
42
+ parse @client.get("/api/v1/shows/search/#{URI.escape keyword}")
43
+ end
44
+
45
+ def edit(name, episode, fields)
46
+ path = '/api/v1/episode/edit'
47
+ data = { name: name, episode: episode, _csrf: @client.user.csrf_token }.merge fields
48
+
49
+ @client.post path, data
50
+ end
51
+
52
+ private
53
+ def by_fansub(fansub)
54
+ "/fansubs/#{URI.escape fansub}"
55
+ end
56
+
57
+ private
58
+ def by_staff(user)
59
+ "/users/#{URI.escape user}"
60
+ end
61
+
62
+ private
63
+ def by_role(user, role)
64
+ "/users/#{URI.escape user}/#{role}"
65
+ end
66
+ end
67
+
68
+ end
@@ -1,36 +1,36 @@
1
- #--
2
- # Copyright (c) 2014 Giovanni Capuano <webmaster@giovannicapuano.net>
3
- #
4
- # Released under the MIT License
5
- # http://opensource.org/licenses/MIT
6
- #++
7
-
8
- module Assonnato
9
-
10
- class User
11
- def initialize(client)
12
- @client = client
13
- end
14
-
15
- def login(username, password)
16
- path = '/api/v1/user/login'
17
- data = { username: username, password: password }
18
-
19
- @client.post path, data
20
- end
21
-
22
- def logout
23
- path = '/api/v1/user/logout'
24
- data = { _csrf: @client.user.csrf_token }
25
-
26
- @client.post path, data
27
- end
28
-
29
- def csrf_token
30
- path = '/api/v1/user/csrf_token'
31
-
32
- @client.get(path)['message']
33
- end
34
- end
35
-
1
+ #--
2
+ # Copyright (c) 2014 Giovanni Capuano <webmaster@giovannicapuano.net>
3
+ #
4
+ # Released under the MIT License
5
+ # http://opensource.org/licenses/MIT
6
+ #++
7
+
8
+ module Assonnato
9
+
10
+ class User
11
+ def initialize(client)
12
+ @client = client
13
+ end
14
+
15
+ def login(username, password)
16
+ path = '/api/v1/user/login'
17
+ data = { username: username, password: password }
18
+
19
+ @client.post path, data
20
+ end
21
+
22
+ def logout
23
+ path = '/api/v1/user/logout'
24
+ data = { _csrf: @client.user.csrf_token }
25
+
26
+ @client.post path, data
27
+ end
28
+
29
+ def csrf_token
30
+ path = '/api/v1/user/csrf_token'
31
+
32
+ @client.get(path)['message']
33
+ end
34
+ end
35
+
36
36
  end
@@ -1,30 +1,29 @@
1
- #--
2
- # Copyright (c) 2011 Peter Murach
3
- # Copyright (c) 2014 Giovanni Capuano <webmaster@giovannicapuano.net>
4
- #
5
- # Released under the MIT License
6
- # http://opensource.org/licenses/MIT
7
- #++
8
-
9
- module Assonnato
10
-
11
- class ApiFactory
12
- class << self
13
- def new(klass, options = {})
14
- return create_instance(klass, options) if klass
15
- raise ArgumentError, 'must provide API class to be instantiated'
16
- end
17
-
18
- def create_instance(klass, options)
19
- convert_to_constant(klass.to_s).new options
20
- end
21
-
22
- def convert_to_constant(classes)
23
- classes.split('::').inject(Assonnato) do |constant, klass|
24
- constant.const_get klass
25
- end
26
- end
27
- end
28
- end
29
-
1
+ #--
2
+ # Copyright (c) 2014 Giovanni Capuano <webmaster@giovannicapuano.net>
3
+ #
4
+ # Released under the MIT License
5
+ # http://opensource.org/licenses/MIT
6
+ #++
7
+
8
+ module Assonnato
9
+
10
+ class ApiFactory
11
+ class << self
12
+ def new(klass, options = {})
13
+ return create_instance(klass, options) if klass
14
+ raise ArgumentError, 'must provide API class to be instantiated'
15
+ end
16
+
17
+ def create_instance(klass, options)
18
+ convert_to_constant(klass.to_s).new options
19
+ end
20
+
21
+ def convert_to_constant(classes)
22
+ classes.split('::').inject(Assonnato) do |constant, klass|
23
+ constant.const_get klass
24
+ end
25
+ end
26
+ end
27
+ end
28
+
30
29
  end
@@ -1,26 +1,25 @@
1
- #--
2
- # Copyright (c) 2011 Peter Murach
3
- # Copyright (c) 2014 Giovanni Capuano <webmaster@giovannicapuano.net>
4
- #
5
- # Released under the MIT License
6
- # http://opensource.org/licenses/MIT
7
- #++
8
-
9
- module Assonnato
10
-
11
- class << self
12
- def new(host = 'pigro.omnivium.it', port = 80, ssl = false)
13
- Client.new host, port, ssl
14
- end
15
-
16
- def method_missing(method, *args, &block)
17
- return super unless new.respond_to?(method)
18
- new.send method, *args, &block
19
- end
20
-
21
- def respond_to?(method, include_private = false)
22
- new.respond_to?(method, include_private) || super(method, include_private)
23
- end
24
- end
25
-
1
+ #--
2
+ # Copyright (c) 2014 Giovanni Capuano <webmaster@giovannicapuano.net>
3
+ #
4
+ # Released under the MIT License
5
+ # http://opensource.org/licenses/MIT
6
+ #++
7
+
8
+ module Assonnato
9
+
10
+ class << self
11
+ def new(host = 'pigro.omnivium.it', port = 80, ssl = false)
12
+ Client.new host, port, ssl
13
+ end
14
+
15
+ def method_missing(method, *args, &block)
16
+ return super unless new.respond_to?(method)
17
+ new.send method, *args, &block
18
+ end
19
+
20
+ def respond_to?(method, include_private = false)
21
+ new.respond_to?(method, include_private) || super(method, include_private)
22
+ end
23
+ end
24
+
26
25
  end
@@ -1,47 +1,47 @@
1
- #--
2
- # Copyright (c) 2014 Giovanni Capuano <webmaster@giovannicapuano.net>
3
- #
4
- # Released under the MIT License
5
- # http://opensource.org/licenses/MIT
6
- #++
7
-
8
- module Assonnato
9
-
10
- class Client
11
- include Request
12
-
13
- attr_accessor :host, :port
14
- attr_reader :cookies
15
-
16
- def initialize(host = 'pigro.omnivium.it', port = 80, ssl = false)
17
- @host = host
18
- @port = port
19
- @ssl = ssl
20
- @cookies = CookieJar.new
21
- end
22
-
23
- def self.namespace(*names)
24
- options = names.last.is_a?(Hash) ? names.pop : {}
25
- names = names.map(&:to_sym)
26
- name = names.pop
27
- return if public_method_defined?(name)
28
-
29
- converted = options.fetch(:full_name, name).to_s
30
- converted = converted.split('_').map(&:capitalize).join
31
- class_name = ''
32
- class_name = "#{self.name.split('::').last}::" unless options.fetch(:root, false)
33
- class_name += converted
34
-
35
- define_method(name) do
36
- ApiFactory.new class_name, self
37
- end
38
-
39
- self
40
- end
41
-
42
- namespace :user, root: true
43
- namespace :show, root: true
44
- namespace :episode, root: true
45
- end
46
-
1
+ #--
2
+ # Copyright (c) 2014 Giovanni Capuano <webmaster@giovannicapuano.net>
3
+ #
4
+ # Released under the MIT License
5
+ # http://opensource.org/licenses/MIT
6
+ #++
7
+
8
+ module Assonnato
9
+
10
+ class Client
11
+ include Request
12
+
13
+ attr_accessor :host, :port
14
+ attr_reader :cookies
15
+
16
+ def initialize(host = 'pigro.omnivium.it', port = 80, ssl = false)
17
+ @host = host
18
+ @port = port
19
+ @ssl = ssl
20
+ @cookies = CookieJar.new
21
+ end
22
+
23
+ def self.namespace(*names)
24
+ options = names.last.is_a?(Hash) ? names.pop : {}
25
+ names = names.map(&:to_sym)
26
+ name = names.pop
27
+ return if public_method_defined?(name)
28
+
29
+ converted = options.fetch(:full_name, name).to_s
30
+ converted = converted.split('_').map(&:capitalize).join
31
+ class_name = ''
32
+ class_name = "#{self.name.split('::').last}::" unless options.fetch(:root, false)
33
+ class_name += converted
34
+
35
+ define_method(name) do
36
+ ApiFactory.new class_name, self
37
+ end
38
+
39
+ self
40
+ end
41
+
42
+ namespace :user, root: true
43
+ namespace :show, root: true
44
+ namespace :episode, root: true
45
+ end
46
+
47
47
  end
@@ -1,31 +1,31 @@
1
- #--
2
- # Copyright (c) 2014 Giovanni Capuano <webmaster@giovannicapuano.net>
3
- #
4
- # Released under the MIT License
5
- # http://opensource.org/licenses/MIT
6
- #++
7
-
8
- module Assonnato
9
-
10
- class CookieJar
11
- def initialize
12
- @cookies = ''
13
- end
14
-
15
- def set(cookie)
16
- @cookies = cookie
17
- end
18
-
19
- def get
20
- @cookies
21
- end
22
-
23
- def <<(cookie)
24
- @cookies << "; #{cookie}"
25
- end
26
-
27
- alias_method :append, :<<
28
- alias_method :to_s, :get
29
- end
30
-
1
+ #--
2
+ # Copyright (c) 2014 Giovanni Capuano <webmaster@giovannicapuano.net>
3
+ #
4
+ # Released under the MIT License
5
+ # http://opensource.org/licenses/MIT
6
+ #++
7
+
8
+ module Assonnato
9
+
10
+ class CookieJar
11
+ def initialize
12
+ @cookies = ''
13
+ end
14
+
15
+ def set(cookie)
16
+ @cookies = cookie
17
+ end
18
+
19
+ def get
20
+ @cookies
21
+ end
22
+
23
+ def <<(cookie)
24
+ @cookies << "; #{cookie}"
25
+ end
26
+
27
+ alias_method :append, :<<
28
+ alias_method :to_s, :get
29
+ end
30
+
31
31
  end
@@ -1,22 +1,22 @@
1
- #--
2
- # Copyright (c) 2014 Giovanni Capuano <webmaster@giovannicapuano.net>
3
- #
4
- # Released under the MIT License
5
- # http://opensource.org/licenses/MIT
6
- #++
7
-
8
- module Assonnato
9
-
10
- module Parser
11
- def parse(what)
12
- [].tap { |res|
13
- [what].flatten.each { |element|
14
- keys = element.keys.map { |k| k.to_sym }
15
- values = element.values
16
- res << Struct.new(*keys).new(*values)
17
- }
18
- }
19
- end
20
- end
21
-
1
+ #--
2
+ # Copyright (c) 2014 Giovanni Capuano <webmaster@giovannicapuano.net>
3
+ #
4
+ # Released under the MIT License
5
+ # http://opensource.org/licenses/MIT
6
+ #++
7
+
8
+ module Assonnato
9
+
10
+ module Parser
11
+ def parse(what)
12
+ [].tap { |res|
13
+ [what].flatten.each { |element|
14
+ keys = element.keys.map { |k| k.to_sym }
15
+ values = element.values
16
+ res << Struct.new(*keys).new(*values)
17
+ }
18
+ }
19
+ end
20
+ end
21
+
22
22
  end
@@ -1,41 +1,41 @@
1
- #--
2
- # Copyright (c) 2014 Giovanni Capuano <webmaster@giovannicapuano.net>
3
- #
4
- # Released under the MIT License
5
- # http://opensource.org/licenses/MIT
6
- #++
7
-
8
- module Assonnato
9
-
10
- module Request
11
- def get(path, headers = {})
12
- request :get, path, {}, headers
13
- end
14
-
15
- def post(path, data = {}, headers = {})
16
- request :post, path, data, headers
17
- end
18
-
19
- private
20
- def request(method, path, data, headers)
21
- headers['Cookie'] = @cookies.get
22
-
23
- Net::HTTP.start(@host, @port, use_ssl: @ssl) do |http|
24
- resp = case method.to_sym
25
- when :get
26
- http.get path, headers
27
- when :post
28
- data = URI.encode_www_form data
29
- headers['Content-Type'] = 'application/x-www-form-urlencoded'
30
-
31
- http.post path, data, headers
32
- else raise ArgumentError, 'format not recognized'
33
- end
34
-
35
- @cookies << resp.response['set-cookie'].split('; ')[0] rescue @cookies.get
36
- JSON.parse resp.body
37
- end
38
- end
39
- end
40
-
1
+ #--
2
+ # Copyright (c) 2014 Giovanni Capuano <webmaster@giovannicapuano.net>
3
+ #
4
+ # Released under the MIT License
5
+ # http://opensource.org/licenses/MIT
6
+ #++
7
+
8
+ module Assonnato
9
+
10
+ module Request
11
+ def get(path, headers = {})
12
+ request :get, path, {}, headers
13
+ end
14
+
15
+ def post(path, data = {}, headers = {})
16
+ request :post, path, data, headers
17
+ end
18
+
19
+ private
20
+ def request(method, path, data, headers)
21
+ headers['Cookie'] = @cookies.get
22
+
23
+ Net::HTTP.start(@host, @port, use_ssl: @ssl) do |http|
24
+ resp = case method.to_sym
25
+ when :get
26
+ http.get path, headers
27
+ when :post
28
+ data = URI.encode_www_form data
29
+ headers['Content-Type'] = 'application/x-www-form-urlencoded'
30
+
31
+ http.post path, data, headers
32
+ else raise ArgumentError, 'format not recognized'
33
+ end
34
+
35
+ @cookies << resp.response['set-cookie'].split('; ')[0] rescue @cookies.get
36
+ JSON.parse resp.body
37
+ end
38
+ end
39
+ end
40
+
41
41
  end
@@ -7,6 +7,6 @@
7
7
 
8
8
  module Assonnato
9
9
 
10
- VERSION = '0.8.1'
10
+ VERSION = '0.8.2'
11
11
 
12
- end
12
+ end
@@ -1,35 +1,35 @@
1
- #! /usr/bin/env ruby
2
- require 'assonnato'
3
-
4
- describe Assonnato::Episode do
5
- let(:client) { Assonnato::Episode.new Assonnato.new('pigro.omnivium.it') }
6
-
7
- it 'returns all the episodes of given show' do
8
- res = client.all 'Strike the Blood'
9
- res.should be_kind_of(Array)
10
- res.should_not be_empty
11
- res.first.should be_kind_of(Struct)
12
- res.first.episode.should eql(1)
13
- end
14
-
15
- it 'can\'t search episodes' do
16
- expect {
17
- client.search 'le_too_derp'
18
- }.to raise_error(NotImplementedError)
19
- end
20
-
21
- it 'returns a specific episode of given show' do
22
- res = client.get 'Strike the Blood', 1
23
- res.should be_kind_of(Array)
24
- res.should_not be_empty
25
- res.first.should be_kind_of(Struct)
26
- res.first.episode.should eql(1)
27
- end
28
-
29
- it 'returns the last episode of each show with given status' do
30
- res = client.last :ongoing
31
- res.should be_kind_of(Array)
32
- res.should_not be_empty
33
- res.first.should be_kind_of(Struct)
34
- end
1
+ #! /usr/bin/env ruby
2
+ require 'assonnato'
3
+
4
+ describe Assonnato::Episode do
5
+ let(:client) { Assonnato::Episode.new Assonnato.new('pigro.omnivium.it') }
6
+
7
+ it 'returns all the episodes of given show' do
8
+ res = client.all 'Strike the Blood'
9
+ res.should be_kind_of(Array)
10
+ res.should_not be_empty
11
+ res.first.should be_kind_of(Struct)
12
+ res.first.episode.should eql(1)
13
+ end
14
+
15
+ it 'can\'t search episodes' do
16
+ expect {
17
+ client.search 'le_too_derp'
18
+ }.to raise_error(NotImplementedError)
19
+ end
20
+
21
+ it 'returns a specific episode of given show' do
22
+ res = client.get 'Strike the Blood', 1
23
+ res.should be_kind_of(Array)
24
+ res.should_not be_empty
25
+ res.first.should be_kind_of(Struct)
26
+ res.first.episode.should eql(1)
27
+ end
28
+
29
+ it 'returns the last episode of each show with given status' do
30
+ res = client.last :ongoing
31
+ res.should be_kind_of(Array)
32
+ res.should_not be_empty
33
+ res.first.should be_kind_of(Struct)
34
+ end
35
35
  end
@@ -1,51 +1,51 @@
1
- #! /usr/bin/env ruby
2
- require 'assonnato'
3
-
4
- describe Assonnato::Show do
5
- let(:client) { Assonnato::Show.new Assonnato.new('pigro.omnivium.it') }
6
-
7
- it 'returns all the on-going shows' do
8
- res = client.all :ongoing
9
- res.should be_kind_of(Array)
10
- res.should_not be_empty
11
- res.first.should be_kind_of(Struct)
12
- res.first.status.should eql('ongoing')
13
- end
14
-
15
- it 'search all the shows which name is similar to given keyword' do
16
- res = client.search 'strike'
17
- res.should be_kind_of(Array)
18
- res.should_not be_empty
19
- res.first.should be_kind_of(Struct)
20
- res.first.name.should eql('Strike the Blood')
21
- end
22
-
23
- it 'returns all the on-going shows of given fansub' do
24
- res = client.all :ongoing, fansub: 'Omnivium'
25
- res.should be_kind_of(Array)
26
- res.should_not be_empty
27
- res.first.should be_kind_of(Struct)
28
- res.first.fansub.should eql('Omnivium')
29
- end
30
-
31
- it 'returns all the on-going shows in wich given user has worked' do
32
- res = client.all :ongoing, user: 'Roxas Shadow'
33
- res.should be_kind_of(Array)
34
- res.should_not be_empty
35
- end
36
-
37
- it 'returns all the on-going shows in wich given user has worked in given role' do
38
- res = client.all :ongoing, { user: 'Roxas Shadow', role: :translator }
39
- res.should be_kind_of(Array)
40
- res.should_not be_empty
41
- res.first.translator.should eql('Roxas Shadow')
42
- end
43
-
44
- it 'returns all the informations of given show' do
45
- res = client.get 'Strike the Blood'
46
- res.should be_kind_of(Array)
47
- res.should_not be_empty
48
- res.first.should be_kind_of(Struct)
49
- res.first.id.should eql(1)
50
- end
51
- end
1
+ #! /usr/bin/env ruby
2
+ require 'assonnato'
3
+
4
+ describe Assonnato::Show do
5
+ let(:client) { Assonnato::Show.new Assonnato.new('pigro.omnivium.it') }
6
+
7
+ it 'returns all the on-going shows' do
8
+ res = client.all :ongoing
9
+ res.should be_kind_of(Array)
10
+ res.should_not be_empty
11
+ res.first.should be_kind_of(Struct)
12
+ res.first.status.should eql('ongoing')
13
+ end
14
+
15
+ it 'search all the shows which name is similar to given keyword' do
16
+ res = client.search 'Strike'
17
+ res.should be_kind_of(Array)
18
+ res.should_not be_empty
19
+ res.first.should be_kind_of(Struct)
20
+ res.first.name.should eql('Strike the Blood')
21
+ end
22
+
23
+ it 'returns all the on-going shows of given fansub' do
24
+ res = client.all :ongoing, fansub: 'Omnivium'
25
+ res.should be_kind_of(Array)
26
+ res.should_not be_empty
27
+ res.first.should be_kind_of(Struct)
28
+ res.first.fansub.should eql('Omnivium')
29
+ end
30
+
31
+ it 'returns all the on-going shows in wich given user has worked' do
32
+ res = client.all :ongoing, user: 'Roxas Shadow'
33
+ res.should be_kind_of(Array)
34
+ res.should_not be_empty
35
+ end
36
+
37
+ it 'returns all the on-going shows in wich given user has worked in given role' do
38
+ res = client.all :ongoing, { user: 'Roxas Shadow', role: :translator }
39
+ res.should be_kind_of(Array)
40
+ res.should_not be_empty
41
+ res.first.translator.should eql('Roxas Shadow')
42
+ end
43
+
44
+ it 'returns all the informations of given show' do
45
+ res = client.get 'Strike the Blood'
46
+ res.should be_kind_of(Array)
47
+ res.should_not be_empty
48
+ res.first.should be_kind_of(Struct)
49
+ res.first.id.should eql(1)
50
+ end
51
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: assonnato
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Giovanni Capuano
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-18 00:00:00.000000000 Z
11
+ date: 2016-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -44,6 +44,7 @@ executables: []
44
44
  extensions: []
45
45
  extra_rdoc_files: []
46
46
  files:
47
+ - lib/assonnato.rb
47
48
  - lib/assonnato/api/episode.rb
48
49
  - lib/assonnato/api/show.rb
49
50
  - lib/assonnato/api/user.rb
@@ -54,7 +55,6 @@ files:
54
55
  - lib/assonnato/parser.rb
55
56
  - lib/assonnato/request.rb
56
57
  - lib/assonnato/version.rb
57
- - lib/assonnato.rb
58
58
  - spec/episode_spec.rb
59
59
  - spec/show_spec.rb
60
60
  homepage: http://www.giovannicapuano.net
@@ -77,10 +77,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
77
77
  version: '0'
78
78
  requirements: []
79
79
  rubyforge_project:
80
- rubygems_version: 2.0.3
80
+ rubygems_version: 2.6.1
81
81
  signing_key:
82
82
  specification_version: 4
83
83
  summary: RESTful gem for wrapping Pigro's APIs
84
84
  test_files:
85
85
  - spec/episode_spec.rb
86
86
  - spec/show_spec.rb
87
+ has_rdoc: