bridge_cache 0.0.4 → 0.0.5

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
  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