aratak-syncdb 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README +13 -1
- data/lib/syncdb.rb +38 -5
- data/syncdb.gemspec +3 -3
- metadata +14 -5
data/README
CHANGED
@@ -2,4 +2,16 @@ This is gem for automaticly syncronization db table (Model, I mean) and file in
|
|
2
2
|
|
3
3
|
A-la lockdown's init.rb
|
4
4
|
|
5
|
-
# TODO: fill README
|
5
|
+
# TODO: fill README
|
6
|
+
|
7
|
+
Example:
|
8
|
+
|
9
|
+
array_of_hash = [
|
10
|
+
{:name => 'Harry', :surname => 'Potter', :age => 15},
|
11
|
+
{:name => 'Gendalf', :surname => 'Gray', :age => 524},
|
12
|
+
{:name => 'Gerold', :surname => 'Witcher', :age => 164},
|
13
|
+
{:name => 'Darth', :surname => 'Vader', :age => 50}
|
14
|
+
]<br />
|
15
|
+
Syncdb.sync array_of_hash, Person.all do |hash_item, model_item| do
|
16
|
+
(hash_item.surname == model_item.surname)
|
17
|
+
end
|
data/lib/syncdb.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
|
-
|
1
|
+
require File.dirname(__FILE__) + '/synchronizator'
|
2
|
+
require 'json'
|
2
3
|
|
4
|
+
module Syncdb
|
3
5
|
VERSION = '0.0.1'
|
4
6
|
|
5
7
|
# Returns the version string for the library.
|
@@ -20,10 +22,41 @@ module Syncdb
|
|
20
22
|
end
|
21
23
|
|
22
24
|
|
23
|
-
|
24
|
-
|
25
|
+
# Returt +true+, if syncronization passed
|
26
|
+
#
|
27
|
+
# +array_of_hashs+ - Array of Hash objects.
|
28
|
+
# Each hash should be like params[:model_name] from
|
29
|
+
# CGI in ActiveController
|
30
|
+
# [
|
31
|
+
# {:attr_name => value},
|
32
|
+
# {:attr_name => value},
|
33
|
+
# {:attr_name => value},
|
34
|
+
# ]
|
35
|
+
#
|
36
|
+
# +model_objects+ - +Array+ of objects, who should be syncronized.
|
37
|
+
# Should be like result of +find+ method of Model:
|
38
|
+
# Modelname.find :all
|
39
|
+
#
|
40
|
+
# +closure+ can get two variables: +hash_item+ and +model_item+
|
41
|
+
# +hash_item+ - it's specimen of item +array_of_hashs+,
|
42
|
+
# +model_item+ - specimen of item +model_objects+
|
43
|
+
#
|
44
|
+
# Should return +true+ or +false+
|
45
|
+
# If return +true+, +hash_item+ and +model_item+ is equals
|
46
|
+
#
|
47
|
+
# array_of_hash = [
|
48
|
+
# {:name => 'Harry', :surname => 'Potter', :age => 15},
|
49
|
+
# {:name => 'Gendalf', :surname => 'Gray', :age => 524},
|
50
|
+
# {:name => 'Gerold', :surname => 'Witcher', :age => 164},
|
51
|
+
# {:name => 'Darth', :surname => 'Vader', :age => 50}
|
52
|
+
# ]<br />
|
53
|
+
# Syncdb.sync array_of_hash, Person.all do |hash_item, model_item| do
|
54
|
+
# (hash_item.surname == model_item.surname)
|
55
|
+
# end
|
56
|
+
#
|
57
|
+
def self.sync array_of_hashs, model_objects, model_name, &closure
|
58
|
+
|
59
|
+
Syncdb::Synchronizator.sync array_of_hashs, model_objects, model_name, &closure
|
25
60
|
end
|
26
|
-
|
27
|
-
|
28
61
|
|
29
62
|
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.2'
|
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']
|
@@ -9,10 +9,10 @@ spec = Gem::Specification.new do |s|
|
|
9
9
|
|
10
10
|
s.has_rdoc = true
|
11
11
|
s.rdoc_options = ["--inline-source", "--charset=UTF-8"]
|
12
|
-
s.author = "
|
12
|
+
s.author = "Alexey Osipenko"
|
13
13
|
s.email = "alexey.osipenko@gmail.com"
|
14
14
|
s.homepage = "http://alexey.osipenko.name/ruby/syncdb"
|
15
15
|
|
16
|
-
|
16
|
+
s.add_dependency('json', '>=1.1.4')
|
17
17
|
|
18
18
|
end
|
metadata
CHANGED
@@ -1,18 +1,27 @@
|
|
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.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Alexey Osipenko
|
8
8
|
autorequire: syncdb
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-05-16 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
|
-
dependencies:
|
15
|
-
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: json
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.1.4
|
24
|
+
version:
|
16
25
|
description: "syncdb: description will be here."
|
17
26
|
email: alexey.osipenko@gmail.com
|
18
27
|
executables: []
|