volt 0.9.1.pre4 → 0.9.1.pre5

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.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +3 -0
  3. data/CONTRIBUTING.md +1 -1
  4. data/README.md +1 -0
  5. data/app/volt/tasks/query_tasks.rb +4 -3
  6. data/app/volt/tasks/store_tasks.rb +1 -1
  7. data/lib/volt/boot.rb +8 -7
  8. data/lib/volt/cli/asset_compile.rb +1 -1
  9. data/lib/volt/cli/console.rb +14 -3
  10. data/lib/volt/cli/new_gem.rb +3 -3
  11. data/lib/volt/cli.rb +3 -3
  12. data/lib/volt/config.rb +7 -1
  13. data/lib/volt/data_stores/base.rb +7 -0
  14. data/lib/volt/data_stores/data_store.rb +10 -3
  15. data/lib/volt/data_stores/mongo_driver.rb +58 -7
  16. data/lib/volt/models/associations.rb +2 -2
  17. data/lib/volt/models/persistors/array_store.rb +24 -6
  18. data/lib/volt/models/persistors/base.rb +4 -0
  19. data/lib/volt/models/persistors/model_store.rb +4 -15
  20. data/lib/volt/page/bindings/attribute_binding.rb +17 -15
  21. data/lib/volt/page/bindings/each_binding.rb +14 -17
  22. data/lib/volt/page/bindings/view_binding/controller_handler.rb +24 -0
  23. data/lib/volt/page/bindings/view_binding.rb +10 -30
  24. data/lib/volt/page/document_events.rb +7 -4
  25. data/lib/volt/page/page.rb +19 -13
  26. data/lib/volt/page/path_string_renderer.rb +41 -0
  27. data/lib/volt/page/targets/dom_section.rb +5 -2
  28. data/lib/volt/reactive/computation.rb +3 -1
  29. data/lib/volt/reactive/reactive_accessors.rb +8 -7
  30. data/lib/volt/reactive/reactive_array.rb +2 -0
  31. data/lib/volt/server/component_handler.rb +3 -3
  32. data/lib/volt/server/component_templates.rb +32 -6
  33. data/lib/volt/server/forking_server.rb +4 -2
  34. data/lib/volt/server/rack/asset_files.rb +5 -1
  35. data/lib/volt/server/rack/component_paths.rb +6 -4
  36. data/lib/volt/server/rack/opal_files.rb +16 -11
  37. data/lib/volt/server/rack/quiet_common_logger.rb +1 -1
  38. data/lib/volt/server.rb +1 -1
  39. data/lib/volt/spec/setup.rb +1 -1
  40. data/lib/volt/version.rb +5 -0
  41. data/lib/volt/volt/app.rb +12 -2
  42. data/spec/apps/kitchen_sink/app/main/views/mailers/welcome.email +12 -0
  43. data/spec/integration/http_endpoints_spec.rb +1 -3
  44. data/spec/integration/user_spec.rb +0 -10
  45. data/spec/models/associations_spec.rb +0 -3
  46. data/spec/models/model_spec.rb +13 -0
  47. data/spec/models/persistors/flash_spec.rb +45 -0
  48. data/spec/models/validators/phone_number_validator_spec.rb +2 -2
  49. data/spec/page/bindings/template_binding/view_lookup_for_path_spec.rb +0 -5
  50. data/spec/page/path_string_renderer_spec.rb +23 -0
  51. data/spec/page/sub_context_spec.rb +1 -0
  52. data/spec/router/routes_spec.rb +24 -5
  53. data/spec/server/html_parser/view_handler_spec.rb +20 -0
  54. data/spec/server/rack/quite_common_logger_spec.rb +3 -3
  55. data/spec/spec_helper.rb +0 -4
  56. data/spec/tasks/query_tracker_spec.rb +30 -0
  57. data/templates/newgem/lib/newgem/version.rb.tt +7 -0
  58. data/templates/newgem/newgem.gemspec.tt +2 -4
  59. data/templates/project/Gemfile.tt +5 -2
  60. data/templates/project/config/app.rb.tt +49 -1
  61. data/volt.gemspec +12 -10
  62. metadata +24 -28
  63. data/VERSION +0 -1
  64. data/app/volt/tasks/live_query/data_store.rb +0 -33
  65. data/templates/newgem/VERSION +0 -1
