openkvk 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module OpenKVK
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/openkvk.rb CHANGED
@@ -7,7 +7,7 @@ module OpenKVK
7
7
  class << self
8
8
  def find(options={})
9
9
  if options.is_a?(String)
10
- options = {:conditions => ["bedrijfsnaam ILIKE '%#{options}%'"]}
10
+ options = {:conditions => ["bedrijfsnaam LIKE '%#{options}%'", "bedrijfsnaam LIKE '%#{options.to_s.upcase}%'", "bedrijfsnaam LIKE '%#{capitalize_and_format_each_word(options)}%'"], :match_condition => :any}
11
11
  end
12
12
  options = {:limit => 1000, :select => ["*"], :count => :all, :match_condition => :all}.merge(options)
13
13
 
@@ -17,15 +17,33 @@ module OpenKVK
17
17
  result
18
18
  end
19
19
 
20
- %w{kvk bedrijfsnaam kvks adres postcode plaats type website}.each do |field|
20
+ def find_by_bedrijfsnaam(name, options={})
21
+ # bedrijfsnaam is always a string, so we want to search for different formats of the string
22
+ options = {:conditions => ["bedrijfsnaam LIKE '%#{name}%'", "bedrijfsnaam LIKE '%#{name.to_s.upcase}%'", "bedrijfsnaam LIKE '%#{capitalize_and_format_each_word(name)}%'"], :match_condition => :any}.merge(options)
23
+ find(options)
24
+ end
25
+
26
+ %w{kvk kvks adres postcode plaats type website}.each do |field|
21
27
  define_method("find_by_#{field}") do |value, options={}|
22
28
  options = {:conditions => ["#{field} ILIKE '%#{value}%'"]}.merge(options)
23
29
  find(options)
24
30
  end
25
31
  end
32
+
33
+ private
26
34
 
27
- end
28
-
35
+ def capitalize_and_format_each_word(name)
36
+ # capitalize each word
37
+ name.gsub!(/\b('?[a-z])/) do |word|
38
+ $1.capitalize
39
+ end
29
40
 
41
+ # format B.V. and N.V.
42
+ name.gsub!(/([b|n]\.?v\.?)$/i) do |match|
43
+ "#{match.to_s[0].upcase}.V."
44
+ end
45
+ end
46
+
47
+ end
30
48
 
31
- end
49
+ end
data/spec/openkvk_spec.rb CHANGED
@@ -17,7 +17,7 @@ describe OpenKVK do
17
17
  end
18
18
 
19
19
  it "should find multiple companies" do
20
- expect_query("SELECT * FROM kvk WHERE bedrijfsnaam ILIKE '%Zilverline%' LIMIT 1000", '[{"RESULT":{"TYPES":["bigint","varchar","int","int","varchar","varchar","varchar","varchar","varchar"],"HEADER":["kvk","bedrijfsnaam","kvks","sub","adres","postcode","plaats","type","website"],"ROWS":[["342838240000","Zilverline Beheer B.V.","34283824","0","Finsenstraat 56","1098RJ","Amsterdam","Hoofdvestiging",null],["343774520000","Zilverline B.V.","34377452","0","Molukkenstraat 200 E4","1098TW","Amsterdam","Hoofdvestiging",null]]}}]')
20
+ expect_query("SELECT * FROM kvk WHERE bedrijfsnaam LIKE '%Zilverline%' OR bedrijfsnaam LIKE '%ZILVERLINE%' OR bedrijfsnaam LIKE '%%' LIMIT 1000", '[{"RESULT":{"TYPES":["bigint","varchar","int","int","varchar","varchar","varchar","varchar","varchar"],"HEADER":["kvk","bedrijfsnaam","kvks","sub","adres","postcode","plaats","type","website"],"ROWS":[["342838240000","Zilverline Beheer B.V.","34283824","0","Finsenstraat 56","1098RJ","Amsterdam","Hoofdvestiging",null],["343774520000","Zilverline B.V.","34377452","0","Molukkenstraat 200 E4","1098TW","Amsterdam","Hoofdvestiging",null]]}}]')
21
21
 
22
22
  companies = OpenKVK.find("Zilverline")
23
23
  companies.size.should == 2
@@ -63,7 +63,7 @@ describe OpenKVK do
63
63
 
64
64
  describe ".find_by_bedrijfsnaam" do
65
65
  it "should find a company" do
66
- expect_query("SELECT * FROM kvk WHERE bedrijfsnaam ILIKE '%Zilverline B.V.%' LIMIT 1", '[{"RESULT":{"TYPES":["bigint","varchar","int","int","varchar","varchar","varchar","varchar","varchar"],"HEADER":["kvk","bedrijfsnaam","kvks","sub","adres","postcode","plaats","type","website"],"ROWS":[["343774520000","Zilverline B.V.","34377452","0","Molukkenstraat 200 E4","1098TW","Amsterdam","Hoofdvestiging",null]]}}]')
66
+ expect_query("SELECT * FROM kvk WHERE bedrijfsnaam LIKE '%Zilverline B.V.%' OR bedrijfsnaam LIKE '%ZILVERLINE B.V.%' OR bedrijfsnaam LIKE '%Zilverline B.V.%' LIMIT 1", '[{"RESULT":{"TYPES":["bigint","varchar","int","int","varchar","varchar","varchar","varchar","varchar"],"HEADER":["kvk","bedrijfsnaam","kvks","sub","adres","postcode","plaats","type","website"],"ROWS":[["343774520000","Zilverline B.V.","34377452","0","Molukkenstraat 200 E4","1098TW","Amsterdam","Hoofdvestiging",null]]}}]')
67
67
 
68
68
  OpenKVK.find_by_bedrijfsnaam("Zilverline B.V.", :count => :first).bedrijfsnaam.should == "Zilverline B.V."
69
69
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: openkvk
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.2
5
+ version: 0.0.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Daniel van Hoesel
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-05-10 00:00:00 +02:00
13
+ date: 2011-05-27 00:00:00 +02:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency