render_sync 0.5.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 +7 -0
- data/CHANGELOG.md +153 -0
- data/Gemfile +3 -0
- data/LICENSE +22 -0
- data/README.md +521 -0
- data/Rakefile +9 -0
- data/app/assets/javascripts/sync.coffee +355 -0
- data/app/controllers/sync/refetches_controller.rb +56 -0
- data/app/helpers/render_sync/config_helper.rb +15 -0
- data/config/routes.rb +3 -0
- data/config/sync.yml +21 -0
- data/lib/generators/render_sync/install_generator.rb +14 -0
- data/lib/generators/render_sync/templates/sync.ru +14 -0
- data/lib/generators/render_sync/templates/sync.yml +34 -0
- data/lib/render_sync.rb +174 -0
- data/lib/render_sync/action.rb +39 -0
- data/lib/render_sync/actions.rb +114 -0
- data/lib/render_sync/channel.rb +23 -0
- data/lib/render_sync/clients/dummy.rb +22 -0
- data/lib/render_sync/clients/faye.rb +104 -0
- data/lib/render_sync/clients/pusher.rb +77 -0
- data/lib/render_sync/controller_helpers.rb +33 -0
- data/lib/render_sync/engine.rb +24 -0
- data/lib/render_sync/erb_tracker.rb +49 -0
- data/lib/render_sync/faye_extension.rb +45 -0
- data/lib/render_sync/model.rb +174 -0
- data/lib/render_sync/model_actions.rb +60 -0
- data/lib/render_sync/model_change_tracking.rb +97 -0
- data/lib/render_sync/model_syncing.rb +65 -0
- data/lib/render_sync/model_touching.rb +35 -0
- data/lib/render_sync/partial.rb +112 -0
- data/lib/render_sync/partial_creator.rb +47 -0
- data/lib/render_sync/reactor.rb +48 -0
- data/lib/render_sync/refetch_model.rb +21 -0
- data/lib/render_sync/refetch_partial.rb +43 -0
- data/lib/render_sync/refetch_partial_creator.rb +21 -0
- data/lib/render_sync/renderer.rb +19 -0
- data/lib/render_sync/resource.rb +115 -0
- data/lib/render_sync/scope.rb +113 -0
- data/lib/render_sync/scope_definition.rb +30 -0
- data/lib/render_sync/view_helpers.rb +106 -0
- data/test/dummy/README.rdoc +28 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/stylesheets/application.css +13 -0
- data/test/dummy/app/controllers/application_controller.rb +5 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/app/views/sync/users/_show.html.erb +1 -0
- data/test/dummy/app/views/sync/users/refetch/_show.html.erb +1 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +22 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/database.yml +8 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +29 -0
- data/test/dummy/config/environments/production.rb +80 -0
- data/test/dummy/config/environments/test.rb +36 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +12 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/routes.rb +56 -0
- data/test/dummy/log/test.log +626 -0
- data/test/dummy/public/404.html +58 -0
- data/test/dummy/public/422.html +58 -0
- data/test/dummy/public/500.html +57 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/em_minitest_spec.rb +100 -0
- data/test/fixtures/sync_auth_token_missing.yml +6 -0
- data/test/fixtures/sync_erb.yml +7 -0
- data/test/fixtures/sync_faye.yml +7 -0
- data/test/fixtures/sync_pusher.yml +8 -0
- data/test/models/group.rb +3 -0
- data/test/models/project.rb +2 -0
- data/test/models/todo.rb +8 -0
- data/test/models/user.rb +82 -0
- data/test/sync/abstract_controller.rb +3 -0
- data/test/sync/action_test.rb +82 -0
- data/test/sync/channel_test.rb +15 -0
- data/test/sync/config_test.rb +25 -0
- data/test/sync/erb_tracker_test.rb +72 -0
- data/test/sync/faye_extension_test.rb +87 -0
- data/test/sync/message_test.rb +159 -0
- data/test/sync/model_test.rb +315 -0
- data/test/sync/partial_creator_test.rb +35 -0
- data/test/sync/partial_test.rb +107 -0
- data/test/sync/protected_attributes_test.rb +39 -0
- data/test/sync/reactor_test.rb +18 -0
- data/test/sync/refetch_model_test.rb +26 -0
- data/test/sync/refetch_partial_creator_test.rb +16 -0
- data/test/sync/refetch_partial_test.rb +74 -0
- data/test/sync/renderer_test.rb +19 -0
- data/test/sync/resource_test.rb +181 -0
- data/test/sync/scope_definition_test.rb +39 -0
- data/test/sync/scope_test.rb +113 -0
- data/test/test_helper.rb +66 -0
- data/test/travis/sync.ru +14 -0
- data/test/travis/sync.yml +21 -0
- metadata +317 -0
@@ -0,0 +1,39 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
require_relative '../models/user'
|
3
|
+
|
4
|
+
describe RenderSync::ScopeDefinition do
|
5
|
+
include TestHelper
|
6
|
+
|
7
|
+
describe '#ensure_valid_params!' do
|
8
|
+
it 'raises an argument error with one invalid argument' do
|
9
|
+
assert_raises ArgumentError do
|
10
|
+
# attribute, associtation or instance method 'project' not present in user instance
|
11
|
+
RenderSync::ScopeDefinition.ensure_valid_params!(User, ->(project) { User.all })
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'raises an argument error with a valid and an invalid argument' do
|
16
|
+
assert_raises ArgumentError do
|
17
|
+
# attribute, associtation or instance method 'project' not present in user instance
|
18
|
+
# name is a column on user record
|
19
|
+
RenderSync::ScopeDefinition.ensure_valid_params!(User, ->(name, project) { User.all })
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'returns true with no arguments' do
|
24
|
+
assert_equal true, RenderSync::ScopeDefinition.ensure_valid_params!(User, -> { User.all })
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'returns true with one valid argument' do
|
28
|
+
# group is an association on the user record
|
29
|
+
assert_equal true, RenderSync::ScopeDefinition.ensure_valid_params!(User, ->(group) { User.all })
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'returns true with multiple valid argument' do
|
33
|
+
# group is an association on the user record
|
34
|
+
# name is a column on user record
|
35
|
+
assert_equal true, RenderSync::ScopeDefinition.ensure_valid_params!(User, ->(group, name) { User.all })
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,113 @@
|
|
1
|
+
require 'rails/all'
|
2
|
+
require_relative '../test_helper'
|
3
|
+
require_relative 'abstract_controller'
|
4
|
+
require_relative '../models/user'
|
5
|
+
require_relative '../models/project'
|
6
|
+
require_relative '../models/group'
|
7
|
+
require_relative '../models/todo'
|
8
|
+
|
9
|
+
describe RenderSync::Scope do
|
10
|
+
include TestHelper
|
11
|
+
|
12
|
+
describe '#initialize' do
|
13
|
+
it 'return an RenderSync::Scope instance' do
|
14
|
+
assert_kind_of RenderSync::Scope, User.with_group_id(5)
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'raises an argument error with an invalid param (float)' do
|
18
|
+
assert_raises ArgumentError do
|
19
|
+
User.with_group_id(0.5)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'returns an RenderSync::Scope instance and sets instance variables correctly' do
|
24
|
+
scope = User.with_group_id(5)
|
25
|
+
assert_kind_of RenderSync::Scope, scope
|
26
|
+
assert_equal scope.args, [5]
|
27
|
+
assert_equal scope.scope_definition, User.sync_scope_definitions[:with_group_id]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe '#new_from_model' do
|
32
|
+
it 'returns an RenderSync::Scope instance and sets instance variables correctly' do
|
33
|
+
scope_definition = User.sync_scope_definitions[:with_group_id]
|
34
|
+
user = User.create(group_id: 3)
|
35
|
+
scope = RenderSync::Scope.new_from_model(scope_definition, user)
|
36
|
+
assert_kind_of RenderSync::Scope, scope
|
37
|
+
assert_equal scope.args, [3]
|
38
|
+
assert_equal scope.scope_definition, scope_definition
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe '#relation' do
|
43
|
+
it 'returns the ActiveRecord::Relation' do
|
44
|
+
scope = User.with_group_id(5)
|
45
|
+
assert_kind_of ActiveRecord::Relation, scope.relation
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe '#valid?' do
|
50
|
+
it 'returns true for a relation that does not throw an exception' do
|
51
|
+
scope = User.with_group_id(5)
|
52
|
+
assert_equal true, scope.valid?
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'returns false for a relation that throws an exception' do
|
56
|
+
scope_definition = User.sync_scope_definitions[:in_group]
|
57
|
+
user = User.create(group: nil)
|
58
|
+
scope = RenderSync::Scope.new_from_model(scope_definition, user)
|
59
|
+
assert_equal false, scope.valid?
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
describe '#contains?' do
|
64
|
+
it 'returns true if the given record is in the scope' do
|
65
|
+
todo = Todo.create(user_id: 2)
|
66
|
+
scope = Todo.with_user_id(2)
|
67
|
+
assert_equal true, scope.contains?(todo)
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'returns false if the given record is not in the scope' do
|
71
|
+
todo = Todo.create(user_id: 2)
|
72
|
+
scope = Todo.with_user_id(5)
|
73
|
+
assert_equal false, scope.contains?(todo)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
describe 'setting up a sync scope in the model' do
|
78
|
+
it 'adds a simple scope definition to the model class' do
|
79
|
+
class User < ActiveRecord::Base
|
80
|
+
sync_scope :without_name, -> { where(name: nil)}
|
81
|
+
end
|
82
|
+
assert User.sync_scope_definitions[:without_name].present?
|
83
|
+
end
|
84
|
+
|
85
|
+
it 'adds a scope definition if lambda names are correct' do
|
86
|
+
class User < ActiveRecord::Base
|
87
|
+
sync_scope :with_age, ->(age) { where(age: age)}
|
88
|
+
end
|
89
|
+
assert User.sync_scope_definitions[:with_age].present?
|
90
|
+
end
|
91
|
+
|
92
|
+
it 'raises an exception if lambda arg names are invalid' do
|
93
|
+
assert_raises ArgumentError do
|
94
|
+
class User < ActiveRecord::Base
|
95
|
+
sync_scope :with_max_age, ->(max_age) { where(["age <= ?", max_age])}
|
96
|
+
end
|
97
|
+
end
|
98
|
+
assert User.sync_scope_definitions[:with_max_age].blank?
|
99
|
+
end
|
100
|
+
|
101
|
+
it 'raises an exception if sync scope name method with that name is already defined' do
|
102
|
+
assert_raises ArgumentError do
|
103
|
+
class User < ActiveRecord::Base
|
104
|
+
sync_scope :old, -> { where(["arg > ?", 70])}
|
105
|
+
sync_scope :old, -> { where(["arg > ?", 90])}
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
|
111
|
+
end
|
112
|
+
|
113
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler/setup'
|
3
|
+
require 'minitest/autorun'
|
4
|
+
require 'minitest/pride'
|
5
|
+
require 'yaml'
|
6
|
+
require 'json'
|
7
|
+
require 'pry'
|
8
|
+
require 'codeclimate-test-reporter'
|
9
|
+
|
10
|
+
CodeClimate::TestReporter.start
|
11
|
+
|
12
|
+
require_relative 'em_minitest_spec'
|
13
|
+
|
14
|
+
ENV["RAILS_ENV"] = "test"
|
15
|
+
require File.expand_path("../dummy/config/environment.rb", __FILE__)
|
16
|
+
|
17
|
+
Bundler.require(:default)
|
18
|
+
|
19
|
+
def setup_database
|
20
|
+
ActiveRecord::Base.send :extend, RenderSync::Model::ClassMethods
|
21
|
+
|
22
|
+
ActiveRecord::Base.connection.execute("DROP TABLE IF EXISTS todos")
|
23
|
+
ActiveRecord::Base.connection.execute("CREATE TABLE todos (id INTEGER PRIMARY KEY, name TEXT, complete BOOLEAN, user_id INTEGER)")
|
24
|
+
|
25
|
+
ActiveRecord::Base.connection.execute("DROP TABLE IF EXISTS users")
|
26
|
+
ActiveRecord::Base.connection.execute("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, cool BOOLEAN, group_id INTEGER, project_id INTEGER, age INTEGER)")
|
27
|
+
|
28
|
+
ActiveRecord::Base.connection.execute("DROP TABLE IF EXISTS groups")
|
29
|
+
ActiveRecord::Base.connection.execute("CREATE TABLE groups (id INTEGER PRIMARY KEY, name TEXT)")
|
30
|
+
|
31
|
+
ActiveRecord::Base.connection.execute("DROP TABLE IF EXISTS projects")
|
32
|
+
ActiveRecord::Base.connection.execute("CREATE TABLE projects (id INTEGER PRIMARY KEY, name TEXT)")
|
33
|
+
end
|
34
|
+
|
35
|
+
module TestHelper
|
36
|
+
|
37
|
+
def setup
|
38
|
+
RenderSync.load_config(
|
39
|
+
File.expand_path("../fixtures/sync_faye.yml", __FILE__),
|
40
|
+
"test"
|
41
|
+
)
|
42
|
+
RenderSync.logger.level = ENV['LOGLEVEL'].present? ? ENV['LOGLEVEL'].to_i : 1
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
module TestHelperFaye
|
47
|
+
|
48
|
+
def setup
|
49
|
+
RenderSync.load_config(
|
50
|
+
File.expand_path("../fixtures/sync_faye.yml", __FILE__),
|
51
|
+
"test"
|
52
|
+
)
|
53
|
+
RenderSync.logger.level = ENV['LOGLEVEL'].present? ? ENV['LOGLEVEL'].to_i : 1
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
module TestHelperPusher
|
58
|
+
|
59
|
+
def setup
|
60
|
+
RenderSync.load_config(
|
61
|
+
File.expand_path("../fixtures/sync_pusher.yml", __FILE__),
|
62
|
+
"test"
|
63
|
+
)
|
64
|
+
RenderSync.logger.level = ENV['LOGLEVEL'].present? ? ENV['LOGLEVEL'].to_i : 1
|
65
|
+
end
|
66
|
+
end
|
data/test/travis/sync.ru
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
# Run with: rackup sync.ru -E production
|
2
|
+
require "bundler/setup"
|
3
|
+
require "yaml"
|
4
|
+
require "faye"
|
5
|
+
require "render_sync"
|
6
|
+
|
7
|
+
Faye::WebSocket.load_adapter 'thin'
|
8
|
+
|
9
|
+
RenderSync.load_config(
|
10
|
+
File.expand_path("../config/sync.yml", __FILE__),
|
11
|
+
ENV["RAILS_ENV"] || "development"
|
12
|
+
)
|
13
|
+
|
14
|
+
run RenderSync.pubsub_app
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# Faye
|
2
|
+
development:
|
3
|
+
server: "http://localhost:9292/faye"
|
4
|
+
adapter_javascript_url: "http://localhost:9292/faye/faye.js"
|
5
|
+
auth_token: "secret"
|
6
|
+
adapter: "Faye"
|
7
|
+
async: true
|
8
|
+
|
9
|
+
test:
|
10
|
+
server: "http://localhost:9292/faye"
|
11
|
+
adapter_javascript_url: "http://localhost:9292/faye/faye.js"
|
12
|
+
adapter: "Faye"
|
13
|
+
auth_token: "secret"
|
14
|
+
async: false
|
15
|
+
|
16
|
+
production:
|
17
|
+
server: "http://localhost:9292/faye"
|
18
|
+
adapter_javascript_url: "http://localhost:9292/faye/faye.js"
|
19
|
+
adapter: "Faye"
|
20
|
+
auth_token: "secret"
|
21
|
+
async: true
|
metadata
ADDED
@@ -0,0 +1,317 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: render_sync
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.5.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Chris McCord
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-05-04 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: em-http-request
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: faye
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: thin
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: pusher
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.11.3
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.11.3
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rails
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 3.2.13
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 3.2.13
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: cache_digests
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: mocha
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.13.3
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 0.13.3
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: sqlite3
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: pry
|
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'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: minitest
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "<"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: 5.0.0
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "<"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 5.0.0
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: codeclimate-test-reporter
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
description: RenderSync turns your Rails partials realtime with automatic updates
|
182
|
+
through Faye
|
183
|
+
email: chris@chrismccord.com
|
184
|
+
executables: []
|
185
|
+
extensions: []
|
186
|
+
extra_rdoc_files: []
|
187
|
+
files:
|
188
|
+
- CHANGELOG.md
|
189
|
+
- Gemfile
|
190
|
+
- LICENSE
|
191
|
+
- README.md
|
192
|
+
- Rakefile
|
193
|
+
- app/assets/javascripts/sync.coffee
|
194
|
+
- app/controllers/sync/refetches_controller.rb
|
195
|
+
- app/helpers/render_sync/config_helper.rb
|
196
|
+
- config/routes.rb
|
197
|
+
- config/sync.yml
|
198
|
+
- lib/generators/render_sync/install_generator.rb
|
199
|
+
- lib/generators/render_sync/templates/sync.ru
|
200
|
+
- lib/generators/render_sync/templates/sync.yml
|
201
|
+
- lib/render_sync.rb
|
202
|
+
- lib/render_sync/action.rb
|
203
|
+
- lib/render_sync/actions.rb
|
204
|
+
- lib/render_sync/channel.rb
|
205
|
+
- lib/render_sync/clients/dummy.rb
|
206
|
+
- lib/render_sync/clients/faye.rb
|
207
|
+
- lib/render_sync/clients/pusher.rb
|
208
|
+
- lib/render_sync/controller_helpers.rb
|
209
|
+
- lib/render_sync/engine.rb
|
210
|
+
- lib/render_sync/erb_tracker.rb
|
211
|
+
- lib/render_sync/faye_extension.rb
|
212
|
+
- lib/render_sync/model.rb
|
213
|
+
- lib/render_sync/model_actions.rb
|
214
|
+
- lib/render_sync/model_change_tracking.rb
|
215
|
+
- lib/render_sync/model_syncing.rb
|
216
|
+
- lib/render_sync/model_touching.rb
|
217
|
+
- lib/render_sync/partial.rb
|
218
|
+
- lib/render_sync/partial_creator.rb
|
219
|
+
- lib/render_sync/reactor.rb
|
220
|
+
- lib/render_sync/refetch_model.rb
|
221
|
+
- lib/render_sync/refetch_partial.rb
|
222
|
+
- lib/render_sync/refetch_partial_creator.rb
|
223
|
+
- lib/render_sync/renderer.rb
|
224
|
+
- lib/render_sync/resource.rb
|
225
|
+
- lib/render_sync/scope.rb
|
226
|
+
- lib/render_sync/scope_definition.rb
|
227
|
+
- lib/render_sync/view_helpers.rb
|
228
|
+
- test/dummy/README.rdoc
|
229
|
+
- test/dummy/Rakefile
|
230
|
+
- test/dummy/app/assets/javascripts/application.js
|
231
|
+
- test/dummy/app/assets/stylesheets/application.css
|
232
|
+
- test/dummy/app/controllers/application_controller.rb
|
233
|
+
- test/dummy/app/helpers/application_helper.rb
|
234
|
+
- test/dummy/app/views/layouts/application.html.erb
|
235
|
+
- test/dummy/app/views/sync/users/_show.html.erb
|
236
|
+
- test/dummy/app/views/sync/users/refetch/_show.html.erb
|
237
|
+
- test/dummy/bin/bundle
|
238
|
+
- test/dummy/bin/rails
|
239
|
+
- test/dummy/bin/rake
|
240
|
+
- test/dummy/config.ru
|
241
|
+
- test/dummy/config/application.rb
|
242
|
+
- test/dummy/config/boot.rb
|
243
|
+
- test/dummy/config/database.yml
|
244
|
+
- test/dummy/config/environment.rb
|
245
|
+
- test/dummy/config/environments/development.rb
|
246
|
+
- test/dummy/config/environments/production.rb
|
247
|
+
- test/dummy/config/environments/test.rb
|
248
|
+
- test/dummy/config/initializers/backtrace_silencers.rb
|
249
|
+
- test/dummy/config/initializers/filter_parameter_logging.rb
|
250
|
+
- test/dummy/config/initializers/inflections.rb
|
251
|
+
- test/dummy/config/initializers/mime_types.rb
|
252
|
+
- test/dummy/config/initializers/secret_token.rb
|
253
|
+
- test/dummy/config/initializers/session_store.rb
|
254
|
+
- test/dummy/config/initializers/wrap_parameters.rb
|
255
|
+
- test/dummy/config/locales/en.yml
|
256
|
+
- test/dummy/config/routes.rb
|
257
|
+
- test/dummy/log/test.log
|
258
|
+
- test/dummy/public/404.html
|
259
|
+
- test/dummy/public/422.html
|
260
|
+
- test/dummy/public/500.html
|
261
|
+
- test/dummy/public/favicon.ico
|
262
|
+
- test/em_minitest_spec.rb
|
263
|
+
- test/fixtures/sync_auth_token_missing.yml
|
264
|
+
- test/fixtures/sync_erb.yml
|
265
|
+
- test/fixtures/sync_faye.yml
|
266
|
+
- test/fixtures/sync_pusher.yml
|
267
|
+
- test/models/group.rb
|
268
|
+
- test/models/project.rb
|
269
|
+
- test/models/todo.rb
|
270
|
+
- test/models/user.rb
|
271
|
+
- test/sync/abstract_controller.rb
|
272
|
+
- test/sync/action_test.rb
|
273
|
+
- test/sync/channel_test.rb
|
274
|
+
- test/sync/config_test.rb
|
275
|
+
- test/sync/erb_tracker_test.rb
|
276
|
+
- test/sync/faye_extension_test.rb
|
277
|
+
- test/sync/message_test.rb
|
278
|
+
- test/sync/model_test.rb
|
279
|
+
- test/sync/partial_creator_test.rb
|
280
|
+
- test/sync/partial_test.rb
|
281
|
+
- test/sync/protected_attributes_test.rb
|
282
|
+
- test/sync/reactor_test.rb
|
283
|
+
- test/sync/refetch_model_test.rb
|
284
|
+
- test/sync/refetch_partial_creator_test.rb
|
285
|
+
- test/sync/refetch_partial_test.rb
|
286
|
+
- test/sync/renderer_test.rb
|
287
|
+
- test/sync/resource_test.rb
|
288
|
+
- test/sync/scope_definition_test.rb
|
289
|
+
- test/sync/scope_test.rb
|
290
|
+
- test/test_helper.rb
|
291
|
+
- test/travis/sync.ru
|
292
|
+
- test/travis/sync.yml
|
293
|
+
homepage: http://github.com/chrismccord/render_sync
|
294
|
+
licenses:
|
295
|
+
- MIT
|
296
|
+
metadata: {}
|
297
|
+
post_install_message:
|
298
|
+
rdoc_options: []
|
299
|
+
require_paths:
|
300
|
+
- lib
|
301
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
302
|
+
requirements:
|
303
|
+
- - ">="
|
304
|
+
- !ruby/object:Gem::Version
|
305
|
+
version: '0'
|
306
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
307
|
+
requirements:
|
308
|
+
- - ">="
|
309
|
+
- !ruby/object:Gem::Version
|
310
|
+
version: 1.3.4
|
311
|
+
requirements: []
|
312
|
+
rubyforge_project:
|
313
|
+
rubygems_version: 2.2.5
|
314
|
+
signing_key:
|
315
|
+
specification_version: 4
|
316
|
+
summary: Realtime Rails Partials
|
317
|
+
test_files: []
|