@@ -0,0 +1,45 @@
1
+ require 'spec_helper'
2
+
3
+ module Volt
4
+ module Persistors
5
+ describe Flash do
6
+ let(:fake_parent) { double('Parent', delete: true) }
7
+ let(:fake_passed_model) { double }
8
+
9
+ let(:fake_model) do
10
+ double(
11
+ 'Model',
12
+ size: 1,
13
+ parent: fake_parent,
14
+ path: '12',
15
+ delete: true
16
+ )
17
+ end
18
+
19
+ describe '#added' do
20
+ it 'returns nil' do
21
+ flash = described_class.new double
22
+
23
+ expect(flash.added(double, 0)).to be_nil
24
+ end
25
+ end
26
+
27
+ describe '#clear_model' do
28
+ it 'sends #delete to @model' do
29
+ described_class.new(fake_model).clear_model fake_passed_model
30
+
31
+ expect(fake_model).to have_received(:delete).with(fake_passed_model)
32
+ end
33
+
34
+ it 'with a size of zero, parent receives #delete' do
35
+ collection_name = fake_model.path[-1]
36
+ allow(fake_model).to receive(:size).and_return 0
37
+
38
+ described_class.new(fake_model).clear_model fake_passed_model
39
+
40
+ expect(fake_parent).to have_received(:delete).with(collection_name)
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -10,7 +10,7 @@ describe Volt::PhoneNumberValidator do
10
10
  let(:options) { true }
11
11
 
12
12
  let(:phone_number) { field_content }
13
- let(:field_contet) { valid_us_number }
13
+ let(:field_content) { valid_us_number }
14
14
  let(:valid_us_number) { '(123)-123-1234' }
15
15
  let(:valid_intl_number) { '+12 123 123 1234' }
16
16
  let(:invalid_number) { '1234-123-123456' }
@@ -100,4 +100,4 @@ describe Volt::PhoneNumberValidator do
100
100
 
101
101
  specify { expect(subject.valid?).to eq true }
102
102
  end
103
- end
103
+ end
@@ -1,11 +1,6 @@
1
1
  require 'spec_helper'
2
2
  require 'volt/page/bindings/view_binding'
3
3
 
4
- # Setup page stub
5
-
6
- class Volt::Page
7
- attr_accessor :templates
8
- end
9
4
 
10
5
  describe Volt::ViewBinding do
11
6
  before do
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+ require 'volt/page/path_string_renderer'
3
+
4
+
5
+ unless RUBY_PLATFORM == 'opal'
6
+ describe Volt::PathStringRenderer do
7
+ before do
8
+ kitchen_sink_path = File.expand_path(File.join(File.dirname(__FILE__), '../apps/kitchen_sink'))
9
+ app = Volt::App.new(kitchen_sink_path)
10
+ @page = app.page
11
+ end
12
+
13
+ it 'should render a section' do
14
+ html = Volt::PathStringRenderer.new('main/mailers/welcome/subject', nil, @page).html
15
+ expect(html).to eq("\n Welcome to the site!\n\n")
16
+ end
17
+
18
+ it 'should render a section with a variable' do
19
+ html = Volt::PathStringRenderer.new('main/mailers/welcome/html', {:name => 'Jimmy'}, @page).html
20
+ expect(html).to eq("\n <h1>Welcome Jimmy</h1>\n\n <p>Glad you signed up!</p>\n\n")
21
+ end
22
+ end
23
+ end
@@ -1,3 +1,4 @@
1
+ require 'spec_helper'
1
2
  require 'volt/page/sub_context'
2
3
 
3
4
  describe Volt::SubContext do
@@ -48,7 +48,7 @@ describe Volt::Routes do
48
48
  nil => { controller: 'comments', action: 'show', id: 1 }
49
49
  }
50
50
  }
51
- )
51
+ )
52
52
  end
53
53
 
54
54
  it 'should setup param matchers' do
