lol_static 0.0.7 → 0.0.8

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: debfeb6efa88cc7fd0ce0959fb5be914ab7a595b
4
- data.tar.gz: d861a73c7f8ed565e22f5b6c278266f0fad1aa03
3
+ metadata.gz: e2590a57c64958ce913e12f182f8800f6d822ceb
4
+ data.tar.gz: 4e730334954c16b91bbd401f4da4eab77bb3ddad
5
5
  SHA512:
6
- metadata.gz: 54e4c9229cab511274227938f5702f3b3e42e9121a657ae4a1b4eed311b63b1875428acd93ba947754df70c59aadca8c7fab7c0f6dd58b38b229290499b0cf3c
7
- data.tar.gz: e5c9cae4bbfab3ea5d5d03d2f099853ab9b5a33e42d1c2e789524749f3b72518eb3d6f0392aaeaa2a3b06174dea36e25cbd4a892a76f18d0f88c4e770a69ae44
6
+ metadata.gz: f5ba1d608a978d4bf2608e4641b3703b1ef064315960960747ee6d6b4dd9b254ca344ec1591c2a9052094e6250882c0f3e34be23a3db35c28f2d6ce19f3f4fed
7
+ data.tar.gz: 6102a639057a0a3fb0cc6d5e17ea1088dcd57795f4172246812a1a610095e423c02f1cc57c20ff7444830b8362a6a3489406369cc626a4ed78bb810e294b2df5
data/lib/lol_static.rb CHANGED
@@ -1,24 +1,6 @@
1
1
  require 'lol_static/version'
2
- require 'lol_static/item'
3
- require 'lol_static/spell'
4
- require 'lol_static/realm'
5
- require 'lol_static/champion'
6
-
2
+ require 'lol_static/client'
7
3
 
8
4
  module LolStatic
9
- class << self
10
-
11
- def item(id)
12
- Item.new(id)
13
- end
14
-
15
- def spell(id)
16
- Spell.new(id)
17
- end
18
-
19
- def champion(id)
20
- Champion.new(id)
21
- end
22
5
 
23
- end
24
6
  end
@@ -0,0 +1,26 @@
1
+ require 'lol_static/realm'
2
+ require 'lol_static/item'
3
+ require 'lol_static/spell'
4
+ require 'lol_static/champion'
5
+
6
+ module LolStatic
7
+ class Client
8
+
9
+ def initialize
10
+ @realm = Realm.new
11
+ end
12
+
13
+ def item(id)
14
+ Item.new(id, @realm)
15
+ end
16
+
17
+ def spell(id)
18
+ Spell.new(id, @realm)
19
+ end
20
+
21
+ def champion(id)
22
+ Champion.new(id, @realm)
23
+ end
24
+
25
+ end
26
+ end
@@ -1,26 +1,20 @@
1
1
  require 'open-uri'
2
- require 'lol_static/config'
3
2
 
4
3
  module LolStatic
5
4
  class Endpoint
6
5
 
7
- def self.api_version
8
- LolStatic::Config.api_version(key)
9
- end
10
-
11
- def initialize(id)
6
+ def initialize(id, realm)
12
7
  @id = id
8
+ @realm = realm
13
9
  end
14
10
 
15
11
  def image_url
16
- "#{LolStatic::Config.base_uri}/#{self.class.api_version}/img/#{self.class.key}/#{@id}.png"
12
+ "#{@realm.base_uri}/#{api_version}/img/#{self.class.key}/#{@id}.png"
17
13
  end
18
14
 
19
15
  def download(path)
20
- open(image_url) do |image|
21
- File.open(path, 'wb') do |f|
22
- f.write(image.read)
23
- end
16
+ File.open(path, 'wb') do |f|
17
+ f.write(read)
24
18
  end
25
19
  rescue OpenURI::HTTPError
26
20
  false
@@ -28,5 +22,15 @@ module LolStatic
28
22
  true
29
23
  end
30
24
 
25
+ def read
26
+ open(image_url) do |image|
27
+ image.read
28
+ end
29
+ end
30
+
31
+ def api_version
32
+ @realm.api_version(self.class.key)
33
+ end
34
+
31
35
  end
32
36
  end
@@ -3,6 +3,10 @@ require 'httparty'
3
3
  module LolStatic
4
4
  class Realm
5
5
 
6
+ def initialize
7
+ @mutex = Mutex.new
8
+ end
9
+
6
10
  def base_uri
7
11
  realm_data['cdn']
8
12
  end
@@ -14,7 +18,9 @@ module LolStatic
14
18
  private
15
19
 
16
20
  def realm_data
