logobox 0.0.1 → 0.0.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: 235f9ae36ad51547d0a71dc82825f2abc1372b19
4
- data.tar.gz: 4f4765541e95f9a326581a31bdf4903e4b1e5bc4
3
+ metadata.gz: 754ec088a98bc5708eb9ece7d77f9bdda1cbf787
4
+ data.tar.gz: 2186fae5de100e25076c6764174bc7ddb3703ef5
5
5
  SHA512:
6
- metadata.gz: 7516831de6e1eee856a0407b56b9d10541faf8ebe2f77a01994beb5e40acfca61f9091e3435442f129795a13dd554923ec98370d5e3fb002f4f980134f3f83c2
7
- data.tar.gz: a04b49e6cc4a677e8d3d8b56c45bb3f073c058a87ce6ebb28c7e49a56f730541d7ecb678344b47e341131852e158a43424cb2c5afbf3a29b832efc53a6ae4cd1
6
+ metadata.gz: 23e3ce6121518e4790b35c54fd8e961ff4ad466a2fba86f9b6eb8a161f0ac81784eb7270e1e72cd99fdd176041c054853d64f08de773e716f71362a4876f5471
7
+ data.tar.gz: 14a930d21958b31d44b2e98c4205df79000836c465747bb962064d01dec902f89c0265bf50b868ec3efe6b284be3a61e0218193fb9b208197b18e694d5acab88
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
+ *.gem
1
2
  /.bundle/
2
3
  /.yardoc
3
4
  /Gemfile.lock
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Logobox
2
2
 
3
- TODO: Write a gem description
3
+ Logobox translates ICO of the company into appropriate logo url at logobox.cz
4
+
5
+ It can check that the logo is uploaded and make the ICO validation.
4
6
 
5
7
  ## Installation
6
8
 
@@ -20,11 +22,30 @@ Or install it yourself as:
20
22
 
21
23
  ## Usage
22
24
 
