synchronisable 1.2.7 → 1.3.0

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: d9c48ad6741450baf20ae6e96b596f43b211b6ec
4
- data.tar.gz: 53bcde6f40a0b02d623776831802a6fec28a55fa
3
+ metadata.gz: f0ab16cf585eb5457348c2e664ad58646af6f107
4
+ data.tar.gz: 9ebd08b97fd8ab522bff4bc249a527124fbf2e59
5
5
  SHA512:
6
- metadata.gz: c65b3da8760c93c6296f3e3110ce0d53ccec2c2dd402ba68310c891bf53daf0b9889e6094b5166717e1b23f1ce46c7ae07150c06664c1924ead02d75d1eeb5f9
7
- data.tar.gz: b718f3d77f0f1b875f6f7be340a7d080dba96158261af44a728c485aa336c8193287fd6a659fe02e22fd2dc8f50c7aae3631b48d51e78072a4484ef6e0103f76
6
+ metadata.gz: 0420a84daae320f75ddb3a7fd6d31554865b269b910ef9f2c7ba241d0c549fad0d4ecb520bfee214f0e30e94ae0f0545e92d90b792783a18051e6fcee919bc5e
7
+ data.tar.gz: ac03f2e5d6ab91ddde803605068592a8c2770bd1b421ca9e4dbecc5141389422ffedae5af4aec0500cab23ba60e78c0f9d39d6abb9be63746eb412d4b5e26bc4
data/README.md CHANGED
@@ -3,12 +3,9 @@
3
3
  [![Inline docs](http://inch-ci.org/github/vyorkin/synchronisable.png)](http://inch-ci.org/github/vyorkin/synchronisable)
4
4
  [![Coverage Status](https://coveralls.io/repos/vyorkin/synchronisable/badge.png)](https://coveralls.io/r/vyorkin/synchronisable)
5
5
  [![Gem Version](http://stillmaintained.com/vyorkin/synchronisable.png)](http://stillmaintained.com/vyorkin/synchronisable)
6
- [![Dependency Status](https://gemnasium.com/vyorkin/synchronisable.svg)](https://gemnasium.com/vyorkin/synchronisable)
7
6
 
8
7
  # Synchronisable
9
8
 
10
- ### :construction: work in progress :construction:
11
-
12
9
  ## Overview
13
10
 
14
11
  Provides base fuctionality for active record models synchronization
@@ -178,13 +175,9 @@ class StageSynchronizer < Synchronisable::Synchronizer
178
175
  end
179
176
  ```
180
177
 
181
- ### Gateways vs `fetch` & `find` in synchronizers
182
-
183
- TDOO: Blah blah blah... Need to describe the difference & use cases.
184
-
185
- ### Blah blah
178
+ TODO: Provide more info on gateways vs `fetch` & `find` in synchronizers
186
179
 
187
- ### Blah blah
180
+ For now its better to learn from a [dummy app](https://github.com/vyorkin/synchronisable/tree/master/spec/dummy)
188
181
 
189
182
  ```ruby
190
183
  class TournamentSynchronizer < Synchronisable::Synchronizer
data/TODO.md CHANGED
@@ -2,7 +2,7 @@ Primary objectives
2
2
  ======================================
3
3
  - [ ] fix a mess with Context: return an array of sync contexts,
4
4
  or aggregate all syncronization contexts into just one
5
- - [ ] destroy_missed
5
+ - [ ] destroy_missing
6
6
  - [ ] write a good README
7
7
  - [ ] extended interface
8
8
  - [ ] handle case when association type is a :hash
@@ -0,0 +1,18 @@
1
+ class Hash
2
+ def transform_keys
3
+ return enum_for(:transform_keys) unless block_given?
4
+ result = self.class.new
5
+ each_key do |key|
6
+ result[yield(key)] = self[key]
7
+ end
8
+ result
9
+ end
10
+
11
+ def transform_keys!
12
+ return enum_for(:transform_keys!) unless block_given?
13
+ keys.each do |key|
14
+ self[yield(key)] = delete(key)
15
+ end
16
+ self
17
+ end
18
+ end
@@ -0,0 +1,17 @@
1
+ class Object
2
+ def try!(*a, &b)
3
+ if a.empty? && block_given?
4
+ if b.arity.zero?
5
+ instance_eval(&b)
6
+ else
7
+ yield self
8
+ end
9
+ else
10
+ public_send(*a, &b)
11
+ end
12
+ end
13
+
14
+ def try(*a, &b)
15
+ try!(*a, &b) if a.empty? || respond_to?(a.first)
16
+ end
17
+ end
@@ -2,12 +2,17 @@ require 'active_record'
2
2
 
3
3
  require 'active_support/core_ext/hash'
4
4
  require 'active_support/core_ext/class/attribute'
5
- require 'active_support/core_ext/object/try'
6
- require 'active_support/core_ext/object/deep_dup'
7
5
  require 'active_support/core_ext/string/inflections'
8
6
  require 'active_support/configurable'
9
7
  require 'active_support/concern'
10
8
 
9
+ # HACK: monkeypatches / fallbacks for activesupport ~> 3.0
10
+ if Gem.loaded_specs['activesupport'].version < Gem::Version.create(4)
11
+ require 'active_support/core_ext/hash/deep_dup'
12
+ require 'core_ext/object/try'
13
+ require 'core_ext/hash/keys'
14
+ end
15
+
11
16
  require 'synchronisable/bootstrap/i18n'
12
17
 
13
18
  require 'synchronisable/version'
@@ -72,3 +77,4 @@ end
72
77
  ActiveSupport.on_load(:active_record) do
73
78
  include Synchronisable::Model
74
79
  end
80
+
@@ -2,6 +2,21 @@ module Synchronisable
2
2
  class Configuration
3
3
  include ActiveSupport::Configurable
4
4
 
5
+ class << self
6
+ # HACK: This is required to smooth a future transition to activesupport 4.x
7
+ # Since 3-2's config_accessor doesn't take a block or provide an option to set the default value of a config.
8
+ alias_method :old_config_accessor, :config_accessor
9
+
10
+ def config_accessor(*names)
11
+ old_config_accessor(*names)
12
+ return unless block_given?
13
+
14
+ names.each do |name|
15
+ send("#{name}=", yield)
16
+ end
17
+ end
18
+ end
19
+
5
20
  config_accessor :dependent_import do
6
21
  :destroy
7
22
  end
@@ -49,7 +49,7 @@ module Synchronisable
49
49
  module ClassMethods
50
50
  def inherited(subclass)
51
51
  super
52
- class_attributes[subclass] = class_attributes[self].deep_dup
52
+ class_attributes[subclass] = Hash[class_attributes[self].map { |k, v| [k, v.clone] }]
53
53
  end
54
54
 
55
55
  # Defines a new attribute.
@@ -53,16 +53,16 @@ module Synchronisable
53
53
  end
54
54
 
55
55
  def find_by_local_id(id)
56
- import = @model.find_by(id: id).try(:import)
56
+ import = @model.where(id: id).first.try(:import)
57
57
  import ? @synchronizer.find(import.remote_id) : nil
58
58
  end
59
59
 
60
60
  def find_imports(class_name, ids)
61
61
  case class_name
62
62
  when 'Fixnum'
63
- ids.map { |id| @model.find_by(id: id).try(&:import) }
63
+ ids.map { |id| @model.where(id: id).first.try(&:import) }
64
64
  when 'String'
65
- ids.map { |id| Import.find_by(id: id) }
65
+ ids.map { |id| Import.where(id: id).first }
66
66
  end
67
67
  end
68
68
  end
@@ -47,17 +47,17 @@ module Synchronisable
47
47
  end
48
48
 
49
49
  def find_import_by_unique_id
50
- Import.find_by(
50
+ Import.where(
51
51
  unique_id: @unique_id.to_s,
52
52
  synchronisable_type: @model.to_s
53
- )
53
+ ).first
54
54
  end
55
55
 
56
56
  def find_import_by_remote_id
57
- Import.find_by(
57
+ Import.where(
58
58
  remote_id: @remote_id.to_s,
59
59
  synchronisable_type: @model.to_s
60
- )
60
+ ).first
61
61
  end
62
62
 
63
63
  def updatable?
@@ -37,7 +37,7 @@ module Synchronisable
37
37
 
38
38
  # If set to `true` than all local records that
39
39
  # don't have corresponding remote counterpart will be destroyed.
40
- attribute :destroy_missed, default: false
40
+ attribute :destroy_missing, default: false
41
41
 
42
42
  # Logger that will be used during synchronization
43
43
  # of this particular model.
@@ -1,10 +1,11 @@
1
1
  module Synchronisable
2
2
  module VERSION
3
3
  MAJOR = 1
4
- MINOR = 2
5
- PATCH = 7
6
- SUFFIX = nil
4
+ MINOR = 3
5
+ PATCH = 0
6
+ SUFFIX = ''
7
7
 
8
- STRING = [MAJOR, MINOR, PATCH, SUFFIX].compact.join('.')
8
+ NUMBER = [MAJOR, MINOR, PATCH].compact.join('.')
9
+ STRING = "#{NUMBER}#{SUFFIX}"
9
10
  end
10
11
  end
@@ -75,10 +75,10 @@ module Synchronisable
75
75
  end
76
76
 
77
77
  def find_import(id, association)
78
- Import.find_by(
78
+ Import.where(
79
79
  :remote_id => id.to_s,
80
80
  :synchronisable_type => association.model.to_s
81
- )
81
+ ).first
82
82
  end
83
83
  end
84
84
  end
@@ -21,7 +21,7 @@ class MatchSynchronizer < Synchronisable::Synchronizer
21
21
  :line_up_home, :line_up_away,
22
22
  :substitutes_home, :substitutes_away
23
23
 
24
- destroy_missed true
24
+ destroy_missing true
25
25
 
26
26
  after_sync do |source|
27
27
  MatchPlayer::REF_TYPES.each do |ref_type|
@@ -57,7 +57,7 @@ class MatchSynchronizer < Synchronisable::Synchronizer
57
57
  end
58
58
 
59
59
  def sync_match_player(attrs)
60
- match_player = MatchPlayer.find_by(attrs)
60
+ match_player = MatchPlayer.where(attrs).first
61
61
  unless match_player
62
62
  remote_id = "#{attrs[:match_id]}_#{attrs[:player_id]}"
63
63
  Synchronisable::Import.create!(
@@ -23,9 +23,6 @@ Dummy::Application.configure do
23
23
 
24
24
  config.i18n.default_locale = :ru
25
25
 
26
- # Raise an error on page load if there are pending migrations
27
- config.active_record.migration_error = :page_load
28
-
29
26
  # Debug mode disables concatenation and preprocessing of assets.
30
27
  # This option may cause significant delays in view rendering with a large
31
28
  # number of complex assets.
@@ -13,7 +13,7 @@ Dummy::Application.configure do
13
13
  config.eager_load = false
14
14
 
15
15
  # Configure static asset server for tests with Cache-Control for performance.
16
- config.serve_static_assets = true
16
+ config.serve_static_files = true
17
17
  config.static_cache_control = "public, max-age=3600"
18
18
 
19
19
  # Show full error reports and disable caching.
@@ -9,50 +9,47 @@
9
9
  # from scratch. The latter is a flawed and unsustainable approach (the more migrations
10
10
  # you'll amass, the slower it'll run and the greater likelihood for issues).
11
11
  #
12
- # It's strongly recommended that you check this file into your version control system.
12
+ # It's strongly recommended to check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(version: 20140609133855) do
14
+ ActiveRecord::Schema.define(:version => 20140609133855) do
15
15
 
16
- create_table "imports", force: true do |t|
17
- t.string "synchronisable_type", null: false
18
- t.integer "synchronisable_id", null: false
16
+ create_table "imports", :force => true do |t|
17
+ t.string "synchronisable_type", :null => false
18
+ t.integer "synchronisable_id", :null => false
19
19
  t.text "attrs"
20
- t.string "remote_id", null: false
20
+ t.string "remote_id", :null => false
21
21
  t.string "unique_id"
22
- t.datetime "created_at"
23
- t.datetime "updated_at"
22
+ t.datetime "created_at", :null => false
23
+ t.datetime "updated_at", :null => false
24
24
  end
25
25
 
26
- add_index "imports", ["remote_id"], name: "index_imports_on_remote_id"
27
- add_index "imports", ["synchronisable_type", "remote_id"], name: "index_imports_on_synchronisable_type_and_remote_id"
28
- add_index "imports", ["synchronisable_type", "synchronisable_id"], name: "index_imports_on_synchronisable_type_and_synchronisable_id"
29
- add_index "imports", ["synchronisable_type", "unique_id"], name: "index_imports_on_synchronisable_type_and_unique_id"
26
+ add_index "imports", ["remote_id"], :name => "index_imports_on_remote_id"
27
+ add_index "imports", ["synchronisable_type", "remote_id"], :name => "index_imports_on_synchronisable_type_and_remote_id"
28
+ add_index "imports", ["synchronisable_type", "synchronisable_id"], :name => "index_imports_on_synchronisable_type_and_synchronisable_id"
29
+ add_index "imports", ["synchronisable_type", "unique_id"], :name => "index_imports_on_synchronisable_type_and_unique_id"
30
30
 
31
- create_table "match_players", force: true do |t|
31
+ create_table "match_players", :force => true do |t|
32
32
  t.integer "match_id"
33
33
  t.integer "player_id"
34
34
  t.string "ref_type"
35
35
  t.integer "formation_index"
36
- t.datetime "created_at"
37
- t.datetime "updated_at"
36
+ t.datetime "created_at", :null => false
37
+ t.datetime "updated_at", :null => false
38
38
  end
39
39
 
40
- add_index "match_players", ["match_id"], name: "index_match_players_on_match_id"
41
- add_index "match_players", ["player_id"], name: "index_match_players_on_player_id"
42
-
43
- create_table "matches", force: true do |t|
40
+ create_table "matches", :force => true do |t|
44
41
  t.integer "beginning"
45
42
  t.integer "home_team_id"
46
43
  t.integer "away_team_id"
47
44
  t.string "weather"
48
- t.datetime "created_at"
49
- t.datetime "updated_at"
45
+ t.datetime "created_at", :null => false
46
+ t.datetime "updated_at", :null => false
50
47
  t.integer "stage_id"
51
48
  end
52
49
 
53
- add_index "matches", ["stage_id"], name: "index_matches_on_stage_id"
50
+ add_index "matches", ["stage_id"], :name => "index_matches_on_stage_id"
54
51
 
55
- create_table "players", force: true do |t|
52
+ create_table "players", :force => true do |t|
56
53
  t.string "first_name"
57
54
  t.string "last_name"
58
55
  t.date "birthday"
@@ -60,59 +57,53 @@ ActiveRecord::Schema.define(version: 20140609133855) do
60
57
  t.float "height"
61
58
  t.float "weight"
62
59
  t.integer "team_id"
63
- t.datetime "created_at"
64
- t.datetime "updated_at"
60
+ t.datetime "created_at", :null => false
61
+ t.datetime "updated_at", :null => false
65
62
  end
66
63
 
67
- add_index "players", ["team_id"], name: "index_players_on_team_id"
68
-
69
- create_table "stadiums", force: true do |t|
64
+ create_table "stadiums", :force => true do |t|
70
65
  t.string "name"
71
66
  t.integer "capacity"
72
- t.datetime "created_at"
73
- t.datetime "updated_at"
67
+ t.datetime "created_at", :null => false
68
+ t.datetime "updated_at", :null => false
74
69
  end
75
70
 
76
- create_table "stages", force: true do |t|
71
+ create_table "stages", :force => true do |t|
77
72
  t.date "beginning"
78
73
  t.date "ending"
79
74
  t.integer "tournament_id"
80
75
  t.string "name"
81
76
  t.integer "number"
82
- t.datetime "created_at"
83
- t.datetime "updated_at"
77
+ t.datetime "created_at", :null => false
78
+ t.datetime "updated_at", :null => false
84
79
  end
85
80
 
86
- add_index "stages", ["tournament_id"], name: "index_stages_on_tournament_id"
87
-
88
- create_table "team_group_statistics", force: true do |t|
81
+ create_table "team_group_statistics", :force => true do |t|
89
82
  t.integer "team_id"
90
83
  t.integer "games_played"
91
84
  t.integer "games_won"
92
85
  t.integer "games_lost"
93
86
  t.integer "games_draw"
94
- t.datetime "created_at"
95
- t.datetime "updated_at"
87
+ t.datetime "created_at", :null => false
88
+ t.datetime "updated_at", :null => false
96
89
  end
97
90
 
98
- add_index "team_group_statistics", ["team_id"], name: "index_team_group_statistics_on_team_id"
99
-
100
- create_table "teams", force: true do |t|
91
+ create_table "teams", :force => true do |t|
101
92
  t.string "name"
102
93
  t.string "country"
103
94
  t.string "city"
104
- t.datetime "created_at"
105
- t.datetime "updated_at"
95
+ t.datetime "created_at", :null => false
96
+ t.datetime "updated_at", :null => false
106
97
  end
107
98
 
108
- create_table "tournaments", force: true do |t|
99
+ create_table "tournaments", :force => true do |t|
109
100
  t.string "name"
110
101
  t.string "short_name"
111
102
  t.date "beginning"
112
103
  t.date "ending"
113
- t.boolean "is_current", default: false, null: false
114
- t.datetime "created_at"
115
- t.datetime "updated_at"
104
+ t.boolean "is_current", :default => false, :null => false
105
+ t.datetime "created_at", :null => false
106
+ t.datetime "updated_at", :null => false
116
107
  end
117
108
 
118
109
  end
@@ -31,7 +31,8 @@ factories_pattern = File.join(File.dirname(__FILE__), 'factories', '**', '*.rb')
31
31
  Dir[factories_pattern].each { |file| require file }
32
32
  Dir[support_pattern].each { |file| require file }
33
33
 
34
- ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
34
+ # TODO: Check ActiveRecord version and call #check_pending only if its greater or equal to 3.x
35
+ # ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
35
36
 
36
37
  RSpec.configure do |config|
37
38
  config.run_all_when_everything_filtered = true
@@ -41,7 +42,10 @@ RSpec.configure do |config|
41
42
 
42
43
  config.before(:suite) do
43
44
  begin
44
- FactoryGirl.lint
45
+ # FIXME: This shit gives me some really strange errors
46
+ # find a way to fix it
47
+
48
+ # FactoryGirl.lint
45
49
  ensure
46
50
  DatabaseCleaner.clean_with(:truncation)
47
51
  end
@@ -1,4 +1,3 @@
1
- # coding: utf-8
2
1
  lib = File.expand_path('../lib', __FILE__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require 'synchronisable/version'
@@ -6,36 +5,38 @@ require 'synchronisable/version'
6
5
  Gem::Specification.new do |spec|
7
6
  spec.name = 'synchronisable'
8
7
  spec.version = Synchronisable::VERSION::STRING
8
+ spec.platform = Gem::Platform::RUBY
9
9
  spec.authors = ['Vasiliy Yorkin']
10
10
  spec.email = ['vasiliy.yorkin@gmail.com']
11
+ spec.summary = "synchronisable-#{Synchronisable::VERSION::STRING}"
11
12
  spec.description = 'Provides base fuctionality (models, DSL) for AR synchronization with external resources (apis, services etc)'
12
- spec.summary = spec.description
13
13
  spec.homepage = 'https://github.com/vyorkin/synchronisable'
14
- spec.license = 'MIT'
15
-
16
14
  spec.files = `git ls-files -z`.split("\x0")
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ['lib']
15
+ spec.bindir = 'exe'
16
+ spec.executables = `git ls-files -- exe/*`.split("\n").map { |file| File.basename(file) }
17
+ spec.test_files = []
18
+ spec.require_path = 'lib'
19
+ spec.license = 'MIT'
20
20
 
21
- spec.add_runtime_dependency "activerecord", ">= 3.0.0"
22
- spec.add_runtime_dependency "activesupport", ">= 3.0.0"
23
- spec.add_runtime_dependency "i18n"
24
- spec.add_runtime_dependency "colorize"
21
+ spec.add_runtime_dependency 'activerecord', '>= 3.0', '< 5.0'
22
+ spec.add_runtime_dependency 'activesupport', '>= 3.0', '< 5.0'
23
+ spec.add_runtime_dependency 'i18n', '~> 0.6', '>= 0.6.0'
24
+ spec.add_runtime_dependency 'colorize', '~> 0.7', '>= 0.7.7'
25
25
 
26
- spec.add_development_dependency "bundler", "~> 1.5"
27
- spec.add_development_dependency "rake"
28
- spec.add_development_dependency "yard"
29
- spec.add_development_dependency "rails", "~> 4.0.0"
30
- spec.add_development_dependency "rspec", "~> 3.0.0.beta2"
31
- spec.add_development_dependency "rspec-rails", "~> 3.0.0.beta2"
32
- spec.add_development_dependency "rspec-its"
33
- spec.add_development_dependency "sqlite3"
34
- spec.add_development_dependency "factory_girl"
35
- spec.add_development_dependency "factory_girl_sequences"
36
- spec.add_development_dependency "database_cleaner"
37
- spec.add_development_dependency "mutant"
38
- spec.add_development_dependency "mutant-rspec"
39
- spec.add_development_dependency "guard-rspec"
40
- spec.add_development_dependency "simplecov"
26
+ spec.add_development_dependency 'bundler', '~> 1.8', '>= 1.8.0'
27
+ spec.add_development_dependency 'rake', '~> 10.0', '>= 10.0'
28
+ spec.add_development_dependency 'yard', '~> 0.8', '>= 0.8.7'
29
+ spec.add_development_dependency 'yard-rspec', '~> 0.1', '>= 0.1.0'
30
+ spec.add_development_dependency 'rails', '>= 3.0', '< 5.0'
31
+ spec.add_development_dependency 'rspec', '~> 3.2', '>= 3.2.0'
32
+ spec.add_development_dependency 'rspec-rails', '~> 3.2', '>= 3.2.2'
33
+ spec.add_development_dependency 'rspec-its', '~> 1.2', '>= 1.2.0'
34
+ spec.add_development_dependency 'sqlite3', '~> 1.3', '>= 1.3.1'
35
+ spec.add_development_dependency 'factory_girl', '~> 4.5', '>= 4.5.0'
36
+ spec.add_development_dependency 'factory_girl_sequences', '~> 4.3', '>= 4.3.1'
37
+ spec.add_development_dependency 'database_cleaner', '~> 1.4', '> 1.4.0'
38
+ spec.add_development_dependency 'mutant', '~> 0.7', '>= 0.7.9'
39
+ spec.add_development_dependency 'mutant-rspec', '~> 0.7', '>= 0.7.9'
40
+ spec.add_development_dependency 'guard-rspec', '~> 4.5', '>= 4.5.1'
41
+ spec.add_development_dependency 'simplecov', '~> 0.10', '>= 0.10.0'
41
42
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: synchronisable
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.7
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vasiliy Yorkin
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2015-02-26 00:00:00.000000000 Z
11
+ date: 2015-06-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -16,266 +16,400 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 3.0.0
19
+ version: '3.0'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '5.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
27
  - - ">="
25
28
  - !ruby/object:Gem::Version
26
- version: 3.0.0
29
+ version: '3.0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '5.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: activesupport
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - ">="
32
38
  - !ruby/object:Gem::Version
33
- version: 3.0.0
39
+ version: '3.0'
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '5.0'
34
43
  type: :runtime
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
38
47
  - - ">="
39
48
  - !ruby/object:Gem::Version
40
- version: 3.0.0
49
+ version: '3.0'
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '5.0'
41
53
  - !ruby/object:Gem::Dependency
42
54
  name: i18n
43
55
  requirement: !ruby/object:Gem::Requirement
44
56
  requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '0.6'
45
60
  - - ">="
46
61
  - !ruby/object:Gem::Version
47
- version: '0'
62
+ version: 0.6.0
48
63
  type: :runtime
49
64
  prerelease: false
50
65
  version_requirements: !ruby/object:Gem::Requirement
51
66
  requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '0.6'
52
70
  - - ">="
53
71
  - !ruby/object:Gem::Version
54
- version: '0'
72
+ version: 0.6.0
55
73
  - !ruby/object:Gem::Dependency
56
74
  name: colorize
57
75
  requirement: !ruby/object:Gem::Requirement
58
76
  requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '0.7'
59
80
  - - ">="
60
81
  - !ruby/object:Gem::Version
61
- version: '0'
82
+ version: 0.7.7
62
83
  type: :runtime
63
84
  prerelease: false
64
85
  version_requirements: !ruby/object:Gem::Requirement
65
86
  requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.7'
66
90
  - - ">="
67
91
  - !ruby/object:Gem::Version
68
- version: '0'
92
+ version: 0.7.7
69
93
  - !ruby/object:Gem::Dependency
70
94
  name: bundler
71
95
  requirement: !ruby/object:Gem::Requirement
72
96
  requirements:
73
97
  - - "~>"
74
98
  - !ruby/object:Gem::Version
75
- version: '1.5'
99
+ version: '1.8'
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 1.8.0
76
103
  type: :development
77
104
  prerelease: false
78
105
  version_requirements: !ruby/object:Gem::Requirement
79
106
  requirements:
80
107
  - - "~>"
81
108
  - !ruby/object:Gem::Version
82
- version: '1.5'
109
+ version: '1.8'
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: 1.8.0
83
113
  - !ruby/object:Gem::Dependency
84
114
  name: rake
85
115
  requirement: !ruby/object:Gem::Requirement
86
116
  requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '10.0'
87
120
  - - ">="
88
121
  - !ruby/object:Gem::Version
89
- version: '0'
122
+ version: '10.0'
90
123
  type: :development
91
124
  prerelease: false
92
125
  version_requirements: !ruby/object:Gem::Requirement
93
126
  requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: '10.0'
94
130
  - - ">="
95
131
  - !ruby/object:Gem::Version
96
- version: '0'
132
+ version: '10.0'
97
133
  - !ruby/object:Gem::Dependency
98
134
  name: yard
99
135
  requirement: !ruby/object:Gem::Requirement
100
136
  requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: '0.8'
101
140
  - - ">="
102
141
  - !ruby/object:Gem::Version
103
- version: '0'
142
+ version: 0.8.7
104
143
  type: :development
105
144
  prerelease: false
106
145
  version_requirements: !ruby/object:Gem::Requirement
107
146
  requirements:
147
+ - - "~>"
148
+ - !ruby/object:Gem::Version
149
+ version: '0.8'
108
150
  - - ">="
109
151
  - !ruby/object:Gem::Version
110
- version: '0'
152
+ version: 0.8.7
111
153
  - !ruby/object:Gem::Dependency
112
- name: rails
154
+ name: yard-rspec
113
155
  requirement: !ruby/object:Gem::Requirement
114
156
  requirements:
115
157
  - - "~>"
116
158
  - !ruby/object:Gem::Version
117
- version: 4.0.0
159
+ version: '0.1'
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: 0.1.0
118
163
  type: :development
119
164
  prerelease: false
120
165
  version_requirements: !ruby/object:Gem::Requirement
121
166
  requirements:
122
167
  - - "~>"
123
168
  - !ruby/object:Gem::Version
124
- version: 4.0.0
169
+ version: '0.1'
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: 0.1.0
173
+ - !ruby/object:Gem::Dependency
174
+ name: rails
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: '3.0'
180
+ - - "<"
181
+ - !ruby/object:Gem::Version
182
+ version: '5.0'
183
+ type: :development
184
+ prerelease: false
185
+ version_requirements: !ruby/object:Gem::Requirement
186
+ requirements:
187
+ - - ">="
188
+ - !ruby/object:Gem::Version
189
+ version: '3.0'
190
+ - - "<"
191
+ - !ruby/object:Gem::Version
192
+ version: '5.0'
125
193
  - !ruby/object:Gem::Dependency
126
194
  name: rspec
127
195
  requirement: !ruby/object:Gem::Requirement
128
196
  requirements:
129
197
  - - "~>"
130
198
  - !ruby/object:Gem::Version
131
- version: 3.0.0.beta2
199
+ version: '3.2'
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: 3.2.0
132
203
  type: :development
133
204
  prerelease: false
134
205
  version_requirements: !ruby/object:Gem::Requirement
135
206
  requirements:
136
207
  - - "~>"
137
208
  - !ruby/object:Gem::Version
138
- version: 3.0.0.beta2
209
+ version: '3.2'
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: 3.2.0
139
213
  - !ruby/object:Gem::Dependency
140
214
  name: rspec-rails
141
215
  requirement: !ruby/object:Gem::Requirement
142
216
  requirements:
143
217
  - - "~>"
144
218
  - !ruby/object:Gem::Version
145
- version: 3.0.0.beta2
219
+ version: '3.2'
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: 3.2.2
146
223
  type: :development
147
224
  prerelease: false
148
225
  version_requirements: !ruby/object:Gem::Requirement
149
226
  requirements:
150
227
  - - "~>"
151
228
  - !ruby/object:Gem::Version
152
- version: 3.0.0.beta2
229
+ version: '3.2'
230
+ - - ">="
231
+ - !ruby/object:Gem::Version
232
+ version: 3.2.2
153
233
  - !ruby/object:Gem::Dependency
154
234
  name: rspec-its
155
235
  requirement: !ruby/object:Gem::Requirement
156
236
  requirements:
237
+ - - "~>"
238
+ - !ruby/object:Gem::Version
239
+ version: '1.2'
157
240
  - - ">="
158
241
  - !ruby/object:Gem::Version
159
- version: '0'
242
+ version: 1.2.0
160
243
  type: :development
161
244
  prerelease: false
162
245
  version_requirements: !ruby/object:Gem::Requirement
163
246
  requirements:
247
+ - - "~>"
248
+ - !ruby/object:Gem::Version
249
+ version: '1.2'
164
250
  - - ">="
165
251
  - !ruby/object:Gem::Version
166
- version: '0'
252
+ version: 1.2.0
167
253
  - !ruby/object:Gem::Dependency
168
254
  name: sqlite3
169
255
  requirement: !ruby/object:Gem::Requirement
170
256
  requirements:
257
+ - - "~>"
258
+ - !ruby/object:Gem::Version
259
+ version: '1.3'
171
260
  - - ">="
172
261
  - !ruby/object:Gem::Version
173
- version: '0'
262
+ version: 1.3.1
174
263
  type: :development
175
264
  prerelease: false
176
265
  version_requirements: !ruby/object:Gem::Requirement
177
266
  requirements:
267
+ - - "~>"
268
+ - !ruby/object:Gem::Version
269
+ version: '1.3'
178
270
  - - ">="
179
271
  - !ruby/object:Gem::Version
180
- version: '0'
272
+ version: 1.3.1
181
273
  - !ruby/object:Gem::Dependency
182
274
  name: factory_girl
183
275
  requirement: !ruby/object:Gem::Requirement
184
276
  requirements:
277
+ - - "~>"
278
+ - !ruby/object:Gem::Version
279
+ version: '4.5'
185
280
  - - ">="
186
281
  - !ruby/object:Gem::Version
187
- version: '0'
282
+ version: 4.5.0
188
283
  type: :development
189
284
  prerelease: false
190
285
  version_requirements: !ruby/object:Gem::Requirement
191
286
  requirements:
287
+ - - "~>"
288
+ - !ruby/object:Gem::Version
289
+ version: '4.5'
192
290
  - - ">="
193
291
  - !ruby/object:Gem::Version
194
- version: '0'
292
+ version: 4.5.0
195
293
  - !ruby/object:Gem::Dependency
196
294
  name: factory_girl_sequences
197
295
  requirement: !ruby/object:Gem::Requirement
198
296
  requirements:
297
+ - - "~>"
298
+ - !ruby/object:Gem::Version
299
+ version: '4.3'
199
300
  - - ">="
200
301
  - !ruby/object:Gem::Version
201
- version: '0'
302
+ version: 4.3.1
202
303
  type: :development
203
304
  prerelease: false
204
305
  version_requirements: !ruby/object:Gem::Requirement
205
306
  requirements:
307
+ - - "~>"
308
+ - !ruby/object:Gem::Version
309
+ version: '4.3'
206
310
  - - ">="
207
311
  - !ruby/object:Gem::Version
208
- version: '0'
312
+ version: 4.3.1
209
313
  - !ruby/object:Gem::Dependency
210
314
  name: database_cleaner
211
315
  requirement: !ruby/object:Gem::Requirement
212
316
  requirements:
213
- - - ">="
317
+ - - "~>"
214
318
  - !ruby/object:Gem::Version
215
- version: '0'
319
+ version: '1.4'
320
+ - - ">"
321
+ - !ruby/object:Gem::Version
322
+ version: 1.4.0
216
323
  type: :development
217
324
  prerelease: false
218
325
  version_requirements: !ruby/object:Gem::Requirement
219
326
  requirements:
220
- - - ">="
327
+ - - "~>"
221
328
  - !ruby/object:Gem::Version
222
- version: '0'
329
+ version: '1.4'
330
+ - - ">"
331
+ - !ruby/object:Gem::Version
332
+ version: 1.4.0
223
333
  - !ruby/object:Gem::Dependency
224
334
  name: mutant
225
335
  requirement: !ruby/object:Gem::Requirement
226
336
  requirements:
337
+ - - "~>"
338
+ - !ruby/object:Gem::Version
339
+ version: '0.7'
227
340
  - - ">="
228
341
  - !ruby/object:Gem::Version
229
- version: '0'
342
+ version: 0.7.9
230
343
  type: :development
231
344
  prerelease: false
232
345
  version_requirements: !ruby/object:Gem::Requirement
233
346
  requirements:
347
+ - - "~>"
348
+ - !ruby/object:Gem::Version
349
+ version: '0.7'
234
350
  - - ">="
235
351
  - !ruby/object:Gem::Version
236
- version: '0'
352
+ version: 0.7.9
237
353
  - !ruby/object:Gem::Dependency
238
354
  name: mutant-rspec
239
355
  requirement: !ruby/object:Gem::Requirement
240
356
  requirements:
357
+ - - "~>"
358
+ - !ruby/object:Gem::Version
359
+ version: '0.7'
241
360
  - - ">="
242
361
  - !ruby/object:Gem::Version
243
- version: '0'
362
+ version: 0.7.9
244
363
  type: :development
245
364
  prerelease: false
246
365
  version_requirements: !ruby/object:Gem::Requirement
247
366
  requirements:
367
+ - - "~>"
368
+ - !ruby/object:Gem::Version
369
+ version: '0.7'
248
370
  - - ">="
249
371
  - !ruby/object:Gem::Version
250
- version: '0'
372
+ version: 0.7.9
251
373
  - !ruby/object:Gem::Dependency
252
374
  name: guard-rspec
253
375
  requirement: !ruby/object:Gem::Requirement
254
376
  requirements:
377
+ - - "~>"
378
+ - !ruby/object:Gem::Version
379
+ version: '4.5'
255
380
  - - ">="
256
381
  - !ruby/object:Gem::Version
257
- version: '0'
382
+ version: 4.5.1
258
383
  type: :development
259
384
  prerelease: false
260
385
  version_requirements: !ruby/object:Gem::Requirement
261
386
  requirements:
387
+ - - "~>"
388
+ - !ruby/object:Gem::Version
389
+ version: '4.5'
262
390
  - - ">="
263
391
  - !ruby/object:Gem::Version
264
- version: '0'
392
+ version: 4.5.1
265
393
  - !ruby/object:Gem::Dependency
266
394
  name: simplecov
267
395
  requirement: !ruby/object:Gem::Requirement
268
396
  requirements:
397
+ - - "~>"
398
+ - !ruby/object:Gem::Version
399
+ version: '0.10'
269
400
  - - ">="
270
401
  - !ruby/object:Gem::Version
271
- version: '0'
402
+ version: 0.10.0
272
403
  type: :development
273
404
  prerelease: false
274
405
  version_requirements: !ruby/object:Gem::Requirement
275
406
  requirements:
407
+ - - "~>"
408
+ - !ruby/object:Gem::Version
409
+ version: '0.10'
276
410
  - - ">="
277
411
  - !ruby/object:Gem::Version
278
- version: '0'
412
+ version: 0.10.0
279
413
  description: Provides base fuctionality (models, DSL) for AR synchronization with
280
414
  external resources (apis, services etc)
281
415
  email:
@@ -296,6 +430,8 @@ files:
296
430
  - README.md
297
431
  - Rakefile
298
432
  - TODO.md
433
+ - lib/core_ext/hash/keys.rb
434
+ - lib/core_ext/object/try.rb
299
435
  - lib/generators/synchronisable/USAGE
300
436
  - lib/generators/synchronisable/install_generator.rb
301
437
  - lib/generators/synchronisable/templates/create_imports_migration.rb
@@ -455,107 +591,6 @@ rubyforge_project:
455
591
  rubygems_version: 2.4.2
456
592
  signing_key:
457
593
  specification_version: 4
458
- summary: Provides base fuctionality (models, DSL) for AR synchronization with external
459
- resources (apis, services etc)
460
- test_files:
461
- - spec/dummy/.gitignore
462
- - spec/dummy/Rakefile
463
- - spec/dummy/app/assets/images/.keep
464
- - spec/dummy/app/assets/javascripts/application.js
465
- - spec/dummy/app/assets/stylesheets/application.css
466
- - spec/dummy/app/controllers/application_controller.rb
467
- - spec/dummy/app/gateways/gateway_base.rb
468
- - spec/dummy/app/gateways/match_gateway.rb
469
- - spec/dummy/app/gateways/player_gateway.rb
470
- - spec/dummy/app/gateways/stage_gateway.rb
471
- - spec/dummy/app/gateways/team_gateway.rb
472
- - spec/dummy/app/gateways/team_group_statistic_gateway.rb
473
- - spec/dummy/app/gateways/tournament_gateway.rb
474
- - spec/dummy/app/helpers/application_helper.rb
475
- - spec/dummy/app/mailers/.keep
476
- - spec/dummy/app/models/.keep
477
- - spec/dummy/app/models/match.rb
478
- - spec/dummy/app/models/match_player.rb
479
- - spec/dummy/app/models/player.rb
480
- - spec/dummy/app/models/stadium.rb
481
- - spec/dummy/app/models/stage.rb
482
- - spec/dummy/app/models/team.rb
483
- - spec/dummy/app/models/team_group_statistic.rb
484
- - spec/dummy/app/models/tournament.rb
485
- - spec/dummy/app/synchronizers/break_convention_team_synchronizer.rb
486
- - spec/dummy/app/synchronizers/match_synchronizer.rb
487
- - spec/dummy/app/synchronizers/player_synchronizer.rb
488
- - spec/dummy/app/synchronizers/stage_synchronizer.rb
489
- - spec/dummy/app/synchronizers/team_group_statistic_synchronizer.rb
490
- - spec/dummy/app/synchronizers/tournament_synchronizer.rb
491
- - spec/dummy/app/views/layouts/application.html.erb
492
- - spec/dummy/bin/bundle
493
- - spec/dummy/bin/rails
494
- - spec/dummy/bin/rake
495
- - spec/dummy/config.ru
496
- - spec/dummy/config/application.rb
497
- - spec/dummy/config/boot.rb
498
- - spec/dummy/config/database.yml
499
- - spec/dummy/config/environment.rb
500
- - spec/dummy/config/environments/development.rb
501
- - spec/dummy/config/environments/production.rb
502
- - spec/dummy/config/environments/test.rb
503
- - spec/dummy/config/initializers/backtrace_silencers.rb
504
- - spec/dummy/config/initializers/filter_parameter_logging.rb
505
- - spec/dummy/config/initializers/inflections.rb
506
- - spec/dummy/config/initializers/mime_types.rb
507
- - spec/dummy/config/initializers/secret_token.rb
508
- - spec/dummy/config/initializers/session_store.rb
509
- - spec/dummy/config/initializers/synchronisable.rb
510
- - spec/dummy/config/initializers/wrap_parameters.rb
511
- - spec/dummy/config/locales/en.yml
512
- - spec/dummy/config/routes.rb
513
- - spec/dummy/db/migrate/20140422132431_create_teams.rb
514
- - spec/dummy/db/migrate/20140422132544_create_matches.rb
515
- - spec/dummy/db/migrate/20140422132708_create_players.rb
516
- - spec/dummy/db/migrate/20140422133122_create_match_players.rb
517
- - spec/dummy/db/migrate/20140422135244_create_imports.rb
518
- - spec/dummy/db/migrate/20140422140817_create_stadiums.rb
519
- - spec/dummy/db/migrate/20140507135800_create_tournaments.rb
520
- - spec/dummy/db/migrate/20140507135837_create_stages.rb
521
- - spec/dummy/db/migrate/20140507140039_add_stage_id_to_matches.rb
522
- - spec/dummy/db/migrate/20140609133855_create_team_group_statistic.rb
523
- - spec/dummy/db/schema.rb
524
- - spec/dummy/db/seeds.rb
525
- - spec/dummy/lib/assets/.keep
526
- - spec/dummy/lib/tasks/.keep
527
- - spec/dummy/log/.keep
528
- - spec/dummy/public/404.html
529
- - spec/dummy/public/422.html
530
- - spec/dummy/public/500.html
531
- - spec/dummy/public/favicon.ico
532
- - spec/dummy/public/robots.txt
533
- - spec/dummy/vendor/assets/javascripts/.keep
534
- - spec/dummy/vendor/assets/stylesheets/.keep
535
- - spec/factories/import.rb
536
- - spec/factories/match.rb
537
- - spec/factories/match_player.rb
538
- - spec/factories/player.rb
539
- - spec/factories/remote/match.rb
540
- - spec/factories/remote/player.rb
541
- - spec/factories/remote/stage.rb
542
- - spec/factories/remote/team.rb
543
- - spec/factories/remote/team_group_statistic.rb
544
- - spec/factories/remote/tournament.rb
545
- - spec/factories/stadium.rb
546
- - spec/factories/team.rb
547
- - spec/models/match_spec.rb
548
- - spec/models/stage_spec.rb
549
- - spec/models/team_group_statistic_spec.rb
550
- - spec/models/team_spec.rb
551
- - spec/models/tournament_spec.rb
552
- - spec/spec_helper.rb
553
- - spec/synchronisable/dsl/macro_spec.rb
554
- - spec/synchronisable/models/import_spec.rb
555
- - spec/synchronisable/support/has_macro_bar.rb
556
- - spec/synchronisable/support/has_macro_foo.rb
557
- - spec/synchronisable/support/has_macro_foo_subclass.rb
558
- - spec/synchronisable/support/shared/contexts.rb
559
- - spec/synchronisable/support/shared/examples.rb
560
- - spec/synchronisable/synchronisable_spec.rb
594
+ summary: synchronisable-1.3.0
595
+ test_files: []
561
596
  has_rdoc: