volt 0.9.1.pre3 → 0.9.1.pre4

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: dc7e6af465488d4433ccb709514b3f805ad16cc7
4
- data.tar.gz: 25cbe6bf32e904f35db51bd8d2b5b4822a1d81cd
3
+ metadata.gz: 112adfde352ea21c2d38e0f6cc3e1f0974f12690
4
+ data.tar.gz: 0fa53b549be59a3edf910dd28397c07148297a36
5
5
  SHA512:
6
- metadata.gz: f21a61b49bf832d0f234271dcaa247401c80e43d4754fed3fcc49b17cfb61bb68f5aa1283379256449a0f1c881b1f80a59f1709387acecb172443f45b16c9220
7
- data.tar.gz: c51891e601da7711ebc8324fcfa5d89f2d5b5524017b09ceeab9fa20a44a7cec36a9b98af3e9d4bad380e6140c8e1b6cbd0bd7588ea91fbc002d84d86bfdab6d
6
+ metadata.gz: d50022986eb78ea62fecf9c75465d0839a40c4d5bf2debbda31e469c04d36b14e774813192479482f7bb6cb3ede05ece3fc8b77bd0afc3bf25f4000d582886ee
7
+ data.tar.gz: 464c2c73e009e3a3edcce0d2ea70c42023a6e832878652263a462b6ddf917ec440bf95441766bcac440d8f81a4539e33277272940aab3b3b34be5450aae6009d
data/CHANGELOG.md CHANGED
@@ -5,11 +5,13 @@
5
5
  - All code in ```app``` is now automatically reloaded when any files change. This is done through a "preforking" server. Before your apps code is loaded (and after Volt's is), the server forks a child process to handle the request (in dev and test mode).
6
6
  - Corrected the name of StringTemplateRender to StringTemplateRenderer
7
7
  - Volt now uses faye-websocket for socket connections. This means we can run on any rack-hijack server supported by faye-websocket. Currently Volt is tested with thin and puma. (Note: Thin will probably have better performance since it is evented, which means it doesn't need a thread per connection) More servers coming soon.
8
+ - originally everything in /config would be run when an app boots (similar to rails initializers folder). The issue we didn't see is things like capistrano that store other ruby files in config. To maintain conventions, Volt now loads config/app.rb first, then everything in config/initializers/*.rb
8
9
  - fixed issue with the unique validation.
9
10
  - made it so <:SectionName> can be accessed by <:section_name /> tag
10
11
  - fixed issue with if bindings not resolving some promises.
11
12
  - fixed issue with require's in controllers.
12
13
 
14
+
13
15
  ## 0.9.0
14
16
  ### Added
15
17
  - the permissions api has been added!
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  [![Gratipay](http://img.shields.io/gratipay/voltframework.svg)](https://www.gratipay.com/voltframework/)
2
2
  [![Gem Version](https://badge.fury.io/rb/volt.svg)](http://badge.fury.io/rb/volt)
3
3
  [![Code Climate](https://codeclimate.com/github/voltrb/volt/badges/gpa.svg)](https://codeclimate.com/github/voltrb/volt)
4
- [![Build Status](http://img.shields.io/travis/voltrb/volt/master.svg?style=flat)](https://travis-ci.org/voltrb/volt)
4
+ [![Coverage Status](https://coveralls.io/repos/voltrb/volt/badge.svg?branch=master)](https://coveralls.io/r/voltrb/volt?branch=master)[![Build Status](http://img.shields.io/travis/voltrb/volt/master.svg?style=flat)](https://travis-ci.org/voltrb/volt)
5
5
  [![Inline docs](http://inch-ci.org/github/voltrb/volt.svg?branch=master)](http://inch-ci.org/github/voltrb/volt)
6
6
 
7
7
  For the current status of Volt, read: http://voltframework.com/blog
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.9.1.pre3
1
+ 0.9.1.pre4
@@ -55,6 +55,9 @@ class StoreTasks < Volt::Task
55
55
  save_promise = model.save!.then do |result|
56
56
 
57
57
  next nil
58
+ end.fail do |err|
59
+ # An error object, convert to hash
60
+ Promise.new.reject(err.to_h)
58
61
  end
59
62
 
60
63
  Thread.current['in_channel'] = nil
data/lib/volt/cli.rb CHANGED
@@ -20,7 +20,7 @@ module Volt
20
20
  version = File.read(File.join(File.dirname(__FILE__), '../../VERSION'))
21
21
  directory('project', name, version: version, name: name)
22
22
 
23
- say 'Bundling Gems....'
23
+ say 'Bundling Gems...'
24
24
  `cd #{name} && bundle`
25
25
  end
26
26
 
data/lib/volt/config.rb CHANGED
@@ -63,8 +63,11 @@ else
63
63
  end
64
64
 
65
65
  # Load in all .rb files in the config folder
66
- def run_files_in_config_folder
67
- Dir[Volt.root + '/config/*.rb'].each do |config_file|
66
+ def run_app_and_initializers
67
+ files = ["#{Volt.root}/config/app.rb"]
68
+ files += Dir[Volt.root + '/config/initializers/*.rb']
69
+
70
+ files.each do |config_file|
68
71
  require(config_file)
69
72
  end
70
73
  end
@@ -40,7 +40,7 @@ module Volt
40
40
  end
41
41
  end
42
42
 
43
- proxy_with_root_dep :[], :size, :first, :last, :state_for#, :limit, :find_one, :find
43
+ proxy_with_root_dep :[], :size, :first, :last, :state_for, :reverse
44
44
  proxy_to_persistor :find, :where, :skip, :sort, :limit, :then, :fetch, :fetch_first, :fetch_each
45
45
 
46
46
  def initialize(array = [], options = {})
@@ -135,6 +135,7 @@ module Volt
135
135
  self[0]
136
136
  end
137
137
 
138
+
138
139
  # returns a promise to fetch the first instance
139
140
  def fetch_first(&block)
140
141
  persistor = self.persistor
@@ -179,9 +180,10 @@ module Volt
179
180
 
180
181
  # Convert the model to an array all of the way down
181
182
  def to_a
183
+ @size_dep.depend
182
184
  array = []
183
- attributes.each do |value|
184
- array << deep_unwrap(value)
185
+ attributes.size.times do |index|
186
+ array << deep_unwrap(self[index])
185
187
  end
186
188
  array
187
189
  end
@@ -2,6 +2,7 @@ module Volt
2
2
  module Associations
3
3
  module ClassMethods
4
4
  def belongs_to(method_name, key_name=nil)
5
+ # getter
5
6
  define_method(method_name) do
6
7
  association_with_root_model('belongs_to') do |root|
7
8
  # Lookup the associated model id
@@ -42,6 +42,9 @@ module Volt
42
42
  end.fail do |errors|
43
43
  if errors.is_a?(Hash)
44
44
  server_errors.replace(errors)
45
+
46
+ # Merge the server errors into the main errors
47
+ self.errors.merge!(server_errors.to_h)
45
48
  end
46
49
 
47
50
  promise_for_errors(errors)
@@ -0,0 +1,9 @@
1
+ class Location
2
+ def host
3
+ `document.location.host`
4
+ end
5
+
6
+ def protocol
7
+ `document.location.protocol`
8
+ end
9
+ end
@@ -1,5 +1,8 @@
1
1
  # The url class handles parsing and updating the url
2
2
  require 'volt/reactive/reactive_accessors'
3
+ require 'volt/models/location'
4
+ require 'volt/utils/parsing'
5
+
3
6
  module Volt
4
7
  class URL
5
8
  include ReactiveAccessors
@@ -11,6 +14,7 @@ module Volt
11
14
  def initialize(router = nil)
12
15
  @router = router
13
16
  @params = Model.new({}, persistor: Persistors::Params)
17
+ @location = Location.new
14
18
  end
15
19
 
16
20
  # Parse takes in a url and extracts each sections.
@@ -21,8 +25,8 @@ module Volt
21
25
  self.fragment = url[1..-1]
22
26
  update!
23
27
  else
24
- host = `document.location.host`
25
- protocol = `document.location.protocol`
28
+ host = location.host
29
+ protocol = location.protocol
26
30
 
27
31
  if url !~ /[:]\/\//
28
32
  # Add the host for local urls
@@ -73,13 +77,13 @@ module Volt
73
77
  query_parts = []
74
78
  nested_params_hash(params).each_pair do |key, value|
75
79
  # remove the _ from the front
76
- value = `encodeURI(value)`
80
+ value = Volt::Parsing.encodeURI(value)
77
81
  query_parts << "#{key}=#{value}"
78
82
  end
79
83
 
80
84
  if query_parts.size > 0
81
85
  query = query_parts.join('&')
82
- new_url += '?' + query
86
+ new_url += "?#{query}"
83
87
  end
84
88
  end
85
89
 
@@ -135,6 +139,8 @@ module Volt
135
139
 
136
140
  private
137
141
 
142
+ attr_reader :location
143
+
138
144
  # Assigning the params is tricky since we don't want to trigger changed on
139
145
  # any values that have not changed. So we first loop through all current
140
146
  # url params, removing any not present in the params, while also removing
@@ -142,7 +148,7 @@ module Volt
142
148
  # remaining new parameters and assign them.
143
149
  def assign_query_hash_to_params
144
150
  # Get a nested hash representing the current url params.
145
- query_hash = self.query_hash
151
+ query_hash = parse_query
146
152
 
147
153
  # Get the params that are in the route
148
154
  new_params = @router.url_to_params(path)
@@ -197,24 +203,21 @@ module Volt
197
203
  end
198
204
  end
199
205
 
200
- def query_hash
206
+ def parse_query
201
207
  query_hash = {}
202
- qury = query
208
+ qury = query
209
+
203
210
  if qury
204
211
  qury.split('&').reject { |v| v == '' }.each do |part|
205
- parts = part.split('=').reject { |v| v == '' }
206
-
207
- # Decode string
208
- # parts[0] = `decodeURI(parts[0])`
209
- parts[1] = `decodeURI(parts[1])`
212
+ parts = part.split('=').reject { |v| v == '' }
213
+ parts[1] = Volt::Parsing.decodeURI(parts[1])
210
214
 
211
215
  sections = query_key_sections(parts[0])
212
216
 
213
217
  hash_part = query_hash
214
218
  sections.each_with_index do |section, index|
215
219
  if index == sections.size - 1
216
- # Last part, assign the value
217
- hash_part[section] = parts[1]
220
+ hash_part[section] = parts[1] # Last part, assign the value
218
221
  else
219
222
  hash_part = (hash_part[section] ||= {})
220
223
  end
@@ -20,7 +20,8 @@ module Volt
20
20
  custom_validations << block
21
21
  else
22
22
  self.validations ||= {}
23
- validations[field_name] = options
23
+ validations[field_name] ||= {}
24
+ validations[field_name].merge!(options)
24
25
  end
25
26
  end
26
27
  end
@@ -17,7 +17,7 @@ module Volt
17
17
  message = (args.is_a?(Hash) && args[:message]) || 'is already taken'
18
18
 
19
19
  # return the error
20
- next {field_name: [message]}
20
+ next {field_name => [message]}
21
21
  end
22
22
  end
23
23
  end
@@ -63,6 +63,7 @@ module Volt
63
63
  def item_removed(position)
64
64
  # Remove dependency
65
65
  @templates[position].context.locals[:_index_dependency].remove
66
+ @templates[position].context.locals["_#{@item_name.to_s}_dependency".to_sym].remove
66
67
 
67
68
  @templates[position].remove_anchors
68
69
  @templates[position].remove
@@ -97,6 +98,16 @@ module Volt
97
98
  item_context.locals[:_index_value] = val
98
99
  end
99
100
 
101
+
102
+ # Get and set value
103
+ value_dependency = Dependency.new
104
+ item_context.locals["_#{@item_name.to_s}_dependency".to_sym] = value_dependency
105
+
106
+ item_context.locals["#{@item_name.to_s}=".to_sym] = proc do |val|
107
+ value_dependency.changed!
108
+ @value[item_context.locals[:_index_value]] = val
109
+ end
110
+
100
111
  # If the user provides an each_with_index, we can assign the lookup for the index
101
112
  # variable here.
102
113
  if @index_name
@@ -232,7 +232,10 @@ module Volt
232
232
  # Only assign sections for action's, so we don't get AttributeSections bound
233
233
  # also.
234
234
  if @controller.respond_to?(:section=)
235
- @controller.section = @current_template.dom_section
235
+ dom_section = @current_template.dom_section
236
+
237
+ # Only assign dom sections that can be manipulated via the dom (so not the title for example)
238
+ @controller.section = dom_section unless dom_section.is_a?(Volt::AttributeSection)
236
239
  end
237
240
 
238
241
  # Call the ready callback on the controller
@@ -30,6 +30,7 @@ require 'volt/page/url_tracker'
30
30
  require 'volt/benchmark/benchmark'
31
31
  require 'volt/page/tasks'
32
32
 
33
+
33
34
  module Volt
34
35
  class Page
35
36
  attr_reader :url, :params, :page, :templates, :routes, :events
@@ -9,13 +9,13 @@ module Volt
9
9
  attr_reader :locals
10
10
 
11
11
  def initialize(locals = nil, context = nil, return_nils = false)
12
- @locals = locals.stringify_keys if locals
12
+ @locals = locals.symbolize_keys if locals
13
13
  @context = context
14
14
  @return_nils = return_nils
15
15
  end
16
16
 
17
17
  def respond_to?(method_name)
18
- !!((@locals && @locals[method_name.to_s]) || (@context && @context.respond_to?(method_name)))
18
+ !!((@locals && @locals[method_name.to_sym]) || (@context && @context.respond_to?(method_name.to_sym)))
19
19
  end
20
20
 
21
21
  def inspect
@@ -23,7 +23,7 @@ module Volt
23
23
  end
24
24
 
25
25
  def method_missing(method_name, *args, &block)
26
- method_name = method_name.to_s
26
+ method_name = method_name.to_sym
27
27
  if @locals && @locals.key?(method_name)
28
28
  obj = @locals[method_name]
29
29
 
@@ -46,7 +46,7 @@ module Volt
46
46
  if error
47
47
  # TODO: full error handling
48
48
  Volt.logger.error("Task Response:")
49
- Volt.logger.error(error)
49
+ Volt.logger.error(error.inspect)
50
50
  promise.reject(error)
51
51
  else
52
52
  promise.resolve(result)
@@ -20,7 +20,7 @@ module Volt
20
20
  super
21
21
 
22
22
  @handler.html << "<!-- $#{binding_number} --><!-- $/#{binding_number} -->"
23
- @handler.scope.last.save_binding(binding_number, "lambda { |__p, __t, __c, __id| Volt::EachBinding.new(__p, __t, __c, __id, Proc.new { #{@content} }, #{@variable_name.inspect}, #{@index_name.inspect}, #{@path.inspect}) }")
23
+ @handler.scope.last.save_binding(binding_number, "lambda { |__p, __t, __c, __id| Volt::EachBinding.new(__p, __t, __c, __id, Proc.new { #{@content} }, #{@variable_name.try(:strip).inspect}, #{@index_name.try(:strip).inspect}, #{@path.inspect}) }")
24
24
  end
25
25
  end
26
26
  end
@@ -0,0 +1,19 @@
1
+ module Volt
2
+ module Parsing
3
+ def self.decodeURI(value)
4
+ if RUBY_PLATFORM == 'opal'
5
+ `decodeURI(value)`
6
+ else
7
+ CGI.unescape(value.to_s)
8
+ end
9
+ end
10
+
11
+ def self.encodeURI(value)
12
+ if RUBY_PLATFORM == 'opal'
13
+ `encodeURI(value)`
14
+ else
15
+ CGI.escape(value.to_s)
16
+ end
17
+ end
18
+ end
19
+ end
data/lib/volt/volt/app.rb CHANGED
@@ -6,9 +6,9 @@ module Volt
6
6
  # Setup root path
7
7
  Volt.root = app_path
8
8
 
9
- # Require in config files
9
+ # Require in app and initializers
10
10
  unless RUBY_PLATFORM == 'opal'
11
- Volt.run_files_in_config_folder
11
+ Volt.run_app_and_initializers
12
12
  end
13
13
 
14
14
  # Load component paths
@@ -43,8 +43,12 @@ describe "Volt::Dirty" do
43
43
  expect(model.changed?(:name)).to eq(true)
44
44
 
45
45
  model.clear_tracked_changes!
46
-
47
46
  expect(model.changed?(:name)).to eq(false)
47
+
48
+ expect(model.changed?).to eq(false)
49
+ model._some_other_attr = "Wow!"
50
+ expect(model.changed?).to eq(true)
51
+
48
52
  end
49
53
 
50
54
  it 'should reset changes' do
@@ -99,4 +103,4 @@ describe "Volt::Dirty" do
99
103
  model.revert_changes!
100
104
  expect(model.attributes).to eq({first: 'Bob', last: 'Smith'})
101
105
  end
102
- end
106
+ end
@@ -0,0 +1,66 @@
1
+ require 'spec_helper'
2
+ require 'volt/models/url'
3
+
4
+ describe Volt::URL do
5
+ let(:uri) { 'http://voltframework.com:8888/path/1?query=val#fragment' }
6
+
7
+ let(:fake_location) do
8
+ double(
9
+ 'Location',
10
+ host: 'voltframework.com',
11
+ protocol: 'http:'
12
+ )
13
+ end
14
+
15
+ before do
16
+ allow(Location).to receive(:new).and_return fake_location
17
+ subject.parse uri
18
+ end
19
+
20
+ subject { described_class.new fake_router }
21
+
22
+ describe '#parse' do
23
+ let(:fake_router) { double('Router', url_to_params: {foo: 'bar'}) }
24
+ context 'with a valid url' do
25
+ it 'returns "http" for scheme' do
26
+ expect(subject.scheme).to eq 'http'
27
+ end
28
+
29
+ it 'returns "voltframework.com" for #host' do
30
+ expect(subject.host).to eq 'voltframework.com'
31
+ end
32
+
33
+ it 'returns 8888 for #port' do
34
+ expect(subject.port).to eq 8888
35
+ end
36
+
37
+ it 'returns "/path/1" for #path' do
38
+ expect(subject.path).to eq '/path/1'
39
+ end
40
+
41
+ it 'returns "query=val" for #query' do
42
+ expect(subject.query).to eq 'query=val'
43
+ end
44
+
45
+ it 'returns "fragment" for #fragment' do
46
+ expect(subject.fragment).to eq 'fragment'
47
+ end
48
+ end
49
+ end
50
+
51
+ describe '#url_for' do
52
+ let(:fake_router) do
53
+ router = Volt::Routes.new
54
+
55
+ router.define do
56
+ client '/path/{{ id }}', view: 'blog/show'
57
+ end
58
+ end
59
+
60
+ it 'regenerates the URL for the given params' do
61
+ params = { view: 'blog/show', id: '1', query: 'val' }
62
+
63
+ expect(subject.url_for params).to eq uri
64
+ end
65
+ end
66
+ end
@@ -7,4 +7,11 @@ describe Volt::SubContext do
7
7
  expect(sub_context.respond_to?(:name)).to eq(true)
8
8
  expect(sub_context.respond_to?(:missing)).to eq(false)
9
9
  end
10
+
11
+ it 'should return correctly for missing methods on SubContext' do
12
+ sub_context = Volt::SubContext.new(name: 'Name')
13
+
14
+ expect(sub_context.send(:name)).to eq('Name')
15
+ expect { sub_context.send(:missing) }.to raise_error(NoMethodError)
16
+ end
10
17
  end
data/spec/spec_helper.rb CHANGED
@@ -13,6 +13,7 @@ unless RUBY_PLATFORM == 'opal'
13
13
 
14
14
  SimpleCov.start do
15
15
  add_filter 'spec/'
16
+ add_filter 'lib/volt/page/bindings' # all Opal / Front end stuff.
16
17
  end
17
18
  end
18
19
 
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ describe Volt::Parsing do
4
+ subject { Volt::Parsing }
5
+ context 'surrounding encoding/decoding' do
6
+ it 'does not mangle characters' do
7
+ raw = ' !"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~''"'
8
+ encoded = subject.encodeURI raw
9
+ decoded = subject.decodeURI encoded
10
+
11
+ expect(decoded).to eq raw
12
+ end
13
+ end
14
+ end
data/volt.gemspec CHANGED
@@ -29,7 +29,7 @@ Gem::Specification.new do |spec|
29
29
  spec.add_dependency 'uglifier', '>= 2.4.0'
30
30
  spec.add_dependency "configurations", "~> 2.0.0.pre"
31
31
  spec.add_dependency 'yui-compressor', '~> 0.12.0'
32
- spec.add_dependency 'opal', '~> 0.7.1'
32
+ spec.add_dependency 'opal', '~> 0.7.2'
33
33
  spec.add_dependency 'opal-jquery', '~> 0.3.0'
34
34
  spec.add_dependency 'bundler', '>= 1.5'
35
35
  spec.add_dependency 'faye-websocket', '~> 0.9.2'
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.pre3
4
+ version: 0.9.1.pre4
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-27 00:00:00.000000000 Z
11
+ date: 2015-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -156,14 +156,14 @@ dependencies:
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: 0.7.1
159
+ version: 0.7.2
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: 0.7.1
166
+ version: 0.7.2
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: opal-jquery
169
169
  requirement: !ruby/object:Gem::Requirement
@@ -549,6 +549,7 @@ files:
549
549
  - lib/volt/models/errors.rb
550
550
  - lib/volt/models/field_helpers.rb
551
551
  - lib/volt/models/listener_tracker.rb
552
+ - lib/volt/models/location.rb
552
553
  - lib/volt/models/model.rb
553
554
  - lib/volt/models/model_hash_behaviour.rb
554
555
  - lib/volt/models/model_helpers.rb
@@ -666,6 +667,7 @@ files:
666
667
  - lib/volt/utils/logging/task_argument_filterer.rb
667
668
  - lib/volt/utils/logging/task_logger.rb
668
669
  - lib/volt/utils/modes.rb
670
+ - lib/volt/utils/parsing.rb
669
671
  - lib/volt/utils/promise_patch.rb
670
672
  - lib/volt/utils/read_write_lock.rb
671
673
  - lib/volt/utils/tilt_patch.rb
@@ -745,6 +747,7 @@ files:
745
747
  - spec/models/permissions_spec.rb
746
748
  - spec/models/persistors/params_spec.rb
747
749
  - spec/models/persistors/store_spec.rb
750
+ - spec/models/url_spec.rb
748
751
  - spec/models/user_spec.rb
749
752
  - spec/models/user_validation_spec.rb
750
753
  - spec/models/validations_spec.rb
@@ -785,6 +788,7 @@ files:
785
788
  - spec/templates/targets/binding_document/component_node_spec.rb
786
789
  - spec/utils/generic_counting_pool_spec.rb
787
790
  - spec/utils/generic_pool_spec.rb
791
+ - spec/utils/parsing_spec.rb
788
792
  - spec/utils/task_argument_filtererer_spec.rb
789
793
  - templates/.gitignore
790
794
  - templates/component/assets/css/.empty_directory
@@ -851,6 +855,7 @@ files:
851
855
  - templates/project/config.ru
852
856
  - templates/project/config/app.rb.tt
853
857
  - templates/project/config/base/index.html
858
+ - templates/project/config/initializers/.empty_directory
854
859
  - templates/project/lib/.empty_directory
855
860
  - templates/project/spec/app/main/controllers/server/sample_http_controller_spec.rb
856
861
  - templates/project/spec/app/main/integration/sample_integration_spec.rb
@@ -957,6 +962,7 @@ test_files:
957
962
  - spec/models/permissions_spec.rb
958
963
  - spec/models/persistors/params_spec.rb
959
964
  - spec/models/persistors/store_spec.rb
965
+ - spec/models/url_spec.rb
960
966
  - spec/models/user_spec.rb
961
967
  - spec/models/user_validation_spec.rb
962
968
  - spec/models/validations_spec.rb
@@ -997,5 +1003,6 @@ test_files:
997
1003
  - spec/templates/targets/binding_document/component_node_spec.rb
998
1004
  - spec/utils/generic_counting_pool_spec.rb
999
1005
  - spec/utils/generic_pool_spec.rb
1006
+ - spec/utils/parsing_spec.rb
1000
1007
  - spec/utils/task_argument_filtererer_spec.rb
1001
1008
  has_rdoc: