ntee 0.0.3 → 0.0.4
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 +7 -0
- data/README.md +16 -1
- data/Rakefile +9 -0
- data/lib/ntee.rb +41 -20
- data/lib/ntee/version.rb +1 -1
- data/ntee.gemspec +1 -0
- metadata +36 -18
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 03b80da907998c1501a017b67b3a77157ec8496a62d5a6d2942f588a414f6e20
|
4
|
+
data.tar.gz: 474320909c63ff0c4dadd46a9ab4afeccf6f2af7e96dcc6983a5a640f30fb430
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 8e254d86d9376ab2fe718df3d976f72592fcbdd5db26492116513fb38763068dbb1f8e635f618b08f646d5b1aa0e9bfc5a84fb6d4b21d4689f9fb273c431a228
|
7
|
+
data.tar.gz: 7d42be8621df32db7c2a04f444e21edb43be8b044bf36522d17765cfe7c9e4d55bfc2efe60e7566cdbdfecec5a9c2fd3bd3401a987800e79a6496ddbad4a6a20
|
data/README.md
CHANGED
@@ -15,10 +15,25 @@ category.ancestors # [NTEE.category("R60"), NTEE.category("R")]
|
|
15
15
|
|
16
16
|
Easy-peasy!
|
17
17
|
|
18
|
+
There is also a helper method to make this easy to build Rails selection dropdowns
|
19
|
+
|
20
|
+
```ruby
|
21
|
+
NTEE.as_list
|
22
|
+
```
|
23
|
+
|
18
24
|
## search_dimensions integration
|
19
25
|
|
20
26
|
The file `lib/ntee/search_dimension.rb` defines a few classes you can use in conjunction with Gively's `search_dimensions` gem to deal with NTEE categories stored in a Solr search index. `NTEE::HierarchicalDimension` lets you treat the categories as a hierarchical tree, and `NTEE::FlatDimension` lets you treat them as a plain string field.
|
21
27
|
|
22
28
|
## Licensing
|
23
29
|
|
24
|
-
This gem is Copyright © 2011-2012 Gively, Inc. and is released under the MIT license. For more details, please see the LICENSE file.
|
30
|
+
This gem is Copyright © 2011-2012 Gively, Inc. and is released under the MIT license. For more details, please see the LICENSE file.
|
31
|
+
|
32
|
+
## Testing and Debugging
|
33
|
+
|
34
|
+
To test in console
|
35
|
+
|
36
|
+
```shell
|
37
|
+
bundle install
|
38
|
+
bundle exec rake test:console
|
39
|
+
```
|
data/Rakefile
CHANGED
data/lib/ntee.rb
CHANGED
@@ -3,27 +3,31 @@ require 'ntee/version'
|
|
3
3
|
module NTEE
|
4
4
|
class Category
|
5
5
|
attr_accessor :name, :code, :subcategories, :parent
|
6
|
-
|
6
|
+
|
7
7
|
def initialize
|
8
8
|
self.subcategories ||= {}
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
|
+
def to_s
|
12
|
+
"#{name} (#{code})"
|
13
|
+
end
|
14
|
+
|
11
15
|
def inspect
|
12
16
|
"<NTEE Category #{code} (#{name})>"
|
13
17
|
end
|
14
|
-
|
18
|
+
|
15
19
|
def [](subcategory_code)
|
16
20
|
self.subcategories[subcategory_code.to_s]
|
17
21
|
end
|
18
|
-
|
22
|
+
|
19
23
|
def parent=(parent)
|
20
24
|
if parent && parent[code] != self
|
21
|
-
parent.add_subcategory!(self)
|
25
|
+
parent.add_subcategory!(self)
|
22
26
|
end
|
23
|
-
|
27
|
+
|
24
28
|
@parent = parent
|
25
29
|
end
|
26
|
-
|
30
|
+
|
27
31
|
def ancestors
|
28
32
|
if parent
|
29
33
|
[parent] + parent.ancestors
|
@@ -31,28 +35,28 @@ module NTEE
|
|
31
35
|
[]
|
32
36
|
end
|
33
37
|
end
|
34
|
-
|
38
|
+
|
35
39
|
def descendants
|
36
40
|
(subcategories.values + subcategories.values.map(&:descendants)).flatten
|
37
41
|
end
|
38
|
-
|
42
|
+
|
39
43
|
def add_subcategory!(subcategory)
|
40
44
|
subcategories[subcategory.code.to_s] = subcategory
|
41
45
|
subcategory.parent = self
|
42
46
|
subcategories
|
43
47
|
end
|
44
|
-
|
48
|
+
|
45
49
|
def as_json(options={})
|
46
50
|
hsh = {
|
47
51
|
'code' => code,
|
48
52
|
'name' => name
|
49
53
|
}
|
50
|
-
|
54
|
+
|
51
55
|
hsh['subcategories'] = subcategories.values.as_json(options) if subcategories && subcategories.count > 0
|
52
|
-
|
56
|
+
|
53
57
|
hsh
|
54
58
|
end
|
55
|
-
|
59
|
+
|
56
60
|
def attributes=(attributes)
|
57
61
|
attributes.each do |name, value|
|
58
62
|
case name.to_s
|
@@ -73,7 +77,7 @@ module NTEE
|
|
73
77
|
raise "Subcategory #{value.inspect} is neither a Category nor a Hash"
|
74
78
|
end
|
75
79
|
end
|
76
|
-
|
80
|
+
|
77
81
|
subcats.each do |subcat|
|
78
82
|
add_subcategory!(subcat)
|
79
83
|
end
|
@@ -81,10 +85,10 @@ module NTEE
|
|
81
85
|
end
|
82
86
|
end
|
83
87
|
end
|
84
|
-
|
88
|
+
|
85
89
|
class << self
|
86
90
|
attr_accessor :root_categories, :all_categories
|
87
|
-
|
91
|
+
|
88
92
|
def category(cat_or_code)
|
89
93
|
case cat_or_code
|
90
94
|
when NTEE::Category
|
@@ -93,7 +97,7 @@ module NTEE
|
|
93
97
|
all_categories[cat_or_code.to_s]
|
94
98
|
end
|
95
99
|
end
|
96
|
-
|
100
|
+
|
97
101
|
def add_category!(category)
|
98
102
|
root_categories[category.code.to_s] = category if category.parent.nil?
|
99
103
|
category.subcategories.each do |code, subcategory|
|
@@ -102,14 +106,31 @@ module NTEE
|
|
102
106
|
all_categories[category.code.to_s] = category
|
103
107
|
end
|
104
108
|
end
|
105
|
-
|
109
|
+
|
106
110
|
self.root_categories = {}
|
107
111
|
self.all_categories = {}
|
112
|
+
|
113
|
+
def self.as_list
|
114
|
+
@as_list ||= sort_by_code(flattened_categories)
|
115
|
+
end
|
116
|
+
|
117
|
+
private
|
118
|
+
|
119
|
+
def self.flattened_categories
|
120
|
+
all_categories.map do |parent_category|
|
121
|
+
c = parent_category[1]
|
122
|
+
[c.to_s, c.code]
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
def self.sort_by_code(arr)
|
127
|
+
arr.sort {|a, b| a[1] <=> b[1] }
|
128
|
+
end
|
108
129
|
end
|
109
130
|
|
110
131
|
begin
|
111
132
|
require 'json'
|
112
|
-
|
133
|
+
|
113
134
|
File.open(File.expand_path("../ntee_categories.json", __FILE__), 'r') do |file|
|
114
135
|
JSON.load(file).each do |attributes|
|
115
136
|
NTEE::Category.new.tap do |category|
|
@@ -121,4 +142,4 @@ begin
|
|
121
142
|
rescue
|
122
143
|
puts "WARNING: Couldn't load NTEE categories!"
|
123
144
|
puts $!
|
124
|
-
end
|
145
|
+
end
|
data/lib/ntee/version.rb
CHANGED
data/ntee.gemspec
CHANGED
metadata
CHANGED
@@ -1,38 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ntee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.4
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Nat Budin
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2018-09-20 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: i18n
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: activesupport
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- -
|
31
|
+
- - ">="
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '3.0'
|
33
34
|
type: :development
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '3.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
36
55
|
description: Utilities to support the Urban Institute's National Taxonomy of Exempt
|
37
56
|
Entities
|
38
57
|
email:
|
@@ -41,7 +60,7 @@ executables: []
|
|
41
60
|
extensions: []
|
42
61
|
extra_rdoc_files: []
|
43
62
|
files:
|
44
|
-
- .gitignore
|
63
|
+
- ".gitignore"
|
45
64
|
- Gemfile
|
46
65
|
- LICENSE
|
47
66
|
- README.md
|
@@ -53,26 +72,25 @@ files:
|
|
53
72
|
- ntee.gemspec
|
54
73
|
homepage: https://github.com/gively/ntee
|
55
74
|
licenses: []
|
75
|
+
metadata: {}
|
56
76
|
post_install_message:
|
57
77
|
rdoc_options: []
|
58
78
|
require_paths:
|
59
79
|
- lib
|
60
80
|
required_ruby_version: !ruby/object:Gem::Requirement
|
61
|
-
none: false
|
62
81
|
requirements:
|
63
|
-
- -
|
82
|
+
- - ">="
|
64
83
|
- !ruby/object:Gem::Version
|
65
84
|
version: '0'
|
66
85
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
|
-
none: false
|
68
86
|
requirements:
|
69
|
-
- -
|
87
|
+
- - ">="
|
70
88
|
- !ruby/object:Gem::Version
|
71
89
|
version: '0'
|
72
90
|
requirements: []
|
73
91
|
rubyforge_project:
|
74
|
-
rubygems_version:
|
92
|
+
rubygems_version: 2.7.3
|
75
93
|
signing_key:
|
76
|
-
specification_version:
|
94
|
+
specification_version: 4
|
77
95
|
summary: NTEE utilities for US nonprofit entity categorization
|
78
96
|
test_files: []
|