mcc-ruby 0.1.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/mcc-ruby/mcc.rb +8 -4
- data/lib/mcc-ruby/mcc_code.rb +15 -0
- data/lib/mcc-ruby/mcc_codes.yaml +152 -1133
- data/lib/mcc-ruby.rb +2 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b9039d3341df8147833e239188bb4582fb59c3939b502b3fc098786dc2e0914d
|
4
|
+
data.tar.gz: a41112485a21bac9c2de718337c75962c318873e653a49bf46dcb94c5c374bce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 62ff4678c7dc5c8485af4e690cc2796fd3fa8d250f5ee15a88a8a0076bbd24143035daf16c8d9d78957f66dc1f1ef19f6452de5943e3b4a57610297241f0251e
|
7
|
+
data.tar.gz: 9c6e3e5ed6dcf30c6a68a8ed3686354a6fd26dec99ebb4e40544e7799a06a3c223516de49d82002a3d4624581d246049f34d4c3ab6e16c33c2b28a173958ac8c
|
data/lib/mcc-ruby/mcc.rb
CHANGED
@@ -1,15 +1,19 @@
|
|
1
1
|
require 'yaml'
|
2
2
|
|
3
|
-
class
|
3
|
+
class MCC
|
4
4
|
def self.all
|
5
|
-
|
5
|
+
_load_data.map { |data| MCC::Code.new(data) }
|
6
6
|
end
|
7
7
|
|
8
8
|
def self.code(_code)
|
9
|
-
all.find { |
|
9
|
+
all.find { |mcc| mcc.send('mcc') == _code.to_s }
|
10
10
|
end
|
11
11
|
|
12
12
|
def self.where(_attr)
|
13
|
-
all.
|
13
|
+
all.select { |mcc| mcc.send(_attr.keys.first.to_s) == _attr.values.first.to_s }
|
14
|
+
end
|
15
|
+
|
16
|
+
def self._load_data
|
17
|
+
@@_load ||= YAML::load_file(File.join(__dir__, 'mcc_codes.yaml'))
|
14
18
|
end
|
15
19
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class MCC::Code
|
2
|
+
ATTRS = %w(mcc edited_description combined_description usda_description irs_description irs_reportable)
|
3
|
+
|
4
|
+
ATTRS.each do |attr|
|
5
|
+
define_method attr do
|
6
|
+
instance_variable_get("@#{attr}")
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def initialize(_data)
|
11
|
+
ATTRS.each do |attr|
|
12
|
+
instance_variable_set("@#{attr}", _data[attr])
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|