guidestar 0.1.2 → 0.2.0
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.
- data/README.md +4 -4
- data/lib/guidestar/result.rb +30 -10
- data/lib/guidestar/version.rb +1 -1
- metadata +2 -2
data/README.md
CHANGED
@@ -34,10 +34,10 @@ Or you can create a Guidestar::Client object and go from there:
|
|
34
34
|
|
35
35
|
There are four main API methods that you can use:
|
36
36
|
|
37
|
-
Guidestar.search #
|
38
|
-
Guidestar.detailed_search
|
39
|
-
Guidestar.charity_check
|
40
|
-
Guidestar.npo_validation
|
37
|
+
Guidestar.search # tested
|
38
|
+
Guidestar.detailed_search # tested
|
39
|
+
Guidestar.charity_check # untested
|
40
|
+
Guidestar.npo_validation # untested
|
41
41
|
|
42
42
|
See https://gsservices.guidestar.org/GuideStar_SearchService/WebServiceSearchQuery.xsd
|
43
43
|
for detailed search parameters.
|
data/lib/guidestar/result.rb
CHANGED
@@ -4,7 +4,7 @@ module Guidestar
|
|
4
4
|
include Enumerable
|
5
5
|
extend Forwardable
|
6
6
|
|
7
|
-
def_delegators :
|
7
|
+
def_delegators :all, :size, :length, :last
|
8
8
|
def_delegators :data, :xml, :total_count, :search_time, :total_pages
|
9
9
|
|
10
10
|
def initialize(path, client)
|
@@ -18,11 +18,12 @@ module Guidestar
|
|
18
18
|
# are new parameters on the request.
|
19
19
|
#
|
20
20
|
# Returns an Array of organizations from the search
|
21
|
-
def
|
21
|
+
def all
|
22
22
|
return @organizations if @organizations
|
23
23
|
load_response
|
24
24
|
@organizations
|
25
25
|
end
|
26
|
+
alias :organizations :all
|
26
27
|
|
27
28
|
# Internal: Contains a few extra details that might be desired, like
|
28
29
|
# the total_count and search_time, which are also available via
|
@@ -57,20 +58,33 @@ module Guidestar
|
|
57
58
|
|
58
59
|
orgs = [orgs] unless orgs.is_a?(Array)
|
59
60
|
orgs.each do |org|
|
60
|
-
org = Hashie::Mash.new
|
61
|
+
org = Hashie::Mash.new clean_result(org)
|
61
62
|
|
62
|
-
org.delete(:general_information)
|
63
|
+
general_information = org.delete(:general_information) || {}
|
64
|
+
general_information.each do |k,v|
|
63
65
|
org[k]=v
|
64
66
|
end
|
65
|
-
org.delete(:mission_and_programs)
|
67
|
+
mission_and_programs = org.delete(:mission_and_programs) || {}
|
68
|
+
mission_and_programs.each do |type, content|
|
66
69
|
content = Nokogiri::HTML content
|
67
70
|
content = content.text.encode(*encoding_options).strip
|
68
71
|
org[type] = content unless content == 'No information currently in database.'
|
69
72
|
end
|
73
|
+
ntees = org.delete(:ntees)
|
74
|
+
if ntees
|
75
|
+
org.ntees = {}
|
76
|
+
ntees[:ntee].each do |ntee|
|
77
|
+
org.ntees[ntee.code] = ntee.description unless ntee.code.nil?
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
org[:world_locations] = org.delete(:world_locations).to_s.split(', ') if org[:word_locations]
|
82
|
+
org[:us_locations] = org.delete(:us_locations).to_s.split(', ') if org[:us_locations]
|
70
83
|
|
71
84
|
org[:name] = org.delete :org_name
|
72
85
|
org[:tax_deductible] = org[:deductibility] == 'Contributions are deductible, as provided by law'
|
73
|
-
org[:
|
86
|
+
org[:type] = org[:irs_subsection].split(' ').first.gsub(/\W/,'').to_sym if org[:irs_subsection]
|
87
|
+
org["is_#{org[:type]}"] = true if org[:type]
|
74
88
|
|
75
89
|
org[:ein] = EIN.new org[:ein]
|
76
90
|
|
@@ -78,14 +92,20 @@ module Guidestar
|
|
78
92
|
end
|
79
93
|
end
|
80
94
|
|
81
|
-
def
|
95
|
+
def clean_result(value)
|
82
96
|
case value
|
83
97
|
when Array
|
84
|
-
value.map { |v|
|
98
|
+
value.map { |v| clean_result v }
|
85
99
|
when Hash
|
86
|
-
Hash[value.map { |k, v| [k.gsub(/(.)([A-Z])/,'\1_\2').downcase.to_sym,
|
100
|
+
Hash[value.map { |k, v| [k.gsub(/(.)([A-Z])/,'\1_\2').downcase.to_sym, clean_result(v)] }]
|
87
101
|
else
|
88
|
-
value.nil?
|
102
|
+
if value.nil?
|
103
|
+
nil
|
104
|
+
elsif value =~ /\A[0-9]+\Z/
|
105
|
+
value.to_i
|
106
|
+
else
|
107
|
+
value.strip
|
108
|
+
end
|
89
109
|
end
|
90
110
|
end
|
91
111
|
|
data/lib/guidestar/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: guidestar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-02-
|
12
|
+
date: 2013-02-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|