topographer 0.0.1 → 0.0.2

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 (45) hide show
  1. checksums.yaml +13 -5
  2. data/lib/Topographer/importer/helpers/write_log_to_csv.rb +1 -1
  3. data/lib/Topographer/importer/helpers.rb +1 -1
  4. data/lib/Topographer/importer/importable.rb +1 -1
  5. data/lib/Topographer/importer/input/base.rb +1 -1
  6. data/lib/Topographer/importer/input/roo.rb +2 -2
  7. data/lib/Topographer/importer/input/source_data.rb +1 -1
  8. data/lib/Topographer/importer/input.rb +1 -1
  9. data/lib/Topographer/importer/logger/base.rb +2 -2
  10. data/lib/Topographer/importer/logger/fatal_error_entry.rb +1 -1
  11. data/lib/Topographer/importer/logger/log_entry.rb +1 -1
  12. data/lib/Topographer/importer/logger/simple.rb +1 -1
  13. data/lib/Topographer/importer/logger.rb +1 -1
  14. data/lib/Topographer/importer/mapper/default_field_mapping.rb +1 -1
  15. data/lib/Topographer/importer/mapper/field_mapping.rb +1 -1
  16. data/lib/Topographer/importer/mapper/ignored_field_mapping.rb +1 -1
  17. data/lib/Topographer/importer/mapper/result.rb +1 -1
  18. data/lib/Topographer/importer/mapper/validation_field_mapping.rb +1 -1
  19. data/lib/Topographer/importer/mapper.rb +1 -1
  20. data/lib/Topographer/importer/strategy/base.rb +2 -2
  21. data/lib/Topographer/importer/strategy/create_or_update_record.rb +1 -1
  22. data/lib/Topographer/importer/strategy/import_new_record.rb +1 -1
  23. data/lib/Topographer/importer/strategy/import_status.rb +1 -1
  24. data/lib/Topographer/importer/strategy/update_record.rb +1 -1
  25. data/lib/Topographer/importer/strategy.rb +1 -1
  26. data/lib/Topographer/importer.rb +1 -1
  27. data/lib/Topographer/version.rb +1 -1
  28. data/spec/Cartographer/importer/helpers/write_log_to_csv_spec.rb +8 -8
  29. data/spec/Cartographer/importer/helpers_spec.rb +2 -2
  30. data/spec/Cartographer/importer/importable_spec.rb +2 -2
  31. data/spec/Cartographer/importer/importer_spec.rb +12 -12
  32. data/spec/Cartographer/importer/logger/base_spec.rb +3 -3
  33. data/spec/Cartographer/importer/logger/fatal_error_entry_spec.rb +2 -2
  34. data/spec/Cartographer/importer/logger/simple_spec.rb +2 -2
  35. data/spec/Cartographer/importer/mapper/default_field_mapping_spec.rb +7 -7
  36. data/spec/Cartographer/importer/mapper/field_mapping_spec.rb +8 -8
  37. data/spec/Cartographer/importer/mapper/validation_field_mapping_spec.rb +5 -5
  38. data/spec/Cartographer/importer/mapper_spec.rb +23 -23
  39. data/spec/Cartographer/importer/strategy/base_spec.rb +3 -3
  40. data/spec/Cartographer/importer/strategy/create_or_update_record_spec.rb +3 -3
  41. data/spec/Cartographer/importer/strategy/import_new_records_spec.rb +5 -5
  42. data/spec/Cartographer/importer/strategy/import_status_spec.rb +2 -2
  43. data/spec/Cartographer/importer/strategy/mapped_model.rb +1 -1
  44. data/spec/Cartographer/importer/strategy/update_record_spec.rb +3 -3
  45. metadata +11 -10
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 0f240a307703861f83b040a054ad1f89ae397823
4
- data.tar.gz: 3fab2dc9130cd3507b2f7fccb169ab1082847b38
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZjI0NDZhMDEyMDhkNzA0NzA4MTczMjBjYzY3NWZkMzQxODBmYzBjNg==
5
+ data.tar.gz: !binary |-
6
+ OTI1MzZhMWU2NTZhOTllOTE2Nzg4ZjMyZTVmMmU5MDQzMWU3ZmI1Ng==
5
7
  SHA512:
6
- metadata.gz: f5a4c37297d5ee4c31f125b39e371067b2b78bff094a4052a3e48c690a6969ade6cc752542652a7bcc37ca4eca76d115bc1eeab41cecec4b6e154bfc794c174e
7
- data.tar.gz: 6f18ca76a190026fc57a216ede46e51d2354df44de0b8c6270c1b224e230b712a2151af4aec806b0b5c54a33d86b2fd26be6e2dd8fcb2186eaf56830e58764bb
8
+ metadata.gz: !binary |-
9
+ YzczMzllN2M3YTc3ZTc2M2E3YTY2NmJjMjU0YmNkODdhN2ViZDY5MGEzYjg3
10
+ MTU1YTVkZmIwYjUwM2UyNWNhMjAzMTdiMjc2ZmIwZTZiMWE5OWU1MGU1OTk5
11
+ ZDYyNWUyNTNjMjYzNzhkYzM4N2FiNjU4OWYyMWY0NzViNGMzNjM=
12
+ data.tar.gz: !binary |-
13
+ MjExOTg5NGM5OWYzZDhkYzM1NzBlM2RmMTY5N2JiNDRmNmJkNDUyZDhhOTll
14
+ YTcwMWYyYmVkMjg5M2RkZTkwN2IwMjg5OWQ5N2I4MzhiNTEwZDQ3ZWVmNTEw
15
+ ODViNDYxMjA4NDFhODIyMTI3OWY0YzAyYTFmY2I1YjE2YmVlZDI=
@@ -1,6 +1,6 @@
1
1
  require 'singleton'
2
2
  require 'csv'
3
- class Importer::Helpers::WriteLogToCSV
3
+ class Topographer::Importer::Helpers::WriteLogToCSV
4
4
  include Singleton
5
5
 
6
6
  def initialize
@@ -1,4 +1,4 @@
1
- module Importer::Helpers
1
+ module Topographer::Importer::Helpers
2
2
  require_relative 'helpers/write_log_to_csv'
3
3
 
4
4
  def boolify(word)
@@ -1,4 +1,4 @@
1
- module Importer::Importable
1
+ module Topographer::Importer::Importable
2
2
  def get_mapper(strategy)
