jsoncrossreference 0.0.1

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.
Files changed (2) hide show
  1. data/lib/jsoncrossreference.rb +43 -0
  2. metadata +47 -0
@@ -0,0 +1,43 @@
1
+ require 'datacalc'
2
+
3
+ class JSONCrossreference
4
+
5
+ def initialize(input1, input2)
6
+ @input1 = input1
7
+ @input2 = input2
8
+ @output = nil
9
+ end
10
+
11
+ # What: Cross-references fields in two files
12
+ # Input: Variable number of arrays with name of fields to compare
13
+ # Output: JSON with matches
14
+ # Limitations: Only returns data from one file. Matching multiple fields functions as && not ||. Only takes 2 files input
15
+ def compare(*fieldnames)
16
+ if JSON.parse(File.read(@input2)).length < JSON.parse(File.read(@input1)).length
17
+ file1 = JSON.parse(File.read(@input2))
18
+ file1length = file1.length
19
+ file2 = @input1
20
+
21
+ tmparray = Array.new
22
+ fieldnames.each do |field|
23
+ tmparray.push([field[1], field[0]])
24
+ end
25
+ fieldnames = tmparray
26
+ else
27
+ file1 = JSON.parse(File.read(@input1))
28
+ file1length = file1.length
29
+ file2 = @input2
30
+ end
31
+
32
+ tmpfile = Array.new
33
+ (0..file1length-1).each do |l|
34
+ fieldnames.each do |field|
35
+ value = (file1[l])[field[0]]
36
+ matchnames = [field[1], value]
37
+ m = DataCalc.new(file2)
38
+ tmpfile << m.match(matchnames)
39
+ end
40
+ end
41
+ @output = tmpfile.to_json
42
+ end
43
+ end
metadata ADDED
@@ -0,0 +1,47 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jsoncrossreference
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - M. C. McGrath
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-11-25 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: Crossreferences JSONs and returns the matches
15
+ email: shidash@shidash.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/jsoncrossreference.rb
21
+ homepage: https://github.com/Shidash/JSONCrossreference
22
+ licenses:
23
+ - GPL
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ required_rubygems_version: !ruby/object:Gem::Requirement
35
+ none: false
36
+ requirements:
37
+ - - ! '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ requirements: []
41
+ rubyforge_project:
42
+ rubygems_version: 1.8.23
43
+ signing_key:
44
+ specification_version: 3
45
+ summary: Crossreferences JSONs
46
+ test_files: []
47
+ has_rdoc: