volt 0.9.4 → 0.9.5.pre1
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 +4 -4
- data/CHANGELOG.md +5 -1
- data/Gemfile +3 -1
- data/lib/volt/cli/asset_compile.rb +8 -9
- data/lib/volt/extra_core/object.rb +3 -1
- data/lib/volt/models/associations.rb +9 -6
- data/lib/volt/models/buffer.rb +3 -0
- data/lib/volt/models/field_helpers.rb +38 -21
- data/lib/volt/models/model.rb +1 -1
- data/lib/volt/models/permissions.rb +2 -2
- data/lib/volt/models/validations/validations.rb +5 -1
- data/lib/volt/models/validators/numericality_validator.rb +6 -2
- data/lib/volt/page/bindings/each_binding.rb +7 -0
- data/lib/volt/page/bindings/view_binding.rb +22 -20
- data/lib/volt/server/component_templates.rb +21 -7
- data/lib/volt/server/message_bus/message_encoder.rb +4 -0
- data/lib/volt/server/message_bus/peer_to_peer/peer_connection.rb +1 -1
- data/lib/volt/server/middleware/default_middleware_stack.rb +1 -5
- data/lib/volt/server/rack/asset_files.rb +59 -13
- data/lib/volt/server/rack/component_code.rb +1 -7
- data/lib/volt/server/rack/index_files.rb +12 -4
- data/lib/volt/server/rack/opal_files.rb +29 -7
- data/lib/volt/server/template_handlers/sprockets_component_handler.rb +163 -0
- data/lib/volt/server.rb +2 -3
- data/lib/volt/utils/generic_pool.rb +1 -1
- data/lib/volt/version.rb +1 -1
- data/lib/volt/volt/app.rb +1 -1
- data/lib/volt.rb +6 -1
- data/spec/apps/kitchen_sink/config/base/index.html +3 -7
- data/spec/integration/bindings_spec.rb +1 -0
- data/spec/models/associations_spec.rb +18 -0
- data/spec/models/buffer_spec.rb +12 -0
- data/spec/server/rack/asset_files_spec.rb +35 -25
- data/templates/project/config/base/index.html +2 -7
- data/volt.gemspec +5 -5
- metadata +13 -28
- data/lib/volt/server/component_handler.rb +0 -42
- data/lib/volt/server/template_handlers/handlers.rb +0 -0
@@ -10,7 +10,7 @@ ENV['EXECJS_RUNTIME'] = 'Node'
|
|
10
10
|
# Sets up the maps for the opal assets, and source maps if enabled.
|
11
11
|
module Volt
|
12
12
|
class OpalFiles
|
13
|
-
attr_reader :environment
|
13
|
+
attr_reader :environment, :server
|
14
14
|
|
15
15
|
def initialize(builder, app_path, component_paths)
|
16
16
|
Opal::Processor.source_map_enabled = Volt.source_maps?
|
@@ -34,11 +34,12 @@ module Volt
|
|
34
34
|
# Opal::Processor.arity_check_enabled = !Volt.env.production?
|
35
35
|
# Opal::Processor.dynamic_require_severity = :raise
|
36
36
|
|
37
|
-
server = Opal::Server.new(prefix: '/')
|
37
|
+
@server = Opal::Server.new(prefix: '/assets', debug: Volt.source_maps?)
|
38
|
+
@server.use_index = false
|
38
39
|
|
39
40
|
@component_paths = component_paths
|
40
41
|
# @environment = Opal::Environment.new
|
41
|
-
@environment = server.sprockets
|
42
|
+
@environment = @server.sprockets
|
42
43
|
|
43
44
|
# Since the scope changes in builder blocks, we need to capture
|
44
45
|
# environment in closure
|
@@ -59,17 +60,38 @@ module Volt
|
|
59
60
|
Csso.install(environment)
|
60
61
|
end
|
61
62
|
|
62
|
-
server.append_path(app_path)
|
63
|
+
@server.append_path(app_path)
|
63
64
|
|
64
65
|
volt_gem_lib_path = File.expand_path(File.join(File.dirname(__FILE__), '../../..'))
|
65
|
-
server.append_path(volt_gem_lib_path)
|
66
|
+
@server.append_path(volt_gem_lib_path)
|
66
67
|
|
67
|
-
add_asset_folders(server)
|
68
|
+
add_asset_folders(@server)
|
68
69
|
|
70
|
+
env = @enviroment
|
69
71
|
builder.map '/assets' do
|
70
|
-
run
|
72
|
+
run environment
|
71
73
|
end
|
72
74
|
|
75
|
+
@environment.logger.level ||= Logger::DEBUG
|
76
|
+
source_map_enabled = Volt.source_maps?
|
77
|
+
if source_map_enabled
|
78
|
+
maps_prefix = Opal::Server::SOURCE_MAPS_PREFIX_PATH
|
79
|
+
maps_app = Opal::SourceMapServer.new(@environment, maps_prefix)
|
80
|
+
::Opal::Sprockets::SourceMapHeaderPatch.inject!(maps_prefix)
|
81
|
+
end
|
82
|
+
|
83
|
+
if source_map_enabled
|
84
|
+
builder.map(maps_prefix) do
|
85
|
+
require 'rack/conditionalget'
|
86
|
+
require 'rack/etag'
|
87
|
+
use Rack::ConditionalGet
|
88
|
+
use Rack::ETag
|
89
|
+
run maps_app
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
|
94
|
+
|
73
95
|
# map server.source_maps.prefix do
|
74
96
|
# run server.source_maps
|
75
97
|
# end
|
@@ -0,0 +1,163 @@
|
|
1
|
+
# This file Monkeypatches sprockets to provide custom file loading (from volt
|
2
|
+
# instead disk) for component root files. These files then require in all parts
|
3
|
+
# or include generated ruby for templates, routes, and tasks.
|
4
|
+
module Volt
|
5
|
+
class StatStub
|
6
|
+
def directory?
|
7
|
+
false
|
8
|
+
end
|
9
|
+
|
10
|
+
def file?
|
11
|
+
false
|
12
|
+
end
|
13
|
+
|
14
|
+
def stub?
|
15
|
+
true
|
16
|
+
end
|
17
|
+
|
18
|
+
def digest
|
19
|
+
"stub-digest-#{mtime}"
|
20
|
+
end
|
21
|
+
|
22
|
+
def mtime
|
23
|
+
# return a random mtime so it always reloads
|
24
|
+
rand(2_000_000_000)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
module Sprockets
|
30
|
+
# Internal: The first processor in the pipeline that reads the file into
|
31
|
+
# memory and passes it along as `input[:data]`.
|
32
|
+
class FileReader
|
33
|
+
def self.call(input)
|
34
|
+
env = input[:environment]
|
35
|
+
path = input[:filename]
|
36
|
+
|
37
|
+
# Handle a /components path match. /components will load up a component.
|
38
|
+
if path =~ /\/components\/[^.]+[.]rb$/
|
39
|
+
component_name = path.match(/\/components\/([^.]+)[.]rb$/)[1]
|
40
|
+
|
41
|
+
cached = env.cached
|
42
|
+
|
43
|
+
stats = cached.instance_variable_get('@stats')
|
44
|
+
|
45
|
+
stats[path] = Volt::StatStub.new
|
46
|
+
|
47
|
+
# Working with a component path
|
48
|
+
data = Volt::ComponentCode.new(component_name, $volt_app.component_paths, true).code
|
49
|
+
else
|
50
|
+
data = env.read_file(input[:filename], input[:content_type])
|
51
|
+
end
|
52
|
+
|
53
|
+
dependencies = Set.new(input[:metadata][:dependencies])
|
54
|
+
dependencies += [env.build_file_digest_uri(input[:filename])]
|
55
|
+
|
56
|
+
{ data: data, dependencies: dependencies }
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
module Sprockets
|
62
|
+
# Internal: File and path related utilities. Mixed into Environment.
|
63
|
+
#
|
64
|
+
# Probably would be called FileUtils, but that causes namespace annoyances
|
65
|
+
# when code actually wants to reference ::FileUtils.
|
66
|
+
module PathUtils
|
67
|
+
extend self
|
68
|
+
|
69
|
+
# Public: Like `File.file?`.
|
70
|
+
#
|
71
|
+
# path - String file path.
|
72
|
+
#
|
73
|
+
# Returns true path exists and is a file.
|
74
|
+
def file?(path)
|
75
|
+
# if path =~ /\/components\/[^.]+[.]rb$/
|
76
|
+
# return true
|
77
|
+
# end
|
78
|
+
|
79
|
+
if stat = self.stat(path)
|
80
|
+
stat.file?
|
81
|
+
elsif path =~ /^#{Volt.root}\/app\/components\/[^\/]+[.]rb$/
|
82
|
+
# Matches a component
|
83
|
+
return true
|
84
|
+
else
|
85
|
+
false
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
# Public: Like `File.directory?`.
|
90
|
+
#
|
91
|
+
# path - String file path.
|
92
|
+
#
|
93
|
+
# Returns true path exists and is a directory.
|
94
|
+
def directory?(path)
|
95
|
+
# if path == '/Users/ryanstout/Sites/volt/volt/app/components/main'
|
96
|
+
# return true
|
97
|
+
# end
|
98
|
+
|
99
|
+
if stat = self.stat(path)
|
100
|
+
stat.directory?
|
101
|
+
# else
|
102
|
+
elsif path =~ /^#{Volt.root}\/app\/components\/[^\/]+$/
|
103
|
+
# Matches a component
|
104
|
+
return true
|
105
|
+
else
|
106
|
+
false
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
module Sprockets
|
113
|
+
module PathDigestUtils
|
114
|
+
def stat_digest(path, stat)
|
115
|
+
if stat.directory?
|
116
|
+
# If its a directive, digest the list of filenames
|
117
|
+
digest_class.digest(self.entries(path).join(','))
|
118
|
+
elsif stat.file?
|
119
|
+
# If its a file, digest the contents
|
120
|
+
digest_class.file(path.to_s).digest
|
121
|
+
elsif stat.stub?
|
122
|
+
# Component lookup, custom digest that always invalidates
|
123
|
+
return stat.digest
|
124
|
+
else
|
125
|
+
raise TypeError, "stat was not a directory or file: #{stat.ftype}"
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
module Sprockets
|
132
|
+
module Resolve
|
133
|
+
def path_matches(load_path, logical_name, logical_basename)
|
134
|
+
|
135
|
+
dirname = File.dirname(File.join(load_path, logical_name))
|
136
|
+
candidates = dirname_matches(dirname, logical_basename)
|
137
|
+
deps = file_digest_dependency_set(dirname)
|
138
|
+
|
139
|
+
if load_path == "#{Volt.root}/app"
|
140
|
+
match = logical_name.match(/^components\/([^\/]+)$/)
|
141
|
+
if match && (component_name = match[1])
|
142
|
+
return [["#{Volt.root}/app/components/#{component_name}.rb", "application/javascript"]], deps
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
result = resolve_alternates(load_path, logical_name)
|
147
|
+
result[0].each do |fn|
|
148
|
+
candidates << [fn, parse_path_extnames(fn)[1]]
|
149
|
+
end
|
150
|
+
deps.merge(result[1])
|
151
|
+
|
152
|
+
dirname = File.join(load_path, logical_name)
|
153
|
+
if directory? dirname
|
154
|
+
result = dirname_matches(dirname, "index")
|
155
|
+
candidates.concat(result)
|
156
|
+
end
|
157
|
+
|
158
|
+
deps.merge(file_digest_dependency_set(dirname))
|
159
|
+
|
160
|
+
return candidates.select { |fn, _| file?(fn) }, deps
|
161
|
+
end
|
162
|
+
end
|
163
|
+
end
|
data/lib/volt/server.rb
CHANGED
@@ -5,13 +5,12 @@ require 'opal'
|
|
5
5
|
require 'rack'
|
6
6
|
require 'sass'
|
7
7
|
require 'volt/utils/tilt_patch'
|
8
|
-
require 'sprockets-sass'
|
9
8
|
|
10
9
|
require 'volt'
|
11
10
|
require 'volt/tasks/dispatcher'
|
12
11
|
require 'volt/tasks/task'
|
13
|
-
require 'volt/server/
|
14
|
-
require 'volt/server/
|
12
|
+
require 'volt/server/rack/component_code'
|
13
|
+
require 'volt/server/template_handlers/sprockets_component_handler'
|
15
14
|
|
16
15
|
require 'volt/server/websocket/websocket_handler'
|
17
16
|
require 'volt/utils/read_write_lock'
|
data/lib/volt/version.rb
CHANGED
data/lib/volt/volt/app.rb
CHANGED
@@ -44,7 +44,7 @@ module Volt
|
|
44
44
|
attr_reader :component_paths, :router, :live_query_pool,
|
45
45
|
:channel_live_queries, :app_path, :database, :message_bus,
|
46
46
|
:middleware, :browser
|
47
|
-
attr_accessor :sprockets
|
47
|
+
attr_accessor :sprockets, :opal_files
|
48
48
|
|
49
49
|
def initialize(app_path=nil)
|
50
50
|
if Volt.server? && !app_path
|
data/lib/volt.rb
CHANGED
@@ -2,14 +2,10 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<meta charset="UTF-8" />
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
<%= javascript_tags %>
|
6
|
+
|
7
|
+
<%= css_tags %>
|
8
8
|
|
9
|
-
<% css_files.each do |css_file| %>
|
10
|
-
<link href="<%= css_file %>" media="all" rel="stylesheet" type="text/css" />
|
11
|
-
<% end %>
|
12
|
-
|
13
9
|
</head>
|
14
10
|
<body>
|
15
11
|
|
@@ -9,6 +9,10 @@ class ::Address < Volt::Model
|
|
9
9
|
has_one :zip_info
|
10
10
|
end
|
11
11
|
|
12
|
+
class ::AddressBelongToOption < Volt::Model
|
13
|
+
belongs_to :someone, collection: :person, foreign_key: :id, local_key: :some_weird_id
|
14
|
+
end
|
15
|
+
|
12
16
|
class ::ZipInfo < Volt::Model
|
13
17
|
belongs_to :address
|
14
18
|
end
|
@@ -29,6 +33,20 @@ describe Volt::Associations do
|
|
29
33
|
expect(address.person.sync.id).to eq(@person.id)
|
30
34
|
end
|
31
35
|
|
36
|
+
it 'should support collection and foreign_key on belongs_to' do
|
37
|
+
@person = Person.new(name: 'Jimmy')
|
38
|
+
store.people << @person
|
39
|
+
@location = AddressBelongToOption.new(someone: @person)
|
40
|
+
|
41
|
+
store.address_belong_to_options << @location
|
42
|
+
|
43
|
+
@location.someone.then do |someone|
|
44
|
+
expect(someone.id).to eq(@person.id)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'should raise an exception if you try to use an association on a model that isn\'t associated with a repository'
|
49
|
+
|
32
50
|
it 'should associate via has_many' do
|
33
51
|
store._people!.first do |person|
|
34
52
|
|
data/spec/models/buffer_spec.rb
CHANGED
@@ -26,6 +26,18 @@ describe Volt::Buffer do
|
|
26
26
|
expect(result.class).to eq(Promise)
|
27
27
|
end
|
28
28
|
|
29
|
+
it 'should clear the buffer\'s changed attributes after a save' do
|
30
|
+
buffer = the_page._items.buffer
|
31
|
+
|
32
|
+
buffer._name = 'Jimithy'
|
33
|
+
|
34
|
+
expect(buffer.changed_attributes).to eq({name: [nil]})
|
35
|
+
|
36
|
+
buffer.save!
|
37
|
+
|
38
|
+
expect(buffer.changed_attributes).to eq({})
|
39
|
+
end
|
40
|
+
|
29
41
|
if RUBY_PLATFORM != 'opal'
|
30
42
|
it 'should copy attributes back from the save_to model incase it changes them during save' do
|
31
43
|
buffer = the_page._test_changed_attributes.buffer
|
@@ -1,6 +1,8 @@
|
|
1
1
|
if RUBY_PLATFORM != 'opal'
|
2
2
|
require 'spec_helper'
|
3
3
|
require 'volt/server/rack/asset_files'
|
4
|
+
require 'volt/server/template_handlers/sprockets_component_handler'
|
5
|
+
|
4
6
|
describe Volt::AssetFiles do
|
5
7
|
before do
|
6
8
|
spec_app_root = File.join(File.dirname(__FILE__), '../../apps/file_loading')
|
@@ -19,30 +21,30 @@ if RUBY_PLATFORM != 'opal'
|
|
19
21
|
context "when the component's dependencies.rb does not contain .disable_auto_import" do
|
20
22
|
it 'should list all JS files' do
|
21
23
|
main = Volt::AssetFiles.new('main', @component_paths)
|
22
|
-
expect(main.
|
23
|
-
'/assets/js/jquery-2.0.3.js',
|
24
|
-
'/assets/js/volt_js_polyfills.js',
|
25
|
-
'/assets/js/volt_watch.js',
|
26
|
-
'/assets/js/bootstrap.js',
|
27
|
-
'/assets/js/test2.js',
|
28
|
-
'/assets/js/test3.js',
|
29
|
-
'/assets/js/test1.js',
|
30
|
-
'/assets/volt/volt/app.js',
|
31
|
-
'/components/main.js'
|
24
|
+
expect(main.javascript(volt_app)).to eq([
|
25
|
+
[:src, '/assets/js/jquery-2.0.3.js'],
|
26
|
+
[:src, '/assets/js/volt_js_polyfills.js'],
|
27
|
+
[:src, '/assets/js/volt_watch.js'],
|
28
|
+
[:src, '/assets/js/bootstrap.js'],
|
29
|
+
[:src, '/assets/js/test2.js'],
|
30
|
+
[:src, '/assets/js/test3.js'],
|
31
|
+
[:src, '/assets/js/test1.js'],
|
32
|
+
[:src, '/assets/volt/volt/app.js'],
|
33
|
+
[:src, '/assets/components/main.js']
|
32
34
|
])
|
33
35
|
end
|
34
36
|
end
|
35
|
-
|
37
|
+
|
36
38
|
context "when the component's dependencies.rb contains .disable_auto_import" do
|
37
39
|
it 'should list only the files included via the css_file helpers' do
|
38
40
|
disabled_auto = Volt::AssetFiles.new('disable_auto', @component_paths)
|
39
|
-
expect(disabled_auto.
|
40
|
-
'/assets/js/jquery-2.0.3.js',
|
41
|
-
'/assets/js/volt_js_polyfills.js',
|
42
|
-
'/assets/js/volt_watch.js',
|
43
|
-
'/assets/disable_auto/assets/js/test1.js',
|
44
|
-
'/assets/volt/volt/app.js',
|
45
|
-
'/components/main.js'
|
41
|
+
expect(disabled_auto.javascript(volt_app)).to eq([
|
42
|
+
[:src, '/assets/js/jquery-2.0.3.js'],
|
43
|
+
[:src, '/assets/js/volt_js_polyfills.js'],
|
44
|
+
[:src, '/assets/js/volt_watch.js'],
|
45
|
+
[:src, '/assets/disable_auto/assets/js/test1.js'],
|
46
|
+
[:src, '/assets/volt/volt/app.js'],
|
47
|
+
[:src, '/assets/components/main.js']
|
46
48
|
])
|
47
49
|
end
|
48
50
|
end
|
@@ -54,7 +56,7 @@ if RUBY_PLATFORM != 'opal'
|
|
54
56
|
it 'should list all the asset files in that component' do
|
55
57
|
main = Volt::AssetFiles.new('main', @component_paths)
|
56
58
|
|
57
|
-
expect(main.
|
59
|
+
expect(main.css).to eq([
|
58
60
|
'/assets/css/notices.css',
|
59
61
|
'/assets/css/01-bootstrap.css',
|
60
62
|
'/assets/css/test3.css'
|
@@ -66,39 +68,39 @@ if RUBY_PLATFORM != 'opal'
|
|
66
68
|
it 'should list only the files included via the css_file helpers' do
|
67
69
|
disabled_auto = Volt::AssetFiles.new('disable_auto', @component_paths)
|
68
70
|
|
69
|
-
expect(disabled_auto.
|
71
|
+
expect(disabled_auto.css).to eq([
|
70
72
|
'/assets/css/notices.css',
|
71
73
|
'/assets/disable_auto/assets/css/test1.css'
|
72
74
|
])
|
73
75
|
end
|
74
76
|
end
|
75
77
|
end
|
76
|
-
|
78
|
+
|
77
79
|
describe '.is_url?' do
|
78
80
|
it 'should return true for URIs like //something.com/something.js' do
|
79
81
|
main = Volt::AssetFiles.new('main', @component_paths)
|
80
82
|
expect(main.url_or_path? '//something.com/a-folder/something.js').to eq(true)
|
81
83
|
end
|
82
|
-
|
84
|
+
|
83
85
|
it 'should return true for HTTP and HTTPS urls' do
|
84
86
|
main = Volt::AssetFiles.new('main', @component_paths)
|
85
87
|
expect(main.url_or_path? 'http://something.com/a-folder/something.js').to eq(true)
|
86
88
|
expect(main.url_or_path? 'https://something.com/a-folder/something.js').to eq(true)
|
87
89
|
end
|
88
|
-
|
90
|
+
|
89
91
|
it 'should return true for paths' do
|
90
92
|
main = Volt::AssetFiles.new('main', @component_paths)
|
91
93
|
expect(main.url_or_path? 'something.js').to eq(false)
|
92
94
|
expect(main.url_or_path? '/assets/something.js').to eq(true)
|
93
95
|
expect(main.url_or_path? '/assets/something/something.js').to eq(true)
|
94
96
|
end
|
95
|
-
|
97
|
+
|
96
98
|
it 'should return false for file names' do
|
97
99
|
main = Volt::AssetFiles.new('main', @component_paths)
|
98
100
|
expect(main.url_or_path? 'something.js').to eq(false)
|
99
101
|
expect(main.url_or_path? 'assets/something/something.js').to eq(false)
|
100
102
|
end
|
101
|
-
|
103
|
+
|
102
104
|
end
|
103
105
|
|
104
106
|
it 'should raise an exception for a missing component gem' do
|
@@ -121,5 +123,13 @@ if RUBY_PLATFORM != 'opal'
|
|
121
123
|
main.load_dependencies(path_to_missing_deps, 'component_name')
|
122
124
|
end.to_not raise_error
|
123
125
|
end
|
126
|
+
|
127
|
+
it 'should parse javascript src/body from the javascript tags' do
|
128
|
+
main = Volt::AssetFiles.new('main', @component_paths)
|
129
|
+
|
130
|
+
expect(main).to receive(:javascript_tags).and_return("<script src='/someurl.js'></script><script>var inlinejs = true;</script>")
|
131
|
+
|
132
|
+
expect(main.javascript(nil)).to eq([[:src, "/someurl.js"], [:body, "var inlinejs = true;"]])
|
133
|
+
end
|
124
134
|
end
|
125
135
|
end
|
@@ -6,13 +6,8 @@
|
|
6
6
|
<%# language difference. This file handles auto-loading all JS/Opal and CSS. %>
|
7
7
|
<head>
|
8
8
|
<meta charset="UTF-8" />
|
9
|
-
|
10
|
-
|
11
|
-
<% end %>
|
12
|
-
|
13
|
-
<% css_files.each do |css_file| %>
|
14
|
-
<link href="<%= css_file %>" media="all" rel="stylesheet" type="text/css" />
|
15
|
-
<% end %>
|
9
|
+
<%= javascript_tags %>
|
10
|
+
<%= css_tags %>
|
16
11
|
</head>
|
17
12
|
<body>
|
18
13
|
|
data/volt.gemspec
CHANGED
@@ -22,13 +22,13 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_dependency 'thor', '~> 0.19.0'
|
23
23
|
spec.add_dependency 'pry', '~> 0.10.1'
|
24
24
|
spec.add_dependency 'rack', '~> 1.5.0'
|
25
|
-
spec.add_dependency 'sprockets-sass', '~> 1.0.0'
|
26
|
-
spec.add_dependency 'sass', '~> 3.
|
25
|
+
# spec.add_dependency 'sprockets-sass', '~> 1.0.0'
|
26
|
+
spec.add_dependency 'sass', '~> 3.4.15'
|
27
27
|
spec.add_dependency 'listen', '~> 3.0.1'
|
28
28
|
spec.add_dependency 'configurations', '~> 2.0.0.pre'
|
29
|
-
spec.add_dependency 'opal', '~> 0.
|
29
|
+
spec.add_dependency 'opal', '~> 0.8.0'
|
30
30
|
spec.add_dependency 'bundler', '>= 1.5'
|
31
|
-
spec.add_dependency 'faye-websocket', '~> 0.
|
31
|
+
spec.add_dependency 'faye-websocket', '~> 0.10.0'
|
32
32
|
|
33
33
|
# Locking down concurrent-ruby because one currently used feature is going to
|
34
34
|
# be deprecated (which we need to build a work around for)
|
@@ -40,7 +40,7 @@ Gem::Specification.new do |spec|
|
|
40
40
|
|
41
41
|
# For testing
|
42
42
|
spec.add_development_dependency 'rspec', '~> 3.2.0'
|
43
|
-
spec.add_development_dependency 'opal-rspec', '~> 0.4.
|
43
|
+
spec.add_development_dependency 'opal-rspec', '~> 0.4.3'
|
44
44
|
spec.add_development_dependency 'capybara', '~> 2.4.2'
|
45
45
|
|
46
46
|
# There is a big performance issue with selenium-webdriver on v2.45.0
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: volt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.5.pre1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Stout
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-07-
|
11
|
+
date: 2015-07-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -52,34 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 1.5.0
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: sprockets-sass
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 1.0.0
|
62
|
-
type: :runtime
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: 1.0.0
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: sass
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
72
58
|
requirements:
|
73
59
|
- - "~>"
|
74
60
|
- !ruby/object:Gem::Version
|
75
|
-
version: 3.
|
61
|
+
version: 3.4.15
|
76
62
|
type: :runtime
|
77
63
|
prerelease: false
|
78
64
|
version_requirements: !ruby/object:Gem::Requirement
|
79
65
|
requirements:
|
80
66
|
- - "~>"
|
81
67
|
- !ruby/object:Gem::Version
|
82
|
-
version: 3.
|
68
|
+
version: 3.4.15
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: listen
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,14 +100,14 @@ dependencies:
|
|
114
100
|
requirements:
|
115
101
|
- - "~>"
|
116
102
|
- !ruby/object:Gem::Version
|
117
|
-
version: 0.
|
103
|
+
version: 0.8.0
|
118
104
|
type: :runtime
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
107
|
requirements:
|
122
108
|
- - "~>"
|
123
109
|
- !ruby/object:Gem::Version
|
124
|
-
version: 0.
|
110
|
+
version: 0.8.0
|
125
111
|
- !ruby/object:Gem::Dependency
|
126
112
|
name: bundler
|
127
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,14 +128,14 @@ dependencies:
|
|
142
128
|
requirements:
|
143
129
|
- - "~>"
|
144
130
|
- !ruby/object:Gem::Version
|
145
|
-
version: 0.
|
131
|
+
version: 0.10.0
|
146
132
|
type: :runtime
|
147
133
|
prerelease: false
|
148
134
|
version_requirements: !ruby/object:Gem::Requirement
|
149
135
|
requirements:
|
150
136
|
- - "~>"
|
151
137
|
- !ruby/object:Gem::Version
|
152
|
-
version: 0.
|
138
|
+
version: 0.10.0
|
153
139
|
- !ruby/object:Gem::Dependency
|
154
140
|
name: concurrent-ruby
|
155
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -198,14 +184,14 @@ dependencies:
|
|
198
184
|
requirements:
|
199
185
|
- - "~>"
|
200
186
|
- !ruby/object:Gem::Version
|
201
|
-
version: 0.4.
|
187
|
+
version: 0.4.3
|
202
188
|
type: :development
|
203
189
|
prerelease: false
|
204
190
|
version_requirements: !ruby/object:Gem::Requirement
|
205
191
|
requirements:
|
206
192
|
- - "~>"
|
207
193
|
- !ruby/object:Gem::Version
|
208
|
-
version: 0.4.
|
194
|
+
version: 0.4.3
|
209
195
|
- !ruby/object:Gem::Dependency
|
210
196
|
name: capybara
|
211
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -527,7 +513,6 @@ files:
|
|
527
513
|
- lib/volt/router/routes.rb
|
528
514
|
- lib/volt/server.rb
|
529
515
|
- lib/volt/server/banner.txt
|
530
|
-
- lib/volt/server/component_handler.rb
|
531
516
|
- lib/volt/server/component_templates.rb
|
532
517
|
- lib/volt/server/forking_server.rb
|
533
518
|
- lib/volt/server/forking_server/boot_error.html.erb
|
@@ -564,7 +549,7 @@ files:
|
|
564
549
|
- lib/volt/server/rack/source_map_server.rb
|
565
550
|
- lib/volt/server/socket_connection_handler.rb
|
566
551
|
- lib/volt/server/socket_connection_handler_stub.rb
|
567
|
-
- lib/volt/server/template_handlers/
|
552
|
+
- lib/volt/server/template_handlers/sprockets_component_handler.rb
|
568
553
|
- lib/volt/server/websocket/rack_server_adaptor.rb
|
569
554
|
- lib/volt/server/websocket/websocket_handler.rb
|
570
555
|
- lib/volt/spec/capybara.rb
|
@@ -849,9 +834,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
849
834
|
version: '2.1'
|
850
835
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
851
836
|
requirements:
|
852
|
-
- - "
|
837
|
+
- - ">"
|
853
838
|
- !ruby/object:Gem::Version
|
854
|
-
version:
|
839
|
+
version: 1.3.1
|
855
840
|
requirements: []
|
856
841
|
rubyforge_project:
|
857
842
|
rubygems_version: 2.4.5
|