@@ -74,7 +74,7 @@ describe Volt::Routes do
74
74
  expect(param_matches[:get].map { |v| v[0] }).to eq([
75
75
  { controller: 'articles', action: 'index' },
76
76
  { controller: 'articles', action: 'show', id: nil },
77
- ])
77
+ ])
78
78
  end
79
79
 
80
80
 
@@ -136,13 +136,13 @@ describe Volt::Routes do
136
136
  expect(params).to eq(controller: 'people', action: 'update')
137
137
 
138
138
  params = @routes.url_to_params(:delete, '/people/2')
139
- expect(params).to eq(controller: 'people', action: 'destroy')
139
+ expect(params).to eq(controller: 'people', action: 'destroy')
140
140
 
141
141
  params = @routes.url_to_params(:get, '/articles/2')
142
142
  expect(params).to eq(controller: 'articles', action: 'show', id: '2')
143
143
 
144
144
  params = @routes.url_to_params(:put, '/articles/2/comments/9')
145
- expect(params).to eq(controller: 'comments', action: 'update', articles_id: '2', id: '9')
145
+ expect(params).to eq(controller: 'comments', action: 'update', articles_id: '2', id: '9')
146
146
  end
147
147
 
148
148
  it 'should go from params to url' do
@@ -174,7 +174,11 @@ describe Volt::Routes do
174
174
 
175
175
  url, params = @routes.params_to_url(controller: 'articles', action: 'update', method: :put, id: 99, other: 'xyz')
176
176
  expect(url).to eq('/articles/99')
177
- expect(params).to eq({other: 'xyz'})
177
+ expect(params).to eq({other: 'xyz'})
178
+
179
+ url, params = @routes.params_to_url({})
180
+ expect(url).to eq(nil)
181
+ expect(params).to eq(nil)
178
182
  end
179
183
 
180
184
  it 'should test that params match a param matcher' do
@@ -202,6 +206,21 @@ describe Volt::Routes do
202
206
  match, params = routes.send(:check_params_match, { view: 'blog', id: '55', _extra: 'some value' }, view: 'blog', id: '55')
203
207
  expect(match).to eq(true)
204
208
  expect(params).to eq(_extra: 'some value')
209
+
210
+ match, params = routes.send(:check_params_match, { view: 'blog', id: '55' }, view: 'blog', id: '20')
211
+ expect(match).to eq(false)
212
+ end
213
+
214
+ it 'should not match params that have no matches at all' do
215
+ routes = Volt::Routes.new
216
+ match, params = routes.send(:check_params_match, { view: '', id: false }, bleep: {volt: 'rocks'} )
217
+ expect(match).to eq(false)
218
+ end
219
+
220
+ it 'should not match params that have a nil value' do
221
+ routes = Volt::Routes.new
222
+ match, params = routes.send(:check_params_match, { view: 'blog', id: false }, bleep: nil )
223
+ expect(match).to eq(false)
205
224
  end
206
225
 
207
226
  it 'should match routes' do
@@ -0,0 +1,20 @@
1
+ if RUBY_PLATFORM == 'opal'
2
+ else
3
+ require 'benchmark'
4
+ require 'volt/server/html_parser/view_handler'
5
+
6
+ describe Volt::ViewHandler do
7
+ let(:handler) { Volt::ViewHandler.new('main/main/main') }
8
+
9
+ it 'handles tags' do
10
+ handler.comment('Yowza!')
11
+ handler.start_tag('a', {href: 'yahoo.com'}, false)
12
+ handler.text('Cool in 1996')
13
+ handler.end_tag('a')
14
+
15
+ expectation = '<!--Yowza!--><a href="yahoo.com">Cool in 1996</a>'
16
+ expect(handler.html).to eq(expectation)
17
+ end
18
+ end
19
+
20
+ end
@@ -24,7 +24,7 @@ unless RUBY_PLATFORM == 'opal'
24
24
  end
25
25
 
26
26
  describe 'when request path has no file extension and request run over web socket' do
27
- let(:env) { {'REQUEST_PATH' => '/file'} }
27
+ let(:env) { {'PATH_INFO' => '/file'} }
28
28
 
29
29
  it "calls 'log' method" do
30
30
  expect(subject).to receive(:log)
