synchronisable 1.2.7 → 1.3.0

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