aratak-syncdb 0.0.5 → 0.0.6
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.
- data/lib/synchronizator.rb +19 -6
- data/syncdb.gemspec +2 -2
- metadata +3 -4
data/lib/synchronizator.rb
CHANGED
@@ -5,8 +5,9 @@ module Syncdb
|
|
5
5
|
class Synchronizator
|
6
6
|
include Singleton
|
7
7
|
|
8
|
+
#
|
8
9
|
def self.sync(array_of_hashs, model_objects, model_name, &closure)
|
9
|
-
|
10
|
+
self.p("synchronizator started", true)
|
10
11
|
@old_objects = model_objects
|
11
12
|
@klass = model_name
|
12
13
|
@objects_for_adding = []
|
@@ -31,38 +32,50 @@ module Syncdb
|
|
31
32
|
|
32
33
|
self.remove_models
|
33
34
|
self.add_models
|
34
|
-
|
35
|
+
self.p("synchronize success")
|
35
36
|
end
|
36
37
|
|
37
38
|
private
|
38
39
|
|
40
|
+
# return array of existing models,
|
41
|
+
# who should be +removed+ from db
|
39
42
|
def self.models_for_removing
|
40
43
|
# closure = @closure
|
41
44
|
objs = @old_objects.minus @new_objects, &@closure
|
42
|
-
|
45
|
+
self.p("--> should be removed: #{objs.size}")
|
43
46
|
@objects_for_removing = objs
|
44
47
|
end
|
45
48
|
|
49
|
+
# return array of new (just created) models,
|
50
|
+
# who should be +added+ to db
|
46
51
|
def self.models_for_adding
|
47
52
|
# closure = @closure
|
48
53
|
objs = @new_objects.minus @old_objects, &@closure
|
49
|
-
|
54
|
+
self.p("should be added: #{objs.size}")
|
50
55
|
@objects_for_adding = objs
|
51
56
|
end
|
52
57
|
|
58
|
+
# remove models, who has been fetched into #models_for_removing
|
53
59
|
def self.remove_models
|
54
|
-
|
60
|
+
self.p("removing models") unless @objects_for_removing.empty?
|
55
61
|
@objects_for_removing.each do |obj|
|
56
62
|
obj.destroy
|
57
63
|
end
|
58
64
|
end
|
59
65
|
|
66
|
+
# remove models, who has been fetched into #models_for_adding
|
60
67
|
def self.add_models
|
61
|
-
|
68
|
+
self.p("adding models...") unless @objects_for_adding.empty?
|
62
69
|
@objects_for_adding.each do |obj|
|
63
70
|
obj.save!
|
64
71
|
end
|
65
72
|
end
|
66
73
|
|
74
|
+
# puts into console service information
|
75
|
+
def self.p text, is_primary = false
|
76
|
+
marker = is_primary ? ">>" : "-->"
|
77
|
+
puts "#{marker} #{text};"
|
78
|
+
end
|
79
|
+
|
67
80
|
end
|
68
81
|
end
|
data/syncdb.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
spec = Gem::Specification.new do |s|
|
2
2
|
s.name = "syncdb"
|
3
|
-
s.version = '0.0.
|
3
|
+
s.version = '0.0.6'
|
4
4
|
s.summary = "Synchronization file and db-table."
|
5
5
|
s.description = "syncdb: description will be here."
|
6
6
|
s.files = ['README', 'syncdb.gemspec', 'lib/syncdb.rb', 'lib/array_mix.rb', 'lib/synchronizator.rb']
|
@@ -11,7 +11,7 @@ spec = Gem::Specification.new do |s|
|
|
11
11
|
s.rdoc_options = ["--inline-source", "--charset=UTF-8"]
|
12
12
|
s.author = "Alexey Osipenko"
|
13
13
|
s.email = "alexey.osipenko@gmail.com"
|
14
|
-
s.homepage = "http://
|
14
|
+
s.homepage = "http://wiki.github.com/aratak/syncdb"
|
15
15
|
|
16
16
|
s.add_dependency('json', '>=1.1.4')
|
17
17
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aratak-syncdb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexey Osipenko
|
@@ -40,8 +40,7 @@ files:
|
|
40
40
|
- lib/array_mix.rb
|
41
41
|
- lib/synchronizator.rb
|
42
42
|
has_rdoc: true
|
43
|
-
homepage: http://
|
44
|
-
licenses:
|
43
|
+
homepage: http://wiki.github.com/aratak/syncdb
|
45
44
|
post_install_message:
|
46
45
|
rdoc_options:
|
47
46
|
- --inline-source
|
@@ -63,7 +62,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
63
62
|
requirements: []
|
64
63
|
|
65
64
|
rubyforge_project:
|
66
|
-
rubygems_version: 1.
|
65
|
+
rubygems_version: 1.2.0
|
67
66
|
signing_key:
|
68
67
|
specification_version: 2
|
69
68
|
summary: Synchronization file and db-table.
|