@@ -33,7 +33,7 @@ unless RUBY_PLATFORM == 'opal'
33
33
  end
34
34
 
35
35
  describe 'when request path has file extension' do
36
- let(:env) { {'REQUEST_PATH' => '/file.ext'} }
36
+ let(:env) { {'PATH_INFO' => '/file.ext'} }
37
37
 
38
38
  it "doesn't call 'log' method" do
39
39
  expect(subject).not_to receive(:log)
@@ -42,7 +42,7 @@ unless RUBY_PLATFORM == 'opal'
42
42
  end
43
43
 
44
44
  describe 'when request run over web socket' do
45
- let(:env) { {'REQUEST_PATH' => '/channel'} }
45
+ let(:env) { {'PATH_INFO' => '/channel'} }
46
46
 
47
47
  it "doesn't call 'log' method" do
48
48
  expect(subject).not_to receive(:log)
data/spec/spec_helper.rb CHANGED
@@ -23,10 +23,6 @@ Volt.spec_setup(kitchen_sink_path)
23
23
 
24
24
  unless RUBY_PLATFORM == 'opal'
25
25
  RSpec.configure do |config|
26
- # config.before(:each) do
27
- # DataStore.new.drop_database
28
- # end
29
-
30
26
  config.run_all_when_everything_filtered = true
31
27
  config.filter_run :focus
32
28
 
@@ -31,6 +31,14 @@ if RUBY_PLATFORM != 'opal'
31
31
 
32
32
  @items.insert(index, item)
33
33
  end
34
+
35
+ def notify_changed(id, data, skip_channel)
36
+ item = @items.find{ |item| item['_id'] == id }
37
+ idx = @items.index(item)
38
+ @items.delete(item)
39
+ @items.insert(idx, data)
40
+ end
41
+
34
42
  end
35
43
 
36
44
  before do
@@ -113,5 +121,27 @@ if RUBY_PLATFORM != 'opal'
113
121
  @query_tracker.run
114
122
  expect(@live_query.items).to eq(@items)
115
123
  end
124
+
125
+ it 'should notify data hash has changed' do
126
+ @items = [
127
+ { '_id' => 1, '_name' => 'one' },
128
+ { '_id' => 2, '_name' => 'two' },
129
+ { '_id' => 3, '_name' => 'three' },
130
+ { '_id' => 4, '_name' => 'four' },
131
+ { '_id' => 5, '_name' => 'five' }
132
+ ]
133
+ @query_tracker.run
134
+ @items = [
135
+ { '_id' => 1, '_name' => 'some' },
136
+ { '_id' => 2, '_name' => 'values' },
137
+ { '_id' => 3, '_name' => 'have' },
138
+ { '_id' => 4, '_name' => 'changed' },
139
+ { '_id' => 5, '_name' => 'other' }
140
+ ]
141
+ expect(@live_query.items).to_not eq(@items)
142
+ @query_tracker.run
143
+ expect(@live_query.items).to eq(@items)
144
+
145
+ end
116
146
  end
117
147
  end
@@ -0,0 +1,7 @@
1
+ <%- config[:constant_array].each_with_index do |c,i| -%>
2
+ <%= ' '*i %>module <%= c %>
3
+ <%- end -%>
4
+ <%= ' '*config[:constant_array].size %>VERSION = "0.1.0"
5
+ <%- (config[:constant_array].size-1).downto(0) do |i| -%>
6
+ <%= ' '*i %>end
7
+ <%- end -%>
@@ -1,13 +1,11 @@
1
1
  # coding: utf-8
2
2
  lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
-
5
- version = File.read(File.expand_path('../VERSION', __FILE__)).strip
6
-
4
+ require '<%=config[:namespaced_path]%>/version'
7
5
 
8
6
  Gem::Specification.new do |spec|
9
7
  spec.name = <%=config[:name].inspect%>
10
- spec.version = version
8
+ spec.version = <%=config[:constant_name]%>::VERSION
11
9
  spec.authors = [<%=config[:author].inspect%>]
12
10
  spec.email = [<%=config[:email].inspect%>]
13
11
  spec.summary = %q{TODO: Write a short summary. Required.}