3
3
  raise NotImplementedError
4
4
  end
@@ -1,4 +1,4 @@
1
- class Importer::Input::Base
1
+ class Topographer::Importer::Input::Base
2
2
  def get_header
3
3
  raise NotImplementedError
4
4
  end
@@ -1,4 +1,4 @@
1
- class Importer::Input::Roo < Importer::Input::Base
1
+ class Topographer::Importer::Input::Roo < Topographer::Importer::Input::Base
2
2
  include Enumerable
3
3
 
4
4
  def initialize(roo_sheet, header_row=1, data_row=2)
@@ -21,7 +21,7 @@ class Importer::Input::Roo < Importer::Input::Base
21
21
  @start_data_row.upto @end_data_row do |row_number|
22
22
  data = @sheet.row(row_number)
23
23
  source_identifier = "Row: #{row_number}"
24
- yield Importer::Input::SourceData.new(source_identifier,
24
+ yield Topographer::Importer::Input::SourceData.new(source_identifier,
25
25
  Hash[@header.zip(data)])
26
26
  end
27
27
  end
@@ -1,4 +1,4 @@
1
- class Importer::Input::SourceData
1
+ class Topographer::Importer::Input::SourceData
2
2
  attr_reader :source_identifier, :data
3
3
 
4
4
  def initialize(source_identifier, data)
@@ -1,4 +1,4 @@
1
- class Importer::Input
1
+ class Topographer::Importer::Input
2
2
  require_relative 'input/source_data'
3
3
  require_relative 'input/base'
4
4
  require_relative 'input/roo'
@@ -1,4 +1,4 @@
1
- class Importer::Logger::Base
1
+ class Topographer::Importer::Logger::Base
2
2
 
3
3
  attr_reader :fatal_errors
4
4
 
@@ -31,7 +31,7 @@ class Importer::Logger::Base
31
31
  end
32
32
 
33
33
  def log_fatal(source, message)
34
- @fatal_errors << Importer::Logger::FatalErrorEntry.new(source, message)
34
+ @fatal_errors << Topographer::Importer::Logger::FatalErrorEntry.new(source, message)
35
35
  end
36
36
 
37
37
  def successful_imports
@@ -1,4 +1,4 @@
1
- class Importer::Logger::FatalErrorEntry < Importer::Logger::LogEntry
1
+ class Topographer::Importer::Logger::FatalErrorEntry < Topographer::Importer::Logger::LogEntry
2
2
  attr_reader :message, :timestamp, :model_name
3
3
 
4
4
  def initialize(input_identifier, message)
@@ -1,4 +1,4 @@
1
- class Importer::Logger::LogEntry
1
+ class Topographer::Importer::Logger::LogEntry
2
2
  attr_reader :input_identifier,
3
3
  :model_name
4
4
 
@@ -1,4 +1,4 @@
1
- class Importer::Logger::Simple < Importer::Logger::Base
1
+ class Topographer::Importer::Logger::Simple < Topographer::Importer::Logger::Base
2
2
 
3
3
  attr_reader :successes, :failures
4
4
 
@@ -1,4 +1,4 @@
1
- class Importer::Logger
1
+ class Topographer::Importer::Logger
2
2
  require_relative 'logger/base'
3
3
  require_relative 'logger/simple'
4
4
  require_relative 'logger/file'
@@ -1,4 +1,4 @@
1
- class Importer::Mapper::DefaultFieldMapping < Importer::Mapper::FieldMapping
1
+ class Topographer::Importer::Mapper::DefaultFieldMapping < Topographer::Importer::Mapper::FieldMapping
2
2
 
3
3
  def initialize(output_column, &output_block)
4
4
  unless block_given?
@@ -1,6 +1,6 @@
1
1
  require 'active_support/core_ext/hash'
2
2
  require 'active_support/core_ext/object/blank'
3
- class Importer::Mapper::FieldMapping
3
+ class Topographer::Importer::Mapper::FieldMapping
4
4
  attr_reader :input_columns, :output_field
5
5
 
6
6
  def initialize(required, input_columns, output_field, &mapping_behavior)
@@ -1,4 +1,4 @@
1
- class Importer::Mapper::IgnoredFieldMapping < Importer::Mapper::FieldMapping
1
+ class Topographer::Importer::Mapper::IgnoredFieldMapping < Topographer::Importer::Mapper::FieldMapping
2
2
  def initialize(input_columns)
3
3
  @input_columns = input_columns
4
4
  @output_field = nil
@@ -1,4 +1,4 @@
1
- class Importer::Mapper::Result
1
+ class Topographer::Importer::Mapper::Result
2
2
  attr_reader :data, :errors, :source_identifier
3
3
 
4
4
  def initialize(source_identifier)
@@ -1,4 +1,4 @@
1
- class Importer::Mapper::ValidationFieldMapping < Importer::Mapper::FieldMapping
1
+ class Topographer::Importer::Mapper::ValidationFieldMapping < Topographer::Importer::Mapper::FieldMapping
2
2
  attr_reader :name
3
3
 
4
4
  def initialize(name, input_columns, &validation_block)
@@ -1,4 +1,4 @@
1
- class Importer::Mapper
1
+ class Topographer::Importer::Mapper
2
2
  require_relative 'mapper/field_mapping'
3
3
  require_relative 'mapper/ignored_field_mapping'
4
4
  require_relative 'mapper/validation_field_mapping'
@@ -1,4 +1,4 @@
1
- class Importer::Strategy::Base
1
+ class Topographer::Importer::Strategy::Base
2
2
 
3
3
  attr_reader :mapper
4
4
  attr_accessor :dry_run
@@ -27,7 +27,7 @@ class Importer::Strategy::Base
27
27
  private
28
28
 
29
29
  def get_import_status(mapping_result, new_model_errors)
30
- status = Importer::Strategy::ImportStatus.new(mapping_result.source_identifier)
30
+ status = Topographer::Importer::Strategy::ImportStatus.new(mapping_result.source_identifier)
31
31
  mapping_result.errors.values.each do |error|
32
32
  status.add_error(:mapping, error)
33
33
  end
@@ -1,4 +1,4 @@
1
- class Importer::Strategy::CreateOrUpdateRecord < Importer::Strategy::Base
1
+ class Topographer::Importer::Strategy::CreateOrUpdateRecord < Topographer::Importer::Strategy::Base
2
2
 
3
3
  def import_record (source_data)
4
4
  mapping_result = mapper.map_input(source_data)
@@ -1,4 +1,4 @@
1
- class Importer::Strategy::ImportNewRecord < Importer::Strategy::Base
1
+ class Topographer::Importer::Strategy::ImportNewRecord < Topographer::Importer::Strategy::Base
2
2
 
3
3
  def import_record (source_data)
4
4
  mapping_result = mapper.map_input(source_data)
@@ -1,4 +1,4 @@
1
- class Importer::Strategy::ImportStatus
1
+ class Topographer::Importer::Strategy::ImportStatus
2
2
  attr_reader :errors, :input_identifier, :timestamp
3
3
  attr_accessor :message
4
4
 
@@ -1,4 +1,4 @@
1
- class Importer::Strategy::UpdateRecord < Importer::Strategy::Base
1
+ class Topographer::Importer::Strategy::UpdateRecord < Topographer::Importer::Strategy::Base
2
2
 
3
3
  def import_record (source_data)
4
4
  mapping_result = mapper.map_input(source_data)
@@ -1,4 +1,4 @@
1
- module Importer::Strategy
1
+ module Topographer::Importer::Strategy
2
2
  require_relative 'strategy/base'
3
3
  require_relative 'strategy/import_new_record'
4
4
  require_relative 'strategy/update_record'
@@ -1,4 +1,4 @@
1
- class Importer
1
+ class Topographer::Importer
2
2
  require_relative 'importer/mapper'
3
3
  require_relative 'importer/strategy'
4
4
  require_relative 'importer/importable'
@@ -1,3 +1,3 @@
1
1
  module Topographer
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -1,21 +1,21 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Importer::Helpers::WriteLogToCSV do
3
+ describe Topographer::Importer::Helpers::WriteLogToCSV do
4
4
  let(:successful_entry) do
5
- status = Importer::Strategy::ImportStatus.new('test-input')
5
+ status = Topographer::Importer::Strategy::ImportStatus.new('test-input')
6
6
  status.set_timestamp
7
- Importer::Logger::LogEntry.new('test-input', 'TestModel', status)
7
+ Topographer::Importer::Logger::LogEntry.new('test-input', 'TestModel', status)
8
8
  end
9
9
  let(:failed_entry) do
10
- status = Importer::Strategy::ImportStatus.new('test-input')
10
+ status = Topographer::Importer::Strategy::ImportStatus.new('test-input')
11
11
  status.set_timestamp
12
12
  (1+rand(6)).times do |n|
13
13
  status.add_error(:mapping, "Test error #{n}")
14
14
  end
15
- Importer::Logger::LogEntry.new('test-input', 'TestModel', status)
15
+ Topographer::Importer::Logger::LogEntry.new('test-input', 'TestModel', status)
16
16
  end
17
17
  let(:fatal_error) do
18
- Importer::Logger::FatalErrorEntry.new('test-input', 'FATAL ERROR')
18
+ Topographer::Importer::Logger::FatalErrorEntry.new('test-input', 'FATAL ERROR')
19
19
  end
20
20
  let(:successes) do
21
21
  successes = []
@@ -57,13 +57,13 @@ describe Importer::Helpers::WriteLogToCSV do
57
57
  file = double('file')
58
58
  CSV.should_receive(:open).with('fake_file_path', 'wb').and_yield(file)
59
59
  file.should_receive(:<<).exactly(12).times
60
- Importer::Helpers::WriteLogToCSV.instance.write_log_to_csv(logger, 'fake_file_path', write_all: true)
60
+ Topographer::Importer::Helpers::WriteLogToCSV.instance.write_log_to_csv(logger, 'fake_file_path', write_all: true)
61
61
  end
62
62
  it 'should only write failures and fatal errors if write_all is false' do
63
63
  file = double('file')
64
64
  CSV.should_receive(:open).with('fake_file_path', 'wb').and_yield(file)
65
65
  file.should_receive(:<<).exactly(10).times
66
- Importer::Helpers::WriteLogToCSV.instance.write_log_to_csv(logger, 'fake_file_path', write_all: false)
66
+ Topographer::Importer::Helpers::WriteLogToCSV.instance.write_log_to_csv(logger, 'fake_file_path', write_all: false)
67
67
  end
68
68
  end
69
69
  end
@@ -1,10 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  class TestImportable
4
- extend Importer::Helpers
4
+ extend Topographer::Importer::Helpers
5
5
  end
6
6
 
7
- describe Importer::Helpers do
7
+ describe Topographer::Importer::Helpers do
8
8
  describe ".boolify" do
9
9
  it "returns true if given 'Yes'" do
10
10
  expect(TestImportable.boolify('Yes')).to eql true
@@ -1,10 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  class TestImportable
4
- extend Importer::Importable
4
+ extend Topographer::Importer::Importable
5
5
  end
6
6
 
7
- describe Importer::Importable do
7
+ describe Topographer::Importer::Importable do
8
8
  describe "#get_mapper" do
9
9
  it 'should raise NotImplementedError' do
10
10
  expect { TestImportable.get_mapper(nil) }.to raise_error(NotImplementedError)
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
  require 'ostruct'
3
3
 
4
4
  class MockImportable < OpenStruct
5
- include Importer::Importable
5
+ include Topographer::Importer::Importable
6
6
 
7
7
  def self.create(params)
8
8
  self.new(params)
@@ -21,7 +21,7 @@ class MockImportable < OpenStruct
21
21
  def self.get_mapper(strategy_class)
22
22
  case
23
23
  when strategy_class == HashImportStrategy
24
- Importer::Mapper.build_mapper(MockImportable) do |mapping|
24
+ Topographer::Importer::Mapper.build_mapper(MockImportable) do |mapping|
25
25
  mapping.required_mapping 'Field1', 'field_1'
26
26
  mapping.required_mapping 'Field2', 'field_2'
27
27
  mapping.optional_mapping 'Field3', 'field_3'
@@ -32,7 +32,7 @@ class MockImportable < OpenStruct
32
32
 
33
33
  end
34
34
 
35
- class HashImportStrategy < Importer::Strategy::Base
35
+ class HashImportStrategy < Topographer::Importer::Strategy::Base
36
36
  attr_reader :imported_data
37
37
 
38
38
  def initialize(mapper)
@@ -71,14 +71,14 @@ class MockInput
71
71
  end
72
72
 
73
73
  def each
74
- yield Importer::Input::SourceData.new('1', {'Field1' => 'datum1', 'Field2' => 'datum2'})
75
- yield Importer::Input::SourceData.new('2', {'Field1' => 'datum2', 'Field2' => 'datum2', 'Field3' => 'datum3'})
76
- yield Importer::Input::SourceData.new('3', {'Field1' => 'datum3', 'Field2' => 'invalid value!!!!1ONE'}) #I am INVALID!!!
77
- yield Importer::Input::SourceData.new('4', {'Field1' => 'datum4', 'Field2' => 'datum2', 'Field3' => 'datum3', 'IgnoredField' => 'ignore me'})
74
+ yield Topographer::Importer::Input::SourceData.new('1', {'Field1' => 'datum1', 'Field2' => 'datum2'})
75
+ yield Topographer::Importer::Input::SourceData.new('2', {'Field1' => 'datum2', 'Field2' => 'datum2', 'Field3' => 'datum3'})
76
+ yield Topographer::Importer::Input::SourceData.new('3', {'Field1' => 'datum3', 'Field2' => 'invalid value!!!!1ONE'}) #I am INVALID!!!
77
+ yield Topographer::Importer::Input::SourceData.new('4', {'Field1' => 'datum4', 'Field2' => 'datum2', 'Field3' => 'datum3', 'IgnoredField' => 'ignore me'})
78
78
  end
79
79
  end
80
80
 
81
- describe Importer do
81
+ describe Topographer::Importer do
82
82
  let(:input) { MockInput.new }
83
83
  let(:model_class) { MockImportable }
84
84
  let(:strategy_class) { HashImportStrategy }
@@ -87,8 +87,8 @@ describe Importer do
87
87
  get_header: ['BadCol1', 'BadCol2', 'Field1', 'Field3'],
88
88
  input_identifier: 'Test'
89
89
  end
90
- let(:simple_logger) { Importer::Logger::Simple.new }
91
- let(:import_log) { Importer.import_data(input, model_class, strategy_class, simple_logger) }
90
+ let(:simple_logger) { Topographer::Importer::Logger::Simple.new }
91
+ let(:import_log) { Topographer::Importer.import_data(input, model_class, strategy_class, simple_logger) }
92
92
 
93
93
  describe '.import_data' do
94
94
  it 'returns a logger instance' do
@@ -109,7 +109,7 @@ describe Importer do
109
109
  end
110
110
 
111
111
  it 'does not import data with an invalid header' do
112
- import_log = Importer.import_data(bad_input, model_class, strategy_class, simple_logger)
112
+ import_log = Topographer::Importer.import_data(bad_input, model_class, strategy_class, simple_logger)
113
113
  expect(import_log.errors?).to be_true
114
114
  expect(import_log.fatal_error?).to be_true
115
115
  expect(import_log.fatal_errors.first.message).
@@ -118,7 +118,7 @@ describe Importer do
118
118
  end
119
119
  describe '.build_mapper' do
120
120
  it 'returns a mapper with the defined mappings' do
121
- mapper = Importer.build_mapper(MockImportable) do |mapping|
121
+ mapper = Topographer::Importer.build_mapper(MockImportable) do |mapping|
122
122
  mapping.required_mapping 'Field1', 'field_1'
123
123
  mapping.required_mapping 'Field2', 'field_2'
124
124
  mapping.optional_mapping 'Field3', 'field_3'
@@ -1,11 +1,11 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Importer::Logger::Base do
4
- let(:logger){Importer::Logger::Base.new}
3
+ describe Topographer::Importer::Logger::Base do
4
+ let(:logger){Topographer::Importer::Logger::Base.new}
5
5
  describe '#log_fatal' do
6
6
  it 'should log a fatal error' do
7
7
  logger.log_fatal('test input', 'Fatal Error')
8
- expect(logger.fatal_errors.first).to be_a Importer::Logger::LogEntry
8
+ expect(logger.fatal_errors.first).to be_a Topographer::Importer::Logger::LogEntry
9
9
  expect(logger.fatal_errors.first)
10
10
  end
11
11
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Importer::Logger::FatalErrorEntry do
4
- let(:entry) { Importer::Logger::FatalErrorEntry.new('test-input', 'failure message') }
3
+ describe Topographer::Importer::Logger::FatalErrorEntry do
4
+ let(:entry) { Topographer::Importer::Logger::FatalErrorEntry.new('test-input', 'failure message') }
5
5
  describe '#failure?' do
6
6
  it 'should return true' do
7
7
  expect(entry.failure?).to be_true
@@ -1,9 +1,9 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Importer::Logger::Simple do
3
+ describe Topographer::Importer::Logger::Simple do
4
4
 
5
5
  let(:logger) do
6
- Importer::Logger::Simple.new
6
+ Topographer::Importer::Logger::Simple.new
7
7
  end
8
8
 
9
9
  describe '#log_success' do
@@ -1,22 +1,22 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Importer::Mapper::DefaultFieldMapping do
3
+ describe Topographer::Importer::Mapper::DefaultFieldMapping do
4
4
  let(:static_mapping) do
5
- Importer::Mapper::DefaultFieldMapping.new('field1') do
5
+ Topographer::Importer::Mapper::DefaultFieldMapping.new('field1') do
6
6
  10+5
7
7
  end
8
8
  end
9
9
  let(:failed_static_mapping) do
10
- Importer::Mapper::DefaultFieldMapping.new('field1') do
10
+ Topographer::Importer::Mapper::DefaultFieldMapping.new('field1') do
11
11
  raise 'FAILURE'
12
12
  end
13
13
  end
14
14
 
15
- let(:result) { Importer::Mapper::Result.new('test') }
16
- let(:result2) { Importer::Mapper::Result.new('test') }
15
+ let(:result) { Topographer::Importer::Mapper::Result.new('test') }
16
+ let(:result2) { Topographer::Importer::Mapper::Result.new('test') }
17
17
  describe '#initialize' do
18
18
  it 'should not create a static mapping without a behavior block' do
19
- expect { Importer::Mapper::DefaultFieldMapping.new('broken mapping') }.
19
+ expect { Topographer::Importer::Mapper::DefaultFieldMapping.new('broken mapping') }.
20
20
  to raise_error(Topographer::InvalidMappingError)
21
21
  end
22
22
  end
@@ -32,7 +32,7 @@ describe Importer::Mapper::DefaultFieldMapping do
32
32
  expect(result.errors.values).to include('FAILURE')
33
33
  end
34
34
  it 'should not rescue Exceptions that do not inherit from standard error' do
35
- mapper = Importer::Mapper::DefaultFieldMapping.new('output_column') do
35
+ mapper = Topographer::Importer::Mapper::DefaultFieldMapping.new('output_column') do
36
36
  raise Exception, 'Field1 MUST BE 4'
37
37
  end
38
38
  expect{ mapper.process_input({'field1' => false}, result) }.to raise_error(Exception)
@@ -1,25 +1,25 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Importer::Mapper::FieldMapping do
4
- let(:required_simple_mapping) { Importer::Mapper::FieldMapping.new(true, ['field1'], 'output_column') }
3
+ describe Topographer::Importer::Mapper::FieldMapping do
4
+ let(:required_simple_mapping) { Topographer::Importer::Mapper::FieldMapping.new(true, ['field1'], 'output_column') }
5
5
  let(:required_simple_mapping_with_validation) do
6
- Importer::Mapper::FieldMapping.new(true, ['field1'], 'output_column') do |input|
6
+ Topographer::Importer::Mapper::FieldMapping.new(true, ['field1'], 'output_column') do |input|
7
7
  if input['field1'] != 4
8
8
  raise 'Field1 MUST BE 4'
9
9
  end
10
10
  end
11
11
  end
12
12
  let(:required_complex_mapping) do
13
- Importer::Mapper::FieldMapping.new(true, ['field1', 'field2', 'field3'], 'output_column') do |input|
13
+ Topographer::Importer::Mapper::FieldMapping.new(true, ['field1', 'field2', 'field3'], 'output_column') do |input|
14
14
  if input['field1'] != 4
15
15
  raise 'Field1 MUST BE 4'
16
16
  end
17
17
  input.values.flatten.inject(0) {|sum, x| sum+x}
18
18
  end
19
19
  end
20
- let(:optional_simple_mapping) { Importer::Mapper::FieldMapping.new(false, 'field1', 'output_column') }
20
+ let(:optional_simple_mapping) { Topographer::Importer::Mapper::FieldMapping.new(false, 'field1', 'output_column') }
21
21
  let(:optional_complex_mapping) do
22
- Importer::Mapper::FieldMapping.new(false, ['field1', 'field2', 'field3'], 'output_column') do |input|
22
+ Topographer::Importer::Mapper::FieldMapping.new(false, ['field1', 'field2', 'field3'], 'output_column') do |input|
23
23
  if input['field1'] != 4
24
24
  raise 'Field1 MUST BE 4'
25
25
  end
@@ -32,7 +32,7 @@ describe Importer::Mapper::FieldMapping do
32
32
  let(:invalid_complex_input) do
33
33
  {'field1' => 3, 'field2' => 4, 'field3' => 5}
34
34
  end
35
- let(:result) { Importer::Mapper::Result.new('test') }
35
+ let(:result) { Topographer::Importer::Mapper::Result.new('test') }
36
36
  describe '#process_input' do
37
37
  context 'required mappings' do
38
38
  it 'maps required simple mappings when input is valid' do
@@ -116,7 +116,7 @@ describe Importer::Mapper::FieldMapping do
116
116
  expect(result.data['output_column']).to eql(false)
117
117
  end
118
118
  it 'should not rescue Exceptions that do not inherit from standard error' do
119
- mapper = Importer::Mapper::FieldMapping.new(true, 'field1', 'output_column') do |input|
119
+ mapper = Topographer::Importer::Mapper::FieldMapping.new(true, 'field1', 'output_column') do |input|
120
120
  raise Exception, 'Field1 MUST BE 4'
121
121
  end
122
122
  expect{ mapper.process_input({'field1' => false}, result) }.to raise_error(Exception)
@@ -1,8 +1,8 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Importer::Mapper::ValidationFieldMapping do
3
+ describe Topographer::Importer::Mapper::ValidationFieldMapping do
4
4
  let(:validation_mapping) do
5
- Importer::Mapper::ValidationFieldMapping.new('test mapping', ['field1', 'field2', 'field3']) do |input|
5
+ Topographer::Importer::Mapper::ValidationFieldMapping.new('test mapping', ['field1', 'field2', 'field3']) do |input|
6
6
  sum = input.values.flatten.inject(0) {|sum, x| sum+x}
7
7
  raise 'Sum must be 15' if sum != 15
8
8
  end
@@ -13,10 +13,10 @@ describe Importer::Mapper::ValidationFieldMapping do
13
13
  let(:invalid_input) do
14
14
  {'field1' => 3, 'field2' => 4, 'field3' => 5}
15
15
  end
16
- let(:result) { Importer::Mapper::Result.new('test') }
16
+ let(:result) { Topographer::Importer::Mapper::Result.new('test') }
17
17
  describe '#initialize' do
18
18
  it 'should not create a validation mapping without a behavior block' do
19
- expect { Importer::Mapper::ValidationFieldMapping.new('test mapping', ['field1', 'field2', 'field3']) }.
19
+ expect { Topographer::Importer::Mapper::ValidationFieldMapping.new('test mapping', ['field1', 'field2', 'field3']) }.
20
20
  to raise_error(Topographer::InvalidMappingError)
21
21
  end
22
22
  end
@@ -32,7 +32,7 @@ describe Importer::Mapper::ValidationFieldMapping do
32
32
  expect(result.errors.values).to include('Sum must be 15')
33
33
  end
34
34
  it 'should not rescue Exceptions that do not inherit from standard error' do
35
- mapper = Importer::Mapper::ValidationFieldMapping.new('test mapping', ['field1', 'field2', 'field3']) do |input|
35
+ mapper = Topographer::Importer::Mapper::ValidationFieldMapping.new('test mapping', ['field1', 'field2', 'field3']) do |input|
36
36
  sum = input.values.flatten.inject(0) {|sum, x| sum+x}
37
37
  raise Exception, 'Sum must be 15' if sum != 15
38
38
  end
@@ -1,24 +1,24 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Importer::Mapper do
3
+ describe Topographer::Importer::Mapper do
4
4
  describe '.build_mapper' do
5
5
  describe 'required mappings' do
6
6
  it 'can require a one to one field mapping' do
7
- mapper = Importer::Mapper.build_mapper(Object) do |m|
7
+ mapper = Topographer::Importer::Mapper.build_mapper(Object) do |m|
8
8
  m.required_mapping 'Field1', 'field_1'
9
9
  end
10
10
  mapper.required_columns.should include("Field1")
11
11
  mapper.output_fields.should include('field_1')
12
12
  end
13
13
  it 'can require a many to one field mapping' do
14
- mapper = Importer::Mapper.build_mapper(Object) do |m|
14
+ mapper = Topographer::Importer::Mapper.build_mapper(Object) do |m|
15
15
  m.required_mapping ['Field1', 'Field2'], 'field_1'
16
16
  end
17
17
  mapper.required_columns.should include("Field1", "Field2")
18
18
  mapper.output_fields.should include('field_1')
19
19
  end
20
20
  it 'cannot require a one to many field mapping' do
21
- expect { mapper = Importer::Mapper.build_mapper(Object) do |m|
21
+ expect { mapper = Topographer::Importer::Mapper.build_mapper(Object) do |m|
22
22
  m.required_mapping 'Field1', ['field_1', 'field_2']
23
23
  end
24
24
  }.to raise_error(Topographer::InvalidMappingError)
@@ -26,21 +26,21 @@ describe Importer::Mapper do
26
26
  end
27
27
  describe 'optional mappings' do
28
28
  it 'can create an optional one to one field mapping' do
29
- mapper = Importer::Mapper.build_mapper(Object) do |m|
29
+ mapper = Topographer::Importer::Mapper.build_mapper(Object) do |m|
30
30
  m.optional_mapping 'Field1', 'field_1'
31
31
  end
32
32
  mapper.optional_columns.should include("Field1")
33
33
  mapper.output_fields.should include('field_1')
34
34
  end
35
35
  it 'can create an optional many to one field mapping' do
36
- mapper = Importer::Mapper.build_mapper(Object) do |m|
36
+ mapper = Topographer::Importer::Mapper.build_mapper(Object) do |m|
37
37
  m.optional_mapping ['Field1', 'Field2'], 'field_1'
38
38
  end
39
39
  mapper.optional_columns.should include("Field1", "Field2")
40
40
  mapper.output_fields.should include('field_1')
41
41
  end
42
42
  it 'cannot create an optional one to many field mapping' do
43
- expect { mapper = Importer::Mapper.build_mapper(Object) do |m|
43
+ expect { mapper = Topographer::Importer::Mapper.build_mapper(Object) do |m|
44
44
  m.optional_mapping 'Field1', ['field_1', 'field_2']
45
45
  end
46
46
  }.to raise_error(Topographer::InvalidMappingError)
@@ -48,7 +48,7 @@ describe Importer::Mapper do
48
48
  end
49
49
  describe 'ignored mappings' do
50
50
  it 'can ignore a column' do
51
- mapper = Importer::Mapper.build_mapper(Object) do |m|
51
+ mapper = Topographer::Importer::Mapper.build_mapper(Object) do |m|
52
52
  m.ignored_column 'Field1'
53
53
  end
54
54
  mapper.ignored_columns.should include('Field1')
@@ -56,21 +56,21 @@ describe Importer::Mapper do
56
56
  end
57
57
 
58
58
  it 'raises an error when adding a mapping whose output is already an output of another mapping' do
59
- expect { Importer::Mapper.build_mapper(Object) do |m|
59
+ expect { Topographer::Importer::Mapper.build_mapper(Object) do |m|
60
60
  m.optional_mapping 'Field1', 'field_1'
61
61
  m.required_mapping 'Field2', 'field_1'
62
62
  end }.to raise_error(Topographer::InvalidMappingError)
63
63
  end
64
64
 
65
65
  it 'raises an error when adding a ignored column, which is already an input of another mapping' do
66
- expect { Importer::Mapper.build_mapper(Object) do |m|
66
+ expect { Topographer::Importer::Mapper.build_mapper(Object) do |m|
67
67
  m.optional_mapping 'Field1', 'field_1'
68
68
  m.ignored_column 'Field1'
69
69
  end }.to raise_error(Topographer::InvalidMappingError)
70
70
  end
71
71
 
72
72
  it 'raises an error when adding a mapped column which has already been ignored' do
73
- expect { Importer::Mapper.build_mapper(Object) do |m|
73
+ expect { Topographer::Importer::Mapper.build_mapper(Object) do |m|
74
74
  m.ignored_column 'Field1'
75
75
  m.optional_mapping 'Field1', 'field_1'
76
76
  end }.to raise_error(Topographer::InvalidMappingError)
@@ -79,7 +79,7 @@ describe Importer::Mapper do
79
79
 
80
80
  describe 'validation mappings' do
81
81
  it 'can create a single column validation' do
82
- mapper = Importer::Mapper.build_mapper(Object) do |m|
82
+ mapper = Topographer::Importer::Mapper.build_mapper(Object) do |m|
83
83
  m.validation_field 'Field 1 Validation', 'Field1' do |input|
84
84
  raise 'No Input' unless input
85
85
  end
@@ -88,7 +88,7 @@ describe Importer::Mapper do
88
88
  expect(mapper.output_fields.empty?).to be_true
89
89
  end
90
90
  it 'can create a multicolumn validation' do
91
- mapper = Importer::Mapper.build_mapper(Object) do |m|
91
+ mapper = Topographer::Importer::Mapper.build_mapper(Object) do |m|
92
92
  m.validation_field 'Multicolumn Validation', ['Field1', 'Field2'] do |input|
93
93
  raise 'No Input' unless input
94
94
  end
@@ -98,7 +98,7 @@ describe Importer::Mapper do
98
98
  end
99
99
  it 'raises an error if a validation name is repeated' do
100
100
  expect {
101
- mapper = Importer::Mapper.build_mapper(Object) do |m|
101
+ mapper = Topographer::Importer::Mapper.build_mapper(Object) do |m|
102
102
  m.validation_field 'Field 1 Validation', 'Field1' do |input|
103
103
  raise 'No Input' unless input
104
104
  end
@@ -110,7 +110,7 @@ describe Importer::Mapper do
110
110
 
111
111
  describe 'static mappings' do
112
112
  it 'can create a static mapping' do
113
- mapper = Importer::Mapper.build_mapper(Object) do |m|
113
+ mapper = Topographer::Importer::Mapper.build_mapper(Object) do |m|
114
114
  m.default_value 'Field1' do
115
115
  34
116
116
  end
@@ -119,14 +119,14 @@ describe Importer::Mapper do
119
119
  expect(mapper.output_fields).to eql(['Field1'])
120
120
  end
121
121
  it 'cannot create a static mapping to many columns' do
122
- expect { mapper = Importer::Mapper.build_mapper(Object) do |m|
122
+ expect { mapper = Topographer::Importer::Mapper.build_mapper(Object) do |m|
123
123
  m.default_value ['Field1', 'Field2'] do
124
124
  34
125
125
  end
126
126
  end }.to raise_error(Topographer::InvalidMappingError)
127
127
  end
128
128
  it 'cannot add a static mapping to a field that has already been mapped' do
129
- expect { mapper = Importer::Mapper.build_mapper(Object) do |m|
129
+ expect { mapper = Topographer::Importer::Mapper.build_mapper(Object) do |m|
130
130
  m.required_mapping 'Field1', 'field1'
131
131
  m.default_value 'field1' do
132
132
  34
@@ -136,7 +136,7 @@ describe Importer::Mapper do
136
136
  end
137
137
 
138
138
  it 'associates the model class with the mapper instance' do
139
- mapper = Importer::Mapper.build_mapper(Object) do |m|
139
+ mapper = Topographer::Importer::Mapper.build_mapper(Object) do |m|
140
140
  m.ignored_column 'Field1'
141
141
  m.optional_mapping 'Field2', 'field_1'
142
142
  end
@@ -145,7 +145,7 @@ describe Importer::Mapper do
145
145
  end
146
146
 
147
147
  describe '#key_field' do
148
- let(:mapper) { Importer::Mapper.new(Object) }
148
+ let(:mapper) { Topographer::Importer::Mapper.new(Object) }
149
149
  it 'should add a key field to the list of key fields' do
150
150
  mapper.key_field 'Field1'
151
151
  expect(mapper.key_fields).to eql(['Field1'])
@@ -165,7 +165,7 @@ describe Importer::Mapper do
165
165
 
166
166
  describe '#input_structure_valid?' do
167
167
  let(:mapper) do
168
- Importer::Mapper.build_mapper(Object) do |m|
168
+ Topographer::Importer::Mapper.build_mapper(Object) do |m|
169
169
  m.required_mapping 'Field1', 'field1'
170
170
  m.required_mapping 'Field2', 'field_4'
171
171
  m.optional_mapping 'Field3', 'field_6'
@@ -203,7 +203,7 @@ describe Importer::Mapper do
203
203
 
204
204
  describe '#bad_columns' do
205
205
  let(:mapper) do
206
- Importer::Mapper.build_mapper(Object) do |m|
206
+ Topographer::Importer::Mapper.build_mapper(Object) do |m|
207
207
  m.required_mapping 'Field1', 'field1'
208
208
  m.required_mapping 'Field2', 'field_4'
209
209
  m.validation_field('test validation 2', 'Field2') { |input| raise 'FAILURE' if !input }
@@ -222,7 +222,7 @@ describe Importer::Mapper do
222
222
 
223
223
  describe '#missing_columns' do
224
224
  let(:mapper) do
225
- Importer::Mapper.build_mapper(Object) do |m|
225
+ Topographer::Importer::Mapper.build_mapper(Object) do |m|
226
226
  m.required_mapping 'Field1', 'field1'
227
227
  m.required_mapping 'Field2', 'field_4'
228
228
  m.optional_mapping 'Field3', 'field_6'
@@ -240,7 +240,7 @@ describe Importer::Mapper do
240
240
 
241
241
  describe '#map_input' do
242
242
  let(:mapper) do
243
- Importer::Mapper.build_mapper(Object) do |m|
243
+ Topographer::Importer::Mapper.build_mapper(Object) do |m|
244
244
  m.required_mapping 'Field1', 'field_1'
245
245
  m.required_mapping ['Field1', 'Field2'], 'field_2'
246
246
  m.validation_field('Field2 Validation', 'Field2') { |input| raise 'FAILURE' if input['Field2'] != 'datum2'}
@@ -1,10 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Importer::Strategy::Base do
3
+ describe Topographer::Importer::Strategy::Base do
4
4
  let(:mapper) do
5
5
  double('Mapper')
6
6
  end
7
- let(:strategy) { Importer::Strategy::Base.new(mapper) }
7
+ let(:strategy) { Topographer::Importer::Strategy::Base.new(mapper) }
8
8
  let(:status) do
9
9
  double 'Status',
10
10
  errors?: false
@@ -15,7 +15,7 @@ describe Importer::Strategy::Base do
15
15
  end
16
16
  describe '#initialize' do
17
17
  it 'creates a new Strategy instance with the given mapper' do
18
- strategy = Importer::Strategy::Base.new(mapper)
18
+ strategy = Topographer::Importer::Strategy::Base.new(mapper)
19
19
  strategy.instance_variable_get(:@mapper).should be(mapper)
20
20
  end
21
21
  end
@@ -2,9 +2,9 @@ require 'spec_helper'
2
2
  require 'ostruct'
3
3
  require_relative 'mapped_model'
4
4
 
5
- describe Importer::Strategy::CreateOrUpdateRecord do
5
+ describe Topographer::Importer::Strategy::CreateOrUpdateRecord do
6
6
 
7
- let(:strategy) { Importer::Strategy::CreateOrUpdateRecord.new(MappedModel.get_mapper) }
7
+ let(:strategy) { Topographer::Importer::Strategy::CreateOrUpdateRecord.new(MappedModel.get_mapper) }
8
8
  let(:input) do
9
9
  double 'Data',
10
10
  source_identifier: 'record',
@@ -20,7 +20,7 @@ describe Importer::Strategy::CreateOrUpdateRecord do
20
20
 
21
21
  describe '#import_record' do
22
22
  it 'should return an ImportStatus object' do
23
- expect(strategy.import_record(input)).to be_a Importer::Strategy::ImportStatus
23
+ expect(strategy.import_record(input)).to be_a Topographer::Importer::Strategy::ImportStatus
24
24
  end
25
25
  it 'should import a record from valid input' do
26
26
  MappedModel.any_instance.should_receive(:save).once
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
  require 'ostruct'
3
3
  require_relative 'mapped_model'
4
4
 
5
- describe Importer::Strategy::ImportNewRecord do
5
+ describe Topographer::Importer::Strategy::ImportNewRecord do
6
6
  let(:valid_status) do
7
7
  double 'Result',
8
8
  source_identifier: 'row1',
@@ -22,7 +22,7 @@ describe Importer::Strategy::ImportNewRecord do
22
22
  double('Mapper', map_input: valid_status, model_class: MappedModel)
23
23
  end
24
24
 
25
- let(:strategy) { Importer::Strategy::ImportNewRecord.new(MappedModel.get_mapper) }
25
+ let(:strategy) { Topographer::Importer::Strategy::ImportNewRecord.new(MappedModel.get_mapper) }
26
26
  let(:input) do
27
27
  double 'Data',
28
28
  source_identifier: 'record',
@@ -32,14 +32,14 @@ describe Importer::Strategy::ImportNewRecord do
32
32
 
33
33
  describe '#initialize' do
34
34
  it 'creates a new Strategy instance with the given mapper' do
35
- strategy = Importer::Strategy::ImportNewRecord.new(mapper)
35
+ strategy = Topographer::Importer::Strategy::ImportNewRecord.new(mapper)
36
36
  strategy.instance_variable_get(:@mapper).should be(mapper)
37
37
  end
38
38
  end
39
39
 
40
40
  describe '#import_record' do
41
41
  it 'should return an ImportStatus object' do
42
- expect(strategy.import_record(input)).to be_a Importer::Strategy::ImportStatus
42
+ expect(strategy.import_record(input)).to be_a Topographer::Importer::Strategy::ImportStatus
43
43
  end
44
44
  it 'should import a record from valid input' do
45
45
  MappedModel.any_instance.should_receive(:save).once
@@ -48,7 +48,7 @@ describe Importer::Strategy::ImportNewRecord do
48
48
  end
49
49
  it 'should not import a record from invalid input' do
50
50
  mapper.stub(:map_input).and_return(invalid_result)
51
- strategy = Importer::Strategy::ImportNewRecord.new(mapper)
51
+ strategy = Topographer::Importer::Strategy::ImportNewRecord.new(mapper)
52
52
  MappedModel.any_instance.should_not_receive(:save)
53
53
  import_status = strategy.import_record(input)
54
54
  expect(import_status.errors?).to be true
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Importer::Strategy::ImportStatus do
4
- let(:status) {Importer::Strategy::ImportStatus.new('row1')}
3
+ describe Topographer::Importer::Strategy::ImportStatus do
4
+ let(:status) {Topographer::Importer::Strategy::ImportStatus.new('row1')}
5
5
  describe '#add_error' do
6
6
  it 'should add errors' do
7
7
  status.add_error(:validation, 'ERROR')
@@ -22,7 +22,7 @@ class MappedModel < OpenStruct
22
22
  end
23
23
 
24
24
  def self.get_mapper
25
- Importer::Mapper.build_mapper(MappedModel) do |mapping|
25
+ Topographer::Importer::Mapper.build_mapper(MappedModel) do |mapping|
26
26
  mapping.required_mapping 'Field1', 'field_1'
27
27
  mapping.required_mapping 'Field2', 'field_2'
28
28
  mapping.optional_mapping 'Field3', 'field_3'
@@ -2,9 +2,9 @@ require 'spec_helper'
2
2
  require 'ostruct'
3
3
  require_relative 'mapped_model'
4
4
 
5
- describe Importer::Strategy::UpdateRecord do
5
+ describe Topographer::Importer::Strategy::UpdateRecord do
6
6
 
7
- let(:strategy) { Importer::Strategy::UpdateRecord.new(MappedModel.get_mapper) }
7
+ let(:strategy) { Topographer::Importer::Strategy::UpdateRecord.new(MappedModel.get_mapper) }
8
8
  let(:input) do
9
9
  double 'Data',
10
10
  source_identifier: 'record',
@@ -19,7 +19,7 @@ describe Importer::Strategy::UpdateRecord do
19
19
 
20
20
  describe '#import_record' do
21
21
  it 'should return an ImportStatus object' do
22
- expect(strategy.import_record(input)).to be_a Importer::Strategy::ImportStatus
22
+ expect(strategy.import_record(input)).to be_a Topographer::Importer::Strategy::ImportStatus
23
23
  end
24
24
  it 'should import a record from valid input' do
25
25
  MappedModel.any_instance.should_receive(:save).once
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: topographer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Simpson
@@ -15,14 +15,14 @@ dependencies:
15
15
  name: activesupport
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - '>='
18
+ - - ! '>='
19
19
  - !ruby/object:Gem::Version
20
20
  version: '3'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - '>='
25
+ - - ! '>='
26
26
  - !ruby/object:Gem::Version
27
27
  version: '3'
28
28
  - !ruby/object:Gem::Dependency
@@ -43,28 +43,28 @@ dependencies:
43
43
  name: rake
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - '>='
46
+ - - ! '>='
47
47
  - !ruby/object:Gem::Version
48
48
  version: '0'
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - '>='
53
+ - - ! '>='
54
54
  - !ruby/object:Gem::Version
55
55
  version: '0'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: rspec
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - '>='
60
+ - - ! '>='
61
61
  - !ruby/object:Gem::Version
62
62
  version: '0'
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - '>='
67
+ - - ! '>='
68
68
  - !ruby/object:Gem::Version
69
69
  version: '0'
70
70
  description: Topographer enables importing of models from various input sources.
@@ -139,17 +139,17 @@ require_paths:
139
139
  - lib
140
140
  required_ruby_version: !ruby/object:Gem::Requirement
141
141
  requirements:
142
- - - '>='
142
+ - - ! '>='
143
143
  - !ruby/object:Gem::Version
144
144
  version: '0'
145
145
  required_rubygems_version: !ruby/object:Gem::Requirement
146
146
  requirements:
147
- - - '>='
147
+ - - ! '>='
148
148
  - !ruby/object:Gem::Version
149
149
  version: '0'
150
150
  requirements: []
151
151
  rubyforge_project:
152
- rubygems_version: 2.1.11
152
+ rubygems_version: 2.1.10
153
153
  signing_key:
154
154
  specification_version: 4
155
155
  summary: Topographer allows the mapping of columnar input data to fields for active
@@ -173,3 +173,4 @@ test_files:
173
173
  - spec/Cartographer/importer/strategy/mapped_model.rb
174
174
  - spec/Cartographer/importer/strategy/update_record_spec.rb
175
175
  - spec/spec_helper.rb
176
+ has_rdoc: