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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f14289ffa3fda1c6ebc8dd9ccff7db39fb8c6f28fc27112d244fd292e3df51d3
4
- data.tar.gz: 399e81161b11d237a3f68fafccee9c3de65d0844c7a27b7eed9520f1baa09247
3
+ metadata.gz: b9039d3341df8147833e239188bb4582fb59c3939b502b3fc098786dc2e0914d
4
+ data.tar.gz: a41112485a21bac9c2de718337c75962c318873e653a49bf46dcb94c5c374bce
5
5
  SHA512:
6
- metadata.gz: 6774f56c305c06cb2c671935505ae858e3ed8ac2d107b5f78419c6e3b189e694d433042ccb2d0ecf5a98b1855d42559548e1837e94dca272d728aacc8b70b551
7
- data.tar.gz: efb2492f6f61db90b0d60c44c870294898f550292a454fb5af242fa16d89b812dea93dc9cb05fefcf4111460a9e8cf49ea07b9fda38ed596cfbb5a55e080d29f
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 Mcc
3
+ class MCC
4
4
  def self.all
5
- @@_all ||= YAML::load_file(File.join(__dir__, 'mcc_codes.yaml'))
5
+ _load_data.map { |data| MCC::Code.new(data) }
6
6
  end
7
7
 
8
8
  def self.code(_code)
9
- all.find { |a| a['mcc'] == _code.to_s }
9
+ all.find { |mcc| mcc.send('mcc') == _code.to_s }
10
10
  end
11
11
 
12
12
  def self.where(_attr)
13
- all.find { |a| a[_attr.keys.first.to_s] == _attr.values.first.to_s }
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