17
- @realm_data ||= HTTParty.get('http://ddragon.leagueoflegends.com/realms/euw.json').parsed_response
21
+ @mutex.synchronize do
22
+ @realm_data ||= HTTParty.get('http://ddragon.leagueoflegends.com/realms/euw.json').parsed_response
23
+ end
18
24
  end
19
25
 
20
26
  end
@@ -1,3 +1,3 @@
1
1
  module LolStatic
2
- VERSION = '0.0.7'
2
+ VERSION = '0.0.8'
3
3
  end
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ require 'lol_static/client'
4
+
5
+ describe LolStatic::Client, vcr: { cassette_name: 'realm' } do
6
+
7
+ let(:client) { LolStatic::Client.new }
8
+
9
+ describe '#item' do
10
+ it 'does not raise error' do
11
+ expect { client.item(1) }.to_not raise_error
12
+ end
13
+ end
14
+ end
data/spec/spec_helper.rb CHANGED
@@ -2,11 +2,8 @@ require 'vcr'
2
2
 
3
3
  ROOT_DIR = File.dirname(File.dirname(__FILE__))
4
4
 
5
- RSpec.configure do |c|
6
- c.extend VCR::RSpec::Macros
7
- end
8
-
9
5
  VCR.configure do |c|
10
6
  c.cassette_library_dir = File.join(ROOT_DIR, 'spec', 'fixtures')
11
7
  c.hook_into :webmock # or :fakeweb
8
+ c.configure_rspec_metadata!
12
9
  end
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ require 'lol_static/champion'
4
+
5
+ describe LolStatic::Champion do
6
+
7
+ describe '.key' do
8
+ it 'returns champion' do
9
+ expect(LolStatic::Champion.key).to eq('champion')
10
+ end
11
+ end
12
+
13
+ end
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+
3
+ require 'lol_static/endpoint'
4
+
5
+ class ConcreteEndpoint < LolStatic::Endpoint
6
+
7
+ def self.key
8
+ 'key'
9
+ end
10
+
11
+ end
12
+
13
+ describe LolStatic::Endpoint do
14
+
15
+ let(:id) { 1 }
16
+ let(:realm) { double('realm', api_version: '4.4.3', base_uri: 'http://ddragon.leagueoflegends.com/cdn') }
17
+
18
+ let(:endpoint) { ConcreteEndpoint.new(id, realm) }
19
+
20
+ describe '#api_version' do
21
+ it 'returns api version' do
22
+ expect(endpoint.api_version).to eq('4.4.3')
23
+ end
24
+ end
25
+
26
+ describe '#image_url' do
27
+ it 'returns image url' do
28
+ expect(endpoint.image_url).to eq("http://ddragon.leagueoflegends.com/cdn/4.4.3/img/key/#{id}.png")
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ require 'lol_static/item'
4
+
5
+ describe LolStatic::Item do
6
+
7
+ describe '.key' do
8
+ it 'returns item' do
9
+ expect(LolStatic::Item.key).to eq('item')
10
+ end
11
+ end
12
+
13
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ require 'lol_static/realm'
4
+
5
+ describe LolStatic::Realm, vcr: { cassette_name: 'realm' } do
6
+
7
+ describe '#base_uri' do
8
+ it 'returns correct uri' do
9
+ realm = LolStatic::Realm.new
10
+ expect(realm.base_uri).to eq('http://ddragon.leagueoflegends.com/cdn')
11
+ end
12
+ end
13
+
14
+ describe '#api_version' do
15
+ it 'returns correct version for item' do
16
+ realm = LolStatic::Realm.new
17
+ expect(realm.api_version('item')).to eq('4.4.3')
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ require 'lol_static/spell'
4
+
5
+ describe LolStatic::Spell do
6
+
7
+ describe '.key' do
8
+ it 'returns spell' do
9
+ expect(LolStatic::Spell.key).to eq('spell')
10
+ end
11
+ end
12
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lol_static
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cameron Martin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-22 00:00:00.000000000 Z
11
+ date: 2014-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -108,7 +108,7 @@ files:
108
108
  - Rakefile
109
109
  - lib/lol_static.rb
110
110
  - lib/lol_static/champion.rb
111
- - lib/lol_static/config.rb
111
+ - lib/lol_static/client.rb
112
112
  - lib/lol_static/endpoint.rb
113
113
  - lib/lol_static/item.rb
114
114
  - lib/lol_static/realm.rb
@@ -116,11 +116,13 @@ files:
116
116
  - lib/lol_static/version.rb
117
117
  - lol_static.gemspec
118
118
  - spec/fixtures/realm.yml
119
- - spec/lol_static/champion_spec.rb
120
- - spec/lol_static/item_spec.rb
121
- - spec/lol_static/realm_spec.rb
122
- - spec/lol_static/spell_spec.rb
119
+ - spec/integration/client_spec.rb
123
120
  - spec/spec_helper.rb