23
- TODO: Write usage instructions here
25
+ `Logobox.logo_exists?(ico)` - returns true if ICO is valid and logo exists on logobox.cz (Internet connection is required)
26
+
27
+ `Logobox.generate_logo_url(ico)` - returns logo url at logobox.cz (even if it's the default one or ico is invalid)
28
+
29
+ `Logobox.generate_logo_url!(ico)` - returns logo url, but raises error if ico is invalid or logo doesn't exist on logobox.cz (Internet connection is required)
30
+
31
+ ## Example
32
+ ```ruby
33
+ class ContactDecorator < Draper::Decoration
34
+ ...
35
+ def logo_url
36
+ Logobox.generate_logo_url(contact.ico, :medium)
37
+ end
38
+ ...
39
+ end
40
+ ```
41
+
42
+ ```html
43
+ <img src="<%= @contact.logo_url %>">
44
+ ```
24
45
 
25
46
  ## Contributing
26
47
 
27
- 1. Fork it ( https://github.com/[my-github-username]/logobox/fork )
48
+ 1. Fork it ( https://github.com/desofto/logobox/fork )
28
49
  2. Create your feature branch (`git checkout -b my-new-feature`)
29
50
  3. Commit your changes (`git commit -am 'Add some feature'`)
30
51
  4. Push to the branch (`git push origin my-new-feature`)
@@ -1,3 +1,4 @@
1
+ require 'ico-validator/ico_validation'
1
2
  require 'logobox/version'
2
3
 
3
4
  module Logobox
@@ -8,15 +9,15 @@ module Logobox
8
9
  def self.generate_logo_url(ico, size = nil)
9
10
  if size
10
11
  fail ArgumentError, 'size must be one of :' + LOGO_SIZES.join(', :') unless LOGO_SIZES.include?(size)
11
- "http://www.logobox.cz/getimage.ashx?id=CZ#{ico}?size=#{size}"
12
+ "http://www.logobox.cz/getimage.ashx?id=CZ#{ico}&size=#{size}"
12
13
  else
13
14
  "http://www.logobox.cz/getimage.ashx?id=CZ#{ico}"
14
15
  end
15
16
  end
16
17
 
17
18
  def self.generate_logo_url!(ico, size = nil)
18
- fail ArgumentError, 'ico is invalid' unless valid_ico?(ico.to_s)
19
- fail LogoNotFound, 'logo does not exists' unless logo_exists?(ico.to_s)
19
+ fail ArgumentError, 'ico is invalid' unless IcoValidation.valid_ico?(ico)
20
+ fail LogoNotFound, 'logo does not exists' unless logo_exists?(ico)
20
21
 
21
22
  result = generate_logo_url(ico, size)
22
23
  fail ArgumentError unless result
@@ -28,28 +29,4 @@ module Logobox
28
29
  result = Net::HTTP.get_response uri
29
30
  result.code == '200'
30
31
  end
31
-
32
- private
33
-
34
-
35
-
36
- # TODO: Remove when migrated to ico-validator gem
37
- def self.valid_ico?(value)
38
- value.length == 8 && value.match(/^\d+$/) && last_number_valid?(value)
39
- end
40
-
41
- def self.last_number_valid?(value)
42
- value[7].to_i == calculate_valid_last_number(value)
43
- end
44
-
45
- def self.calculate_valid_last_number(value)
46
- sum = (0..6).inject(0) { |sum, i| sum += value[i].to_i * (8 - i) }
47
- mod = sum % 11
48
-
49
- case mod
50
- when 0, 10 then 1
51
- when 1 then 0
52
- else 11 - mod
53
- end
54
- end
55
32
  end
@@ -1,3 +1,3 @@
1
1
  module Logobox
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["Dmitry Silchenko"]
10
10
  spec.email = ["silchenko@uol.cz"]
11
11
  spec.summary = %q{Simple library for generating URL for logos from logobox.cz}
12
- spec.description = %q{Simple library for generating URL for logos from logobox.cz}
13
- spec.homepage = ""
12
+ spec.description = %q{Logobox translates ICO of the company into appropriate logo url at logobox.cz\nIt can check that the logo is uploaded and make the ICO validation.}
13
+ spec.homepage = "https://rubygems.org/gems/logobox"
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
@@ -20,9 +20,10 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.7"
22
22
  spec.add_development_dependency "rake", "~> 10.0"
23
- spec.add_development_dependency "rspec"
24
- spec.add_development_dependency "vcr"
25
- spec.add_development_dependency "webmock"
23
+ spec.add_development_dependency "rspec", "~> 3.2"
24
+ spec.add_development_dependency "vcr", "~> 2.9"
25
+ spec.add_development_dependency "webmock", "~> 1.21"
26
+ spec.add_development_dependency "ico-validator", "~> 0.4"
26
27
  end
27
28
 
28
29
 
@@ -0,0 +1,62 @@
1
+ require 'spec_helper'
2
+
3
+ describe Logobox, :vcr do
4
+ describe '::generate_logo_url' do
5
+ context 'no size is given' do
6
+ it "creates basic url for logobox logo" do
7
+ expect(Logobox.generate_logo_url(27169278)).to eq 'http://www.logobox.cz/getimage.ashx?id=CZ27169278'
8
+ end
9
+ end
10
+
11
+ context 'size is given' do
12
+ it 'creates basic url for logobox logo with size parameter' do
13
+ expect(Logobox.generate_logo_url(27169278, :small)).to eq 'http://www.logobox.cz/getimage.ashx?id=CZ27169278&size=small'
14
+ end
15
+
16
+ it "raises an ArgumentError if size isn't small, medium or big" do
17
+ expect{ Logobox.generate_logo_url(27169278, :nonsense) }.to raise_error(ArgumentError, 'size must be one of :small, :medium, :big')
18
+ end
19
+ end
20
+ end
21
+
22
+ describe '::generate_logo_url!' do
23
+ context 'no size is given' do
24
+ it "creates basic url for logobox logo" do
25
+ expect(Logobox.generate_logo_url!(27169278)).to eq 'http://www.logobox.cz/getimage.ashx?id=CZ27169278'
26
+ end
27
+ end
28
+
29
+ context 'size is given' do
30
+ it 'creates basic url for logobox logo with size parameter' do
31
+ expect(Logobox.generate_logo_url!(27169278, :small)).to eq 'http://www.logobox.cz/getimage.ashx?id=CZ27169278&size=small'
32
+ end
33
+
34
+ it "raises an ArgumentError if size isn't small, medium or big" do
35
+ expect { Logobox.generate_logo_url!(27169278, :nonsense) }.to raise_error(ArgumentError, 'size must be one of :small, :medium, :big')
36
+ end
37
+
38
+ it 'fails if logo does not exists' do
39
+ expect { Logobox.generate_logo_url!(62966758) }.to raise_error(Logobox::LogoNotFound, 'logo does not exists')
40
+ end
41
+
42
+ it 'fails if ico is invalid' do
43
+ expect { Logobox.generate_logo_url!(123) }.to raise_error(ArgumentError, 'ico is invalid')
44
+ end
45
+ end
46
+ end
47
+
48
+ describe '::logo_exists' do
49
+ it 'returns true on valid ico and if logo exist' do
50
+ expect(Logobox.logo_exists?(27169278)).to eq true
51
+ end
52
+
53
+ it 'returns false on invalid ico' do
54
+ expect(Logobox.logo_exists?(123)).to eq false
55
+ end
56
+
57
+ it 'returns false on non-existen ico' do
58
+ expect(Logobox.logo_exists?(62966758)).to eq false
59
+ end
60
+ end
61
+ end
62
+
@@ -0,0 +1,4 @@
1
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
+ require 'logobox'
3
+ Dir[File.dirname(__FILE__) + '/support/**/*.rb'].each { |f| require f }
4
+
@@ -0,0 +1,19 @@
1
+ require 'webmock/rspec'
2
+ require 'vcr'
3
+
4
+ RSpec.configure do |config|
5
+ config.around(:each, :vcr) do |example|
6
+ name = example.metadata[:full_description].gsub('::', '/').gsub(/[^\w\/]+/, "_")
7
+ VCR.use_cassette(name, {}, &example)
8
+ end
9
+ end
10
+
11
+ WebMock.allow_net_connect!
12
+
13
+ VCR.configure do |c|
14
+ c.allow_http_connections_when_no_cassette = false
15
+ c.hook_into :webmock
16
+ c.cassette_library_dir = 'spec/vcr'
17
+ c.default_cassette_options = { record: :new_episodes,
18
+ match_requests_on: [:method, :path, :query, :body] }
19
+ end
@@ -0,0 +1,234 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://www.logobox.cz/getimage.ashx?error404=true&id=CZ27169278
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ Host:
17
+ - www.logobox.cz
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Cache-Control:
24
+ - private
25
+ Content-Type:
26
+ - image/png
27
+ Server:
28
+ - Microsoft-IIS/7.5
29
+ X-Aspnet-Version:
30
+ - 2.0.50727
31
+ X-Powered-By:
32
+ - ASP.NET
33
+ Date:
34
+ - Wed, 22 Jul 2015 11:05:43 GMT
35
+ Content-Length:
36
+ - '8599'
37
+ body:
38
+ encoding: ASCII-8BIT
39
+ string: !binary |-
40
+ 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
231
+ rkJggg==
232
+ http_version:
233
+ recorded_at: Wed, 22 Jul 2015 11:05:50 GMT
234
+ recorded_with: VCR 2.9.3