bridge_cache 0.0.4 → 0.0.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0021ee15201847e000463cbb0f01317c18f4ae7d
4
- data.tar.gz: cad79a26fdf26d6ad4611ed98df2cef68a03ca03
3
+ metadata.gz: 07fea4f39114b3ebd89681fc161b102aa38084e8
4
+ data.tar.gz: 7470148ae9f315a9d8934ac876a5cc4fe9e51b14
5
5
  SHA512:
6
- metadata.gz: a7d048f5fc7198f0cfd2f218417d01bb7756eec2e47e120b555ea56d9ba4fde693c1c4aa0906254c60d169a186b2d751ed60877e0d03526449ad2f9b1d0e81f3
7
- data.tar.gz: 55eab320a444fe1807dbffa48108a2ac5631707d0463f8dd6498f7a0400aad73a1a52f8aaa28e13400514f401ad347aa1311e1efc567b10b96bbce18cf7a53d8
6
+ metadata.gz: ac00747411dd23c9ca6393957f932f69e991e99458550c1b83360732ec5a20d3150d932a75d3fe787d28de0f39d00be3ae408bc90888292fc6e26dc50f41312a
7
+ data.tar.gz: 04c3008fe94fb312df966f72c28bc539d43a84854cd81b5f756e89b2fc0cedfdec000227ebe9d8e6beea5d507c24b959de0db7b1eaca2fa1896e748140e50704
@@ -1,14 +1,11 @@
1
1
  module BridgeCache
2
2
  class CourseTemplate < ActiveRecord::Base
3
+ extend BridgeCache::Data::BridgeModel
3
4
 
4
5
  belongs_to :user, foreign_key: :user_id, primary_key: :bridge_id, class_name: 'BridgeCache::User'
5
6
  belongs_to :domain, foreign_key: :domain_id, primary_key: :bridge_id, class_name: 'BridgeCache::Domain'
6
7
  belongs_to :sub_account, foreign_key: :sub_account_id, primary_key: :bridge_id, class_name: 'BridgeCache::Domain'
7
8
  has_many :enrollments, foreign_key: :course_template_id, primary_key: :bridge_id, class_name: 'BridgeCache::Enrollment'
8
9
 
9
- def self.import_from_csv(file_path)
10
- BridgeCache::Plugins::CSVDump::dump_to_table(self, file_path)
11
- end
12
-
13
10
  end
14
11
  end
@@ -1,11 +1,8 @@
1
1
  module BridgeCache
2
2
  class CustomField < ActiveRecord::Base
3
+ extend BridgeCache::Data::BridgeModel
3
4
 
4
5
  belongs_to :domain, foreign_key: :domain_id, primary_key: :bridge_id, class_name: 'BridgeCache::Domain'
5
6
 
6
- def self.import_from_csv(file_path)
7
- BridgeCache::Plugins::CSVDump::dump_to_table(self, file_path)
8
- end
9
-
10
7
  end
11
8
  end
@@ -1,5 +1,6 @@
1
1
  module BridgeCache
2
2
  class Domain < ActiveRecord::Base
3
+ extend BridgeCache::Data::BridgeModel
3
4
 
4
5
  has_many :domain_children, primary_key: 'bridge_id', foreign_key: 'parent_id', class_name: 'BridgeCache::Domain'
5
6
  belongs_to :domain_parent, primary_key: 'bridge_id', foreign_key: 'parent_id', class_name: 'BridgeCache::Domain'
@@ -14,9 +15,5 @@ module BridgeCache
14
15
 
15
16
  serialize :config
16
17
 
17
- def self.import_from_csv(file_path)
18
- BridgeCache::Plugins::CSVDump::dump_to_table(self, file_path)
19
- end
20
-
21
18
  end
22
19
  end
@@ -1,12 +1,9 @@
1
1
  module BridgeCache
2
2
  class Enrollment < ActiveRecord::Base
3
+ extend BridgeCache::Data::BridgeModel
3
4
 
4
5
  belongs_to :user, foreign_key: :user_id, primary_key: :bridge_id, class_name: 'BridgeCache::User'
5
6
  belongs_to :course_template, foreign_key: :course_template_id, primary_key: :bridge_id, class_name: 'BridgeCache::CourseTemplate'
6
7
 
7
- def self.import_from_csv(file_path)
8
- BridgeCache::Plugins::CSVDump::dump_to_table(self, file_path)
9
- end
10
-
11
8
  end
12
9
  end
@@ -1,12 +1,9 @@
1
1
  module BridgeCache
2
2
  class Grant < ActiveRecord::Base