@@ -10,9 +10,12 @@ gem 'volt-bootstrap', '~> 0.0.10'
10
10
  gem 'volt-bootstrap_jumbotron_theme', '~> 0.1.0'
11
11
 
12
12
  # User templates for login, signup, and logout menu.
13
- gem 'volt-user_templates', '~> 0.1.3'
13
+ gem 'volt-user_templates', '~> 0.2.0'
14
14
 
15
- group :development, :test do
15
+ # Add ability to send e-mail from apps.
16
+ gem 'volt-mailer', '~> 0.0.2'
17
+
18
+ group :test do
16
19
  # Testing dependencies
17
20
  gem 'rspec', '~> 3.2.0'
18
21
  gem 'opal-rspec', '~> 0.4.2'
@@ -1,6 +1,16 @@
1
1
  Volt.configure do |config|
2
2
  # Setup your global app config here.
3
3
 
4
+ #######################################
5
+ # Basic App Info (stuff you should set)
6
+ #######################################
7
+ config.domain = '<%= config[:domain] %>.com'
8
+ config.app_name = '<%= config[:app_name] %>'
9
+ config.mailer.from = '<%= config[:app_name] %> <no-reply@<%= config[:domain] %>.com>'
10
+
11
+ ############
12
+ # App Secret
13
+ ############
4
14
  # Your app secret is used for signing things like the user cookie so it can't
5
15
  # be tampered with. A random value is generated on new projects that will work
6
16
  # without the need to customize. Make sure this value doesn't leave your server.
@@ -12,11 +22,17 @@ Volt.configure do |config|
12
22
  #
13
23
  config.app_secret = '<%= SecureRandom.urlsafe_base64(50) %>'
14
24
 
25
+ ###############
26
+ # Log Filtering
27
+ ###############
15
28
  # Data updates from the client come in via Tasks. The task dispatcher logs all calls to tasks.
16
29
  # By default hashes in the arguments can be filtered based on keys. So any hash with a key of
17
30
  # password will be filtered. You can add more fields to filter below:
18
31
  config.filter_keys = [:password]
19
32
 
33
+ ##########
34
+ # Database
35
+ ##########
20
36
  # Database config all start with db_ and can be set either in the config
21
37
  # file or with an environment variable (DB_NAME for example).
22
38
 
@@ -25,17 +41,49 @@ Volt.configure do |config|
25
41
  # config.db_host = 'localhost'
26
42
  # config.db_port = 27017
27
43
 
44
+ #####################
28
45
  # Compression options
29
-
46
+ #####################
30
47
  # If you are not running behind something like nginx in production, you can
31
48
  # have rack deflate all files.
32
49
  # config.deflate = true
33
50
 
51
+ #######################
34
52
  # Public configurations
53
+ #######################
35
54
  # Anything under config.public will be sent to the client as well as the server,
36
55
  # so be sure no private data ends up under public
37
56
 
38
57
  # Use username instead of email as the login
39
58
  # config.public.auth.use_username = true
40
59
 
60
+ #####################
61
+ # Compression Options
62
+ #####################
63
+ # Disable or enable css/js compression. Default is to only run in production.
64
+ # if Volt.env.production?
65
+ # config.compress_javascript = true
66
+ # config.compress_css = true
67
+ # end
68
+
69
+ ################
70
+ # Mailer options
71
+ ################
72
+ # The volt-mailer gem uses pony (https://github.com/benprew/pony) to deliver e-mail. Any
73
+ # options you would pass to pony can be setup below.
74
+ # NOTE: The from address is setup at the top
75
+
76
+ # Normally pony uses /usr/sbin/sendmail if one is installed. You can specify smtp below:
77
+ # config.mailer.via = :smtp
78
+ # config.mailer.via_options = {
79
+ # :address => 'smtp.yourserver.com',
80
+ # :port => '25',
81
+ # :user_name => 'user',
82
+ # :password => 'password',
83
+ # :authentication => :plain, # :plain, :login, :cram_md5, no auth by default
84
+ # :domain => "localhost.localdomain" # the HELO domain provided by the client to the server
85
+ # }
86
+
87
+
88
+
41
89
  end
