logobox 0.0.1 → 0.0.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: 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