3
+ extend BridgeCache::Data::BridgeModel
3
4
 
4
5
  belongs_to :user, foreign_key: :user_id, primary_key: :bridge_id, class_name: 'BridgeCache::User'
5
6
  belongs_to :domain, foreign_key: :domain_id, primary_key: :bridge_id, class_name: 'BridgeCache::Domain'
6
7
 
7
- def self.import_from_csv(file_path)
8
- BridgeCache::Plugins::CSVDump::dump_to_table(self, file_path)
9
- end
10
-
11
8
  end
12
9
  end
@@ -1,13 +1,11 @@
1
1
  module BridgeCache
2
2
  class Group < ActiveRecord::Base
3
+ extend BridgeCache::Data::BridgeModel
4
+
3
5
  self.inheritance_column = nil
4
6
 
5
7
  belongs_to :user, foreign_key: :user_id, primary_key: :bridge_id, class_name: 'BridgeCache::User'
6
8
  has_many :program_group_enrollments, foreign_key: :group_id, primary_key: :bridge_id, class_name: 'BridgeCache::ProgramGroupEnrollment'
7
9
 
8
- def self.import_from_csv(file_path)
9
- BridgeCache::Plugins::CSVDump::dump_to_table(self, file_path)
10
- end
11
-
12
10
  end
13
11
  end
@@ -1,5 +1,6 @@
1
1
  module BridgeCache
2
2
  class Program < ActiveRecord::Base
3
+ extend BridgeCache::Data::BridgeModel
3
4
 
4
5
  belongs_to :domain, foreign_key: :domain_id, primary_key: :bridge_id, class_name: 'BridgeCache::Domain'
5
6
  belongs_to :sub_account, foreign_key: :sub_account_id, primary_key: :bridge_id, class_name: 'BridgeCache::Domain'
@@ -7,9 +8,5 @@ module BridgeCache
7
8
  has_many :program_enrollments, foreign_key: :program_id, primary_key: :bridge_id, class_name: 'BridgeCache::ProgramEnrollment'
8
9
  has_many :program_group_enrollments, foreign_key: :program_id, primary_key: :bridge_id, class_name: 'BridgeCache::ProgramGroupEnrollment'
9
10
 
10
- def self.import_from_csv(file_path)
11
- BridgeCache::Plugins::CSVDump::dump_to_table(self, file_path)
12
- end
13
-
14
11
  end
15
12
  end
@@ -1,12 +1,9 @@
1
1
  module BridgeCache
2
2
  class ProgramEnrollment < ActiveRecord::Base
3
+ extend BridgeCache::Data::BridgeModel
3
4
 
4
5
  belongs_to :user, foreign_key: :user_id, primary_key: :bridge_id, class_name: 'BridgeCache::User'
5
6
  belongs_to :program, foreign_key: :program_id, primary_key: :bridge_id, class_name: 'BridgeCache::Program'
6
7
 
7
- def self.import_from_csv(file_path)
8
- BridgeCache::Plugins::CSVDump::dump_to_table(self, file_path)
9
- end
10
-
11
8
  end
12
9
  end
@@ -1,12 +1,9 @@
1
1
  module BridgeCache
2
2
  class ProgramGroupEnrollment < ActiveRecord::Base
3
+ extend BridgeCache::Data::BridgeModel
3
4
 
4
5
  belongs_to :group, foreign_key: :group_id, primary_key: :bridge_id, class_name: 'BridgeCache::Group'
5
6
  belongs_to :program, foreign_key: :program_id, primary_key: :bridge_id, class_name: 'BridgeCache::Program'
6
7
 
7
- def self.import_from_csv(file_path)
8
- BridgeCache::Plugins::CSVDump::dump_to_table(self, file_path)
9
- end
10
-
11
8
  end
12
9
  end
@@ -1,11 +1,8 @@
1
1
  module BridgeCache
2
2
  class ProgramItem < ActiveRecord::Base
3
+ extend BridgeCache::Data::BridgeModel
3
4
 
4
5
  belongs_to :program, foreign_key: :program_id, primary_key: :bridge_id, class_name: 'BridgeCache::Program'
5
6
 
6
- def self.import_from_csv(file_path)
7
- BridgeCache::Plugins::CSVDump::dump_to_table(self, file_path)
8
- end
9
-
10
7
  end
11
8
  end
@@ -1,11 +1,8 @@
1
1
  module BridgeCache
2
2
  class Tag < ActiveRecord::Base
3
+ extend BridgeCache::Data::BridgeModel
3
4
 