121
+ - spec/unit/champion_spec.rb
122
+ - spec/unit/endpoint_spec.rb
123
+ - spec/unit/item_spec.rb
124
+ - spec/unit/realm_spec.rb
125
+ - spec/unit/spell_spec.rb
124
126
  homepage: ''
125
127
  licenses:
126
128
  - MIT
@@ -147,9 +149,11 @@ specification_version: 4
147
149
  summary: Fetches static content from the league of legends CDN
148
150
  test_files:
149
151
  - spec/fixtures/realm.yml
150
- - spec/lol_static/champion_spec.rb
151
- - spec/lol_static/item_spec.rb
152
- - spec/lol_static/realm_spec.rb
153
- - spec/lol_static/spell_spec.rb
152
+ - spec/integration/client_spec.rb
154
153
  - spec/spec_helper.rb
154
+ - spec/unit/champion_spec.rb
155
+ - spec/unit/endpoint_spec.rb
156
+ - spec/unit/item_spec.rb
157
+ - spec/unit/realm_spec.rb
158
+ - spec/unit/spell_spec.rb
155
159
  has_rdoc:
@@ -1,21 +0,0 @@
1
- module LolStatic
2
- Config = Object.new.tap do |object|
3
- class << object
4
-
5
- def api_version(*args)
6
- realm.api_version(*args)
7
- end
8
-
9
- def base_uri
10
- realm.base_uri
11
- end
12
-
13
- private
14
-
15
- def realm
16
- @realm ||= Realm.new
17
- end
18
-
19
- end
20
- end
21
- end
@@ -1,24 +0,0 @@
1
- require 'spec_helper'
2
-
3
- require 'lol_static/champion'
4
-
5
- describe LolStatic::Champion do
6
-
7
- use_vcr_cassette 'realm'
8
-
9
- let(:id) { 'Champion' }
10
-
11
- let(:spell) { LolStatic::Champion.new(id) }
12
-
13
- describe '.api_version' do
14
- it 'returns api version' do
15
- expect(LolStatic::Champion.api_version).to eq('4.4.3')
16
- end
17
- end
18
-
19
- describe '#image_url' do
20
- it 'returns image url' do
21
- expect(spell.image_url).to eq("http://ddragon.leagueoflegends.com/cdn/4.4.3/img/champion/#{id}.png")
22
- end
23
- end
24
- end
@@ -1,24 +0,0 @@
1
- require 'spec_helper'
2
-
3
- require 'lol_static/item'
4
-
5
- describe LolStatic::Item do
6
-
7
- use_vcr_cassette 'realm'
8
-
9
- let(:id) { 1 }
10
- let(:item) { LolStatic::Item.new(id) }
11
-
12
- describe '.api_version' do
13
- it 'returns api version' do
14
- expect(LolStatic::Item.api_version).to eq('4.4.3')
15
- end
16
- end
17
-
18
- describe '#image_url' do
19
- it 'returns image url' do
20
- item = LolStatic::Item.new(1)
21
- expect(item.image_url).to eq("http://ddragon.leagueoflegends.com/cdn/4.4.3/img/item/#{id}.png")
22
- end
23
- end
24
- end
@@ -1,23 +0,0 @@
1
- require 'spec_helper'
2
-
3
- require 'lol_static/realm'
4
-
5
- describe LolStatic::Realm do
6
- describe '#base_uri' do
7
- it 'returns correct uri' do
8
- VCR.use_cassette('realm') do
9
- realm = LolStatic::Realm.new
10
- expect(realm.base_uri).to eq('http://ddragon.leagueoflegends.com/cdn')
11
- end
12
- end
13
- end
14
-
15
- describe '#api_version' do
16
- it 'returns correct version for item' do
17
- VCR.use_cassette('realm') do
18
- realm = LolStatic::Realm.new
19
- expect(realm.api_version('item')).to eq('4.4.3')
20
- end
21
- end
22
- end
23
- end
@@ -1,24 +0,0 @@
1
- require 'spec_helper'
2
-
3
- require 'lol_static/spell'
4
-
5
- describe LolStatic::Spell do
6
-
7
- use_vcr_cassette 'realm'
8
-
9
- let(:id) { 'Spell' }
10
-
11
- let(:spell) { LolStatic::Spell.new(id) }
12
-
13
- describe '.api_version' do
14
- it 'returns api version' do
15
- expect(LolStatic::Spell.api_version).to eq('4.4.3')
16
- end
17
- end
18
-
19
- describe '#image_url' do
20
- it 'returns image url' do
21
- expect(spell.image_url).to eq("http://ddragon.leagueoflegends.com/cdn/4.4.3/img/spell/#{id}.png")
22
- end
23
- end
24
- end