data/volt.gemspec CHANGED
@@ -1,16 +1,19 @@
1
- # coding: utf-8
2
1
  lib = File.expand_path('../lib', __FILE__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
-
5
- version = File.read(File.expand_path('../VERSION', __FILE__)).strip
3
+ require 'volt/version'
6
4
 
7
5
  Gem::Specification.new do |spec|
8
6
  spec.name = 'volt'
9
- spec.version = version
7
+ spec.version = Volt::Version::STRING
8
+ spec.platform = Gem::Platform::RUBY
9
+ spec.required_ruby_version = '>= 2.1'
10
10
  spec.authors = ['Ryan Stout']
11
11
  spec.email = ['ryan@agileproductions.com']
12
- spec.summary = 'A ruby web framework where your ruby runs on both server and client (via Opal)'
13
- # spec.description = %q{}
12
+ spec.summary = 'A reactive Ruby web framework.'
13
+ spec.description = <<-EOF
14
+ A reactive Ruby web framework where your Ruby code runs on both the server
15
+ and the client (via Opal).
16
+ EOF
14
17
  spec.homepage = 'http://voltframework.com'
15
18
  spec.license = 'MIT'
16
19
 
@@ -20,17 +23,16 @@ Gem::Specification.new do |spec|
20
23
  spec.require_paths = ['lib']
21
24
 
22
25
  spec.add_dependency 'thor', '~> 0.19.0'
23
- spec.add_dependency 'pry', '~> 0.10.0'
26
+ spec.add_dependency 'pry', '~> 0.10.1'
24
27
  spec.add_dependency 'rack', '~> 1.5.0'
25
28
  spec.add_dependency 'sprockets-sass', '~> 1.0.0'
26
29
  spec.add_dependency 'sass', '~> 3.2.5'
27
30
  spec.add_dependency 'mongo', '~> 1.9.0'
28
31
  spec.add_dependency 'listen', '~> 2.8.0'
29
32
  spec.add_dependency 'uglifier', '>= 2.4.0'
30
- spec.add_dependency "configurations", "~> 2.0.0.pre"
31
- spec.add_dependency 'yui-compressor', '~> 0.12.0'
33
+ spec.add_dependency 'configurations', '~> 2.0.0.pre'
34
+ spec.add_dependency 'ruby-clean-css', '~> 1.0.0'
32
35
  spec.add_dependency 'opal', '~> 0.7.2'
33
- spec.add_dependency 'opal-jquery', '~> 0.3.0'
34
36
  spec.add_dependency 'bundler', '>= 1.5'
35
37
  spec.add_dependency 'faye-websocket', '~> 0.9.2'
36
38
  spec.add_dependency 'concurrent-ruby', '~> 0.8.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.1.pre4
4
+ version: 0.9.1.pre5
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-04-30 00:00:00.000000000 Z
11
+ date: 2015-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.10.0
33
+ version: 0.10.1
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.10.0
40
+ version: 0.10.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rack
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -137,19 +137,19 @@ dependencies:
137
137
  - !ruby/object:Gem::Version
138
138
  version: 2.0.0.pre
139
139
  - !ruby/object:Gem::Dependency
140
- name: yui-compressor
140
+ name: ruby-clean-css
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: 0.12.0
145
+ version: 1.0.0
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 0.12.0
152
+ version: 1.0.0
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: opal
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -164,20 +164,6 @@ dependencies:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
166
  version: 0.7.2
167
- - !ruby/object:Gem::Dependency
168
- name: opal-jquery
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - "~>"
172
- - !ruby/object:Gem::Version
173
- version: 0.3.0
174
- type: :runtime
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - "~>"
179
- - !ruby/object:Gem::Version
180
- version: 0.3.0
181
167
  - !ruby/object:Gem::Dependency
182
168
  name: bundler
183
169
  requirement: !ruby/object:Gem::Requirement
@@ -472,7 +458,9 @@ dependencies:
472
458
  - - "~>"
473
459
  - !ruby/object:Gem::Version
474
460
  version: 2.0.0
475
- description:
461
+ description: |2
462
+ A reactive Ruby web framework where your Ruby code runs on both the server
463
+ and the client (via Opal).
476
464
  email:
477
465
  - ryan@agileproductions.com
478
466
  executables:
@@ -492,14 +480,12 @@ files:
492
480
  - LICENSE.txt
493
481
  - README.md
494
482
  - Rakefile
495
- - VERSION
496
483
  - app/volt/assets/css/notices.css.scss
497
484
  - app/volt/assets/js/jquery-2.0.3.js
498
485
  - app/volt/assets/js/volt_js_polyfills.js
499
486
  - app/volt/config/dependencies.rb
500
487
  - app/volt/controllers/notices_controller.rb
501
488
  - app/volt/models/user.rb
502
- - app/volt/tasks/live_query/data_store.rb
503
489
  - app/volt/tasks/live_query/live_query.rb
504
490
  - app/volt/tasks/live_query/live_query_pool.rb
505
491
  - app/volt/tasks/live_query/query_tracker.rb
@@ -524,6 +510,7 @@ files:
524
510
  - lib/volt/controllers/actions.rb
525
511
  - lib/volt/controllers/http_controller.rb
526
512
  - lib/volt/controllers/model_controller.rb
513
+ - lib/volt/data_stores/base.rb
527
514
  - lib/volt/data_stores/data_store.rb
528
515
  - lib/volt/data_stores/mongo_driver.rb
529
516
  - lib/volt/extra_core/array.rb
@@ -599,6 +586,7 @@ files:
599
586
  - lib/volt/page/document.rb
600
587
  - lib/volt/page/document_events.rb
601
588
  - lib/volt/page/page.rb
589
+ - lib/volt/page/path_string_renderer.rb
602
590
  - lib/volt/page/string_template_renderer.rb
603
591
  - lib/volt/page/sub_context.rb
604
592
  - lib/volt/page/targets/attribute_section.rb
@@ -673,6 +661,7 @@ files:
673
661
  - lib/volt/utils/tilt_patch.rb
674
662
  - lib/volt/utils/timers.rb
675
663
  - lib/volt/utils/volt_user_error.rb
664
+ - lib/volt/version.rb
676
665
  - lib/volt/volt/app.rb
677
666
  - lib/volt/volt/core.rb
678
667
  - lib/volt/volt/environment.rb
@@ -695,6 +684,7 @@ files:
695
684
  - spec/apps/kitchen_sink/app/main/controllers/upload_controller.rb
696
685
  - spec/apps/kitchen_sink/app/main/controllers/yield_component_controller.rb
697
686
  - spec/apps/kitchen_sink/app/main/models/user.rb
687
+ - spec/apps/kitchen_sink/app/main/views/mailers/welcome.email
698
688
  - spec/apps/kitchen_sink/app/main/views/main/bindings.html
699
689
  - spec/apps/kitchen_sink/app/main/views/main/cookie_test.html
700
690
  - spec/apps/kitchen_sink/app/main/views/main/first_last.html
@@ -745,6 +735,7 @@ files:
745
735
  - spec/models/model_spec.rb
746
736
  - spec/models/model_state_spec.rb
747
737
  - spec/models/permissions_spec.rb
738
+ - spec/models/persistors/flash_spec.rb
748
739
  - spec/models/persistors/params_spec.rb
749
740
  - spec/models/persistors/store_spec.rb
750
741
  - spec/models/url_spec.rb
@@ -760,6 +751,7 @@ files:
760
751
  - spec/page/bindings/content_binding_spec.rb
761
752
  - spec/page/bindings/template_binding/view_lookup_for_path_spec.rb
762
753
  - spec/page/bindings/template_binding_spec.rb
754
+ - spec/page/path_string_renderer_spec.rb
763
755
  - spec/page/sub_context_spec.rb
764
756
  - spec/reactive/class_eventable_spec.rb
765
757
  - spec/reactive/computation_spec.rb
@@ -770,6 +762,7 @@ files:
770
762
  - spec/router/routes_spec.rb
771
763
  - spec/server/html_parser/sample_page.html
772
764
  - spec/server/html_parser/sandlebars_parser_spec.rb
765
+ - spec/server/html_parser/view_handler_spec.rb
773
766
  - spec/server/html_parser/view_parser_spec.rb
774
767
  - spec/server/rack/asset_files_spec.rb
775
768
  - spec/server/rack/component_paths_spec.rb
@@ -816,7 +809,6 @@ files:
816
809
  - templates/newgem/LICENSE.txt.tt
817
810
  - templates/newgem/README.md.tt
818
811
  - templates/newgem/Rakefile.tt
819
- - templates/newgem/VERSION
820
812
  - templates/newgem/app/newgem/assets/css/.empty_directory
821
813
  - templates/newgem/app/newgem/assets/js/.empty_directory
822
814
  - templates/newgem/app/newgem/config/dependencies.rb
@@ -829,6 +821,7 @@ files:
829
821
  - templates/newgem/gitignore.tt
830
822
  - templates/newgem/lib/newgem.rb.tt
831
823
  - templates/newgem/lib/newgem/.empty_directory
824
+ - templates/newgem/lib/newgem/version.rb.tt
832
825
  - templates/newgem/newgem.gemspec.tt
833
826
  - templates/newgem/rspec.tt
834
827
  - templates/newgem/spec/newgem_spec.rb.tt
@@ -878,7 +871,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
878
871
  requirements:
879
872
  - - ">="
880
873
  - !ruby/object:Gem::Version
881
- version: '0'
874
+ version: '2.1'
882
875
  required_rubygems_version: !ruby/object:Gem::Requirement
883
876
  requirements:
884
877
  - - ">"
@@ -889,8 +882,7 @@ rubyforge_project:
889
882
  rubygems_version: 2.4.5
890
883
  signing_key:
891
884
  specification_version: 4
892
- summary: A ruby web framework where your ruby runs on both server and client (via
893
- Opal)
885
+ summary: A reactive Ruby web framework.
894
886
  test_files:
895
887
  - spec/apps/file_loading/app/bootstrap/assets/js/bootstrap.js
896
888
  - spec/apps/file_loading/app/main/assets/js/test1.js
@@ -910,6 +902,7 @@ test_files:
910
902
  - spec/apps/kitchen_sink/app/main/controllers/upload_controller.rb
911
903
  - spec/apps/kitchen_sink/app/main/controllers/yield_component_controller.rb
912
904
  - spec/apps/kitchen_sink/app/main/models/user.rb
905
+ - spec/apps/kitchen_sink/app/main/views/mailers/welcome.email
913
906
  - spec/apps/kitchen_sink/app/main/views/main/bindings.html
914
907
  - spec/apps/kitchen_sink/app/main/views/main/cookie_test.html
915
908
  - spec/apps/kitchen_sink/app/main/views/main/first_last.html
@@ -960,6 +953,7 @@ test_files:
960
953
  - spec/models/model_spec.rb
961
954
  - spec/models/model_state_spec.rb
962
955
  - spec/models/permissions_spec.rb
956
+ - spec/models/persistors/flash_spec.rb
963
957
  - spec/models/persistors/params_spec.rb
964
958
  - spec/models/persistors/store_spec.rb
965
959
  - spec/models/url_spec.rb
@@ -975,6 +969,7 @@ test_files:
975
969
  - spec/page/bindings/content_binding_spec.rb
976
970
  - spec/page/bindings/template_binding/view_lookup_for_path_spec.rb
977
971
  - spec/page/bindings/template_binding_spec.rb
972
+ - spec/page/path_string_renderer_spec.rb
978
973
  - spec/page/sub_context_spec.rb
979
974
  - spec/reactive/class_eventable_spec.rb
980
975
  - spec/reactive/computation_spec.rb
@@ -985,6 +980,7 @@ test_files:
985
980
  - spec/router/routes_spec.rb
986
981
  - spec/server/html_parser/sample_page.html
987
982
  - spec/server/html_parser/sandlebars_parser_spec.rb
983
+ - spec/server/html_parser/view_handler_spec.rb
988
984
  - spec/server/html_parser/view_parser_spec.rb
989
985
  - spec/server/rack/asset_files_spec.rb
990
986
  - spec/server/rack/component_paths_spec.rb
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.9.1.pre4