4
5
  has_many :taggings, foreign_key: :tag_id, primary_key: :bridge_id, class_name: 'BridgeCache::Tagging'
5
6
 
6
- def self.import_from_csv(file_path)
7
- BridgeCache::Plugins::CSVDump::dump_to_table(self, file_path)
8
- end
9
-
10
7
  end
11
8
  end
@@ -1,11 +1,9 @@
1
1
  module BridgeCache
2
2
  class Tagging < ActiveRecord::Base
3
+ extend BridgeCache::Data::BridgeModel
4
+
3
5
  belongs_to :tag, foreign_key: :tag_id, primary_key: :bridge_id, class_name: 'BridgeCache::Tag'
4
6
  belongs_to :user, foreign_key: :tagger_id, primary_key: :bridge_id, class_name: 'BridgeCache::User'
5
7
 
6
- def self.import_from_csv(file_path)
7
- BridgeCache::Plugins::CSVDump::dump_to_table(self, file_path)
8
- end
9
-
10
8
  end
11
9
  end
@@ -1,5 +1,6 @@
1
1
  module BridgeCache
2
2
  class User < ActiveRecord::Base
3
+ extend BridgeCache::Data::BridgeModel
3
4
 
4
5
  belongs_to :domain, foreign_key: :domain_id, primary_key: :bridge_id, class_name: 'BridgeCache::Domain'
5
6
  belongs_to :sub_account, foreign_key: :sub_account_id, primary_key: :bridge_id, class_name: 'BridgeCache::Domain'
@@ -12,9 +13,5 @@ module BridgeCache
12
13
 
13
14
  serialize :config
14
15
 
15
- def self.import_from_csv(file_path)
16
- BridgeCache::Plugins::CSVDump::dump_to_table(self, file_path)
17
- end
18
-
19
16
  end
20
17
  end
@@ -0,0 +1,11 @@
1
+ module BridgeCache::Data
2
+ module BridgeModel
3
+ def import_from_csv(file_path)
4
+ BridgeCache::Plugins::CSVDump::dump_to_table(self, file_path)
5
+ end
6
+
7
+ def create_from_csv_row(row)
8
+ BridgeCache::Plugins::CSVDump::dump_row(self, row)
9
+ end
10
+ end
11
+ end
@@ -13,9 +13,8 @@ module BridgeCache::Plugins
13
13
  total += 1
14
14
  end
15
15
  CSV.foreach(file_path, headers: true) do |row|
16
- row = self.remove_bad_columns(clazz, row)
17
16
  if count < MAX_ROW_INTERVAL
18
- rows << clazz.new(BridgeCache::Plugins::DataTransform::set_bridge_id(row).to_h)
17
+ rows << initialze_row(clazz, row)
19
18
  end
20
19
  if count % MAX_ROW_INTERVAL == 0 || count == total
21
20
  dump_rows(clazz, rows)
@@ -26,8 +25,23 @@ module BridgeCache::Plugins
26
25
  end
27
26
  end
28
27
 
28
+ def self.dump_row(clazz, row)
29
+ instance = initialze_row(clazz, row)
30
+ dump_rows([instance])
31
+ end
32
+
33
+ private
34
+
35
+ def self.initialze_row(clazz, row)
36
+ instance = clazz.find_or_create_by(bridge_id: row['id'])
37
+ instance.assign_attributes(remove_bad_columns(clazz, BridgeCache::Plugins::DataTransform::set_bridge_id(row).to_h))
38
+ instance
39
+ end
40
+
29
41
  def self.dump_rows(clazz, rows)
30
- rows.each {|row| row.save!}
42
+ rows.each do |row|
43
+ row.save! if row.changed?
44
+ end
31
45
  end
32
46
 
33
47
  def self.remove_bad_columns(clazz, row)
@@ -1,3 +1,3 @@
1
1
  module BridgeCache
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bridge_cache
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - jshaffer
@@ -136,6 +136,20 @@ dependencies:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: pg
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
139
153
  description: A mountable engine for bridge data storage
140
154
  email:
141
155
  - jshaffer@instructure.com
@@ -179,6 +193,7 @@ files:
179
193
  - db/migrate/20170518211754_create_bridge_cache_taggings.rb
180
194
  - db/migrate/20170518211817_create_bridge_cache_course_templates.rb
181
195
  - lib/bridge_cache.rb
196
+ - lib/bridge_cache/data/bridge_model.rb
182
197
  - lib/bridge_cache/engine.rb
183
198
  - lib/bridge_cache/plugins/csv_dump.rb
184
199
  - lib/bridge_cache/plugins/data_transform.rb