spontaneous 0.2.0.beta9 → 0.2.0.beta10
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 +61 -0
- data/LICENSE +18 -17
- data/Rakefile +1 -1
- data/application/css/core.css.scss +1 -1
- data/application/css/dialogue.css.scss +8 -20
- data/application/js/preview.js +28 -7
- data/application/js/publish.js +15 -4
- data/application/js/top_bar.js +0 -16
- data/application/js/views/piece_view.js +1 -1
- data/lib/spontaneous/asset/environment.rb +16 -1
- data/lib/spontaneous/box.rb +68 -0
- data/lib/spontaneous/capistrano/deploy.rb +7 -4
- data/lib/spontaneous/capistrano/sync.rb +2 -2
- data/lib/spontaneous/cli/init.rb +70 -19
- data/lib/spontaneous/cli/init/db.rb +34 -55
- data/lib/spontaneous/cli/init/mysql.rb +5 -5
- data/lib/spontaneous/cli/init/postgresql.rb +8 -9
- data/lib/spontaneous/cli/init/sqlite.rb +1 -2
- data/lib/spontaneous/cli/migrate.rb +0 -1
- data/lib/spontaneous/cli/site.rb +4 -0
- data/lib/spontaneous/collections/entry_set.rb +11 -0
- data/lib/spontaneous/data_mapper/content_model.rb +2 -0
- data/lib/spontaneous/data_mapper/content_model/serialization.rb +2 -2
- data/lib/spontaneous/extensions/array.rb +12 -2
- data/lib/spontaneous/field/base.rb +10 -0
- data/lib/spontaneous/field/file.rb +32 -2
- data/lib/spontaneous/field/image.rb +24 -2
- data/lib/spontaneous/field/select.rb +8 -0
- data/lib/spontaneous/field/webvideo.rb +8 -0
- data/lib/spontaneous/generators/site/config/initializers/fields.rb +55 -0
- data/lib/spontaneous/json.rb +3 -2
- data/lib/spontaneous/logger.rb +2 -2
- data/lib/spontaneous/media/file.rb +3 -3
- data/lib/spontaneous/media/image/attributes.rb +72 -6
- data/lib/spontaneous/media/image/renderable.rb +53 -20
- data/lib/spontaneous/media/store.rb +3 -3
- data/lib/spontaneous/media/store/backend.rb +16 -0
- data/lib/spontaneous/media/store/cloud.rb +52 -12
- data/lib/spontaneous/media/store/local.rb +6 -3
- data/lib/spontaneous/model.rb +3 -0
- data/lib/spontaneous/model/core/entries.rb +34 -13
- data/lib/spontaneous/model/core/entry.rb +3 -1
- data/lib/spontaneous/model/page/controllers.rb +1 -2
- data/lib/spontaneous/model/page/paths.rb +18 -7
- data/lib/spontaneous/output/context.rb +0 -8
- data/lib/spontaneous/output/template/renderer.rb +2 -0
- data/lib/spontaneous/plugins/application/state.rb +0 -4
- data/lib/spontaneous/prototypes/field_prototype.rb +4 -0
- data/lib/spontaneous/publishing/immediate.rb +0 -5
- data/lib/spontaneous/publishing/progress.rb +2 -2
- data/lib/spontaneous/publishing/rerender.rb +1 -4
- data/lib/spontaneous/publishing/simultaneous.rb +19 -17
- data/lib/spontaneous/publishing/steps.rb +12 -3
- data/lib/spontaneous/rack.rb +2 -0
- data/lib/spontaneous/rack/asset_server.rb +5 -2
- data/lib/spontaneous/rack/back.rb +9 -1
- data/lib/spontaneous/rack/back/base.rb +1 -0
- data/lib/spontaneous/rack/back/changes.rb +5 -0
- data/lib/spontaneous/rack/back/preview.rb +4 -4
- data/lib/spontaneous/rack/back/private.rb +11 -0
- data/lib/spontaneous/rack/middleware/scope.rb +16 -4
- data/lib/spontaneous/rack/page_controller.rb +2 -2
- data/lib/spontaneous/rack/public.rb +52 -4
- data/lib/spontaneous/sequel.rb +10 -13
- data/lib/spontaneous/site.rb +28 -8
- data/lib/spontaneous/site/publishing.rb +1 -1
- data/lib/spontaneous/site/storage.rb +7 -4
- data/lib/spontaneous/tasks/environment.rake +3 -0
- data/lib/spontaneous/utils/database/postgres_dumper.rb +23 -2
- data/lib/spontaneous/version.rb +1 -1
- data/spontaneous.gemspec +7 -12
- data/test/fixtures/assets/public1/css/data.css.scss +1 -1
- data/test/functional/test_application.rb +15 -0
- data/test/functional/test_cli.rb +109 -3
- data/test/functional/test_front.rb +108 -10
- data/test/test_helper.rb +3 -3
- data/test/unit/fields/test_boolean_fields.rb +80 -0
- data/test/unit/fields/test_date_fields.rb +47 -0
- data/test/unit/fields/test_file_field.rb +210 -0
- data/test/unit/{test_images.rb → fields/test_image_fields.rb} +133 -15
- data/test/unit/fields/test_location_fields.rb +41 -0
- data/test/unit/fields/test_option_fields.rb +61 -0
- data/test/unit/fields/test_tag_list_fields.rb +45 -0
- data/test/unit/fields/test_text_fields.rb +124 -0
- data/test/unit/fields/test_web_video_fields.rb +198 -0
- data/test/unit/test_assets.rb +22 -22
- data/test/unit/test_boxes.rb +34 -13
- data/test/unit/test_changesets.rb +1 -0
- data/test/unit/test_extensions.rb +17 -0
- data/test/unit/test_fields.rb +20 -643
- data/test/unit/test_media.rb +9 -9
- data/test/unit/test_page.rb +47 -0
- data/test/unit/test_publishing_pipeline.rb +2 -2
- data/test/unit/test_serialisation.rb +37 -0
- data/test/unit/test_storage.rb +42 -3
- metadata +37 -17
data/test/unit/test_media.rb
CHANGED
@@ -50,9 +50,9 @@ describe "Media" do
|
|
50
50
|
:aws_access_key_id=>"ACCESS_KEY_ID",
|
51
51
|
:public_host => "http://media.example.com"
|
52
52
|
}
|
53
|
-
@storage = Spontaneous::Media::Store::Cloud.new(@aws_credentials, 'media.example.com')
|
53
|
+
@storage = Spontaneous::Media::Store::Cloud.new("S3", @aws_credentials, 'media.example.com')
|
54
54
|
@storage.backend.directories.create(:key => @bucket_name)
|
55
|
-
@site.
|
55
|
+
@site.storage_backends.unshift(@storage)
|
56
56
|
@content = ::Piece.create
|
57
57
|
@content.stubs(:id).returns(99)
|
58
58
|
Spontaneous::State.stubs(:revision).returns(853)
|
@@ -60,7 +60,7 @@ describe "Media" do
|
|
60
60
|
|
61
61
|
it "return an absolute path for the url" do
|
62
62
|
file = file(@content, "file name.txt")
|
63
|
-
file.url.must_equal "
|
63
|
+
file.url.must_equal "/00099/0853/file-name.txt"
|
64
64
|
end
|
65
65
|
|
66
66
|
it "create a new instance with a different name" do
|
@@ -68,7 +68,7 @@ describe "Media" do
|
|
68
68
|
file2 = file1.rename("another.jpg")
|
69
69
|
file2.owner.must_equal file1.owner
|
70
70
|
file2.mimetype.must_equal "image/jpeg"
|
71
|
-
file2.url.must_equal "
|
71
|
+
file2.url.must_equal "/00099/0853/another.jpg"
|
72
72
|
end
|
73
73
|
|
74
74
|
it "be able to copy a file into place if passed the path of an existing file" do
|
@@ -115,8 +115,8 @@ describe "Media" do
|
|
115
115
|
describe "Local media files" do
|
116
116
|
before do
|
117
117
|
@media_dir = Dir.mktmpdir
|
118
|
-
@storage = Spontaneous::Media::Store::Local.new(@media_dir, '/media')
|
119
|
-
@site.stubs(:
|
118
|
+
@storage = Spontaneous::Media::Store::Local.new("local", @media_dir, '/media')
|
119
|
+
@site.stubs(:storage_for_mimetype).with(anything).returns(@storage)
|
120
120
|
@content = ::Piece.create
|
121
121
|
@content.stubs(:id).returns(99)
|
122
122
|
Spontaneous::State.stubs(:revision).returns(853)
|
@@ -188,11 +188,11 @@ describe "Media" do
|
|
188
188
|
:aws_access_key_id=>"ACCESS_KEY_ID",
|
189
189
|
:public_host => "http://media.example.com"
|
190
190
|
}
|
191
|
-
cloud = Spontaneous::Media::Store::Cloud.new(@aws_credentials, 'media.example.com')
|
191
|
+
cloud = Spontaneous::Media::Store::Cloud.new("S3", @aws_credentials, 'media.example.com')
|
192
192
|
cloud.backend.directories.create(:key => @bucket_name)
|
193
|
-
@site.stubs(:
|
193
|
+
@site.stubs(:storage_for_mimetype).with(anything).returns(cloud)
|
194
194
|
@media_dir = Dir.mktmpdir
|
195
|
-
@storage = Spontaneous::Media::Store::Local.new(@media_dir, '/media')
|
195
|
+
@storage = Spontaneous::Media::Store::Local.new("local", @media_dir, '/media')
|
196
196
|
@site.stubs(:local_storage).with(anything).returns(@storage)
|
197
197
|
@site.stubs(:default_storage).with(anything).returns(@storage)
|
198
198
|
@content = ::Piece.create
|
data/test/unit/test_page.rb
CHANGED
@@ -142,6 +142,19 @@ describe "Page" do
|
|
142
142
|
p.reload.slug.wont_equal ""
|
143
143
|
end
|
144
144
|
|
145
|
+
it 'can be given a type specific root' do
|
146
|
+
class Page
|
147
|
+
def default_slug_root
|
148
|
+
'fishies'
|
149
|
+
end
|
150
|
+
end
|
151
|
+
o = Page.create
|
152
|
+
p = Page.create
|
153
|
+
p.save
|
154
|
+
p.slug.must_match /^fishies/
|
155
|
+
p.has_generated_slug?.must_equal true
|
156
|
+
end
|
157
|
+
|
145
158
|
it "be made URL safe" do
|
146
159
|
o = Page.create
|
147
160
|
p = Page.create
|
@@ -477,6 +490,40 @@ describe "Page" do
|
|
477
490
|
@p.at_depth(1).must_equal [@q]
|
478
491
|
lambda { @p.at_depth(2) }.must_raise(ArgumentError)
|
479
492
|
end
|
493
|
+
|
494
|
+
describe 'custom path roots' do
|
495
|
+
before do
|
496
|
+
Page.box :custom do
|
497
|
+
def path_origin
|
498
|
+
root
|
499
|
+
end
|
500
|
+
end
|
501
|
+
Page.box :custom_string do
|
502
|
+
def path_origin
|
503
|
+
"/"
|
504
|
+
end
|
505
|
+
end
|
506
|
+
Page.box :sections
|
507
|
+
@parent = @p
|
508
|
+
@child = Page.create(slug: 'child')
|
509
|
+
@parent.sections << @child
|
510
|
+
@child.path.must_equal '/child'
|
511
|
+
end
|
512
|
+
|
513
|
+
it "defines child paths according to the custom path root" do
|
514
|
+
page = Page.create(slug: 'balloon')
|
515
|
+
@child.custom << page
|
516
|
+
page.save.reload
|
517
|
+
page.path.must_equal '/balloon'
|
518
|
+
end
|
519
|
+
|
520
|
+
it "allows for string based path origins" do
|
521
|
+
page = Page.create(slug: 'balloon')
|
522
|
+
@child.custom_string << page
|
523
|
+
page.save.reload
|
524
|
+
page.path.must_equal '/balloon'
|
525
|
+
end
|
526
|
+
end
|
480
527
|
end
|
481
528
|
|
482
529
|
describe "page pieces" do
|
@@ -829,8 +829,8 @@ describe "Publishing Pipeline" do
|
|
829
829
|
end
|
830
830
|
}
|
831
831
|
|
832
|
-
def run_steps(
|
833
|
-
Spontaneous::Publishing::Pipeline.new(
|
832
|
+
def run_steps(_steps = steps, _progress = progress)
|
833
|
+
Spontaneous::Publishing::Pipeline.new(_steps).run(@site, revision, pages, _progress)
|
834
834
|
end
|
835
835
|
|
836
836
|
def modify_some_pages
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require File.expand_path('../../test_helper', __FILE__)
|
4
4
|
require 'erb'
|
5
|
+
require 'fog'
|
5
6
|
|
6
7
|
describe "Serialisation" do
|
7
8
|
before do
|
@@ -170,5 +171,41 @@ describe "Serialisation" do
|
|
170
171
|
# hard to test this as the serialisation order appears to change
|
171
172
|
Spot.deserialise_http(@root.serialise_http).must_equal @root.export
|
172
173
|
end
|
174
|
+
|
175
|
+
describe 'cloud storage' do
|
176
|
+
before do
|
177
|
+
Fog.mock!
|
178
|
+
@bucket_name = "media.example.com"
|
179
|
+
@aws_credentials = {
|
180
|
+
:provider=>"AWS",
|
181
|
+
:aws_secret_access_key=>"SECRET_ACCESS_KEY",
|
182
|
+
:aws_access_key_id=>"ACCESS_KEY_ID",
|
183
|
+
:public_host => "http://media.example.com"
|
184
|
+
}
|
185
|
+
@storage = Spontaneous::Media::Store::Cloud.new("S3", @aws_credentials, 'media.example.com')
|
186
|
+
@storage.backend.directories.create(:key => @bucket_name)
|
187
|
+
@site.storage_backends.unshift(@storage)
|
188
|
+
|
189
|
+
existing_file = File.expand_path("../../fixtures/images/rose.jpg", __FILE__)
|
190
|
+
assert ::File.exist?(existing_file)
|
191
|
+
class ::SimplePiece < ::Piece
|
192
|
+
field :image
|
193
|
+
end
|
194
|
+
@instance = SimplePiece.create
|
195
|
+
@instance.image = existing_file
|
196
|
+
@instance.save
|
197
|
+
end
|
198
|
+
|
199
|
+
after do
|
200
|
+
Object.send(:remove_const, :SimplePiece)
|
201
|
+
end
|
202
|
+
|
203
|
+
it 'generates full urls when using cloud storage' do
|
204
|
+
export = @instance.export
|
205
|
+
image = export[:fields].detect { |f| f[:name] == "image" }
|
206
|
+
original = image[:processed_value][:original][:src]
|
207
|
+
original.must_match %r{^http://media.example.com}
|
208
|
+
end
|
209
|
+
end
|
173
210
|
end
|
174
211
|
end
|
data/test/unit/test_storage.rb
CHANGED
@@ -34,6 +34,30 @@ describe "Media Store" do
|
|
34
34
|
it "provide a list of local storage backends" do
|
35
35
|
@site.local_storage.must_equal [@storage]
|
36
36
|
end
|
37
|
+
|
38
|
+
it "allows for configuring a custom url mapper" do
|
39
|
+
require 'zlib'
|
40
|
+
mapper = Class.new do
|
41
|
+
def initialize(pattern, servers)
|
42
|
+
@pattern = pattern
|
43
|
+
@servers = servers
|
44
|
+
@n = 0
|
45
|
+
end
|
46
|
+
|
47
|
+
def server(path)
|
48
|
+
@servers[Zlib.crc32(path) % @servers.length]
|
49
|
+
end
|
50
|
+
|
51
|
+
def call(path)
|
52
|
+
@pattern % [server(path), path]
|
53
|
+
end
|
54
|
+
end
|
55
|
+
@storage.url_mapper = mapper.new("http://%s.cdn.example.com%s", %w(m1 m2 m3 m4))
|
56
|
+
@storage.to_url('/image.jpg').must_equal "http://m3.cdn.example.com/image.jpg"
|
57
|
+
@storage.to_url('/image.jpg').must_equal "http://m3.cdn.example.com/image.jpg"
|
58
|
+
@storage.to_url('/image2.jpg').must_equal "http://m4.cdn.example.com/image2.jpg"
|
59
|
+
@storage.to_url('/image2.jpg').must_equal "http://m4.cdn.example.com/image2.jpg"
|
60
|
+
end
|
37
61
|
end
|
38
62
|
|
39
63
|
describe "cloud" do
|
@@ -104,19 +128,34 @@ describe "Media Store" do
|
|
104
128
|
before do
|
105
129
|
existing_file = File.expand_path("../../fixtures/images/rose.jpg", __FILE__)
|
106
130
|
@media_path = %w(0003 0567 rose.jpg)
|
131
|
+
@path = "/" << @media_path.join("/")
|
107
132
|
@storage.copy(existing_file, @media_path, { content_type: "image/jpeg" })
|
108
133
|
end
|
109
134
|
|
110
135
|
it "have the correct base url" do
|
111
|
-
@storage.
|
136
|
+
@storage.to_url(@path).must_equal "https://media.example.com.s3.amazonaws.com/0003/0567/rose.jpg"
|
112
137
|
end
|
113
138
|
|
114
139
|
|
115
140
|
it "use custom urls if configured" do
|
116
|
-
storage = Spontaneous::Media::Store::Cloud.new(@aws_credentials.merge({
|
141
|
+
storage = Spontaneous::Media::Store::Cloud.new("s3", @aws_credentials.merge({
|
117
142
|
:public_host => "http://media.example.com",
|
118
143
|
}), @bucket_name)
|
119
|
-
storage.
|
144
|
+
storage.to_url(@path).must_equal "http://media.example.com/0003/0567/rose.jpg"
|
145
|
+
end
|
146
|
+
|
147
|
+
it 'gives valid s3 urls for different regions' do
|
148
|
+
storage = Spontaneous::Media::Store::Cloud.new("s3", @aws_credentials.merge({
|
149
|
+
region: "eu-west-1"
|
150
|
+
}), @bucket_name)
|
151
|
+
storage.to_url(@path).must_equal "https://media.example.com.s3-eu-west-1.amazonaws.com/0003/0567/rose.jpg"
|
152
|
+
end
|
153
|
+
|
154
|
+
it 'allows for providing a direct URL mapper proc' do
|
155
|
+
storage = Spontaneous::Media::Store::Cloud.new("s3", @aws_credentials.merge({
|
156
|
+
url_mapper: proc { |path| "http://wallowig.com#{path}" }
|
157
|
+
}), @bucket_name)
|
158
|
+
storage.to_url(@path).must_equal "http://wallowig.com/0003/0567/rose.jpg"
|
120
159
|
end
|
121
160
|
end
|
122
161
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spontaneous
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.0.
|
4
|
+
version: 0.2.0.beta10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Garry Hill
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -296,14 +296,14 @@ dependencies:
|
|
296
296
|
requirements:
|
297
297
|
- - "~>"
|
298
298
|
- !ruby/object:Gem::Version
|
299
|
-
version:
|
299
|
+
version: 0.1.1
|
300
300
|
type: :runtime
|
301
301
|
prerelease: false
|
302
302
|
version_requirements: !ruby/object:Gem::Requirement
|
303
303
|
requirements:
|
304
304
|
- - "~>"
|
305
305
|
- !ruby/object:Gem::Version
|
306
|
-
version:
|
306
|
+
version: 0.1.1
|
307
307
|
- !ruby/object:Gem::Dependency
|
308
308
|
name: sprockets
|
309
309
|
requirement: !ruby/object:Gem::Requirement
|
@@ -389,19 +389,19 @@ dependencies:
|
|
389
389
|
- !ruby/object:Gem::Version
|
390
390
|
version: '1.5'
|
391
391
|
- !ruby/object:Gem::Dependency
|
392
|
-
name:
|
392
|
+
name: oj
|
393
393
|
requirement: !ruby/object:Gem::Requirement
|
394
394
|
requirements:
|
395
395
|
- - "~>"
|
396
396
|
- !ruby/object:Gem::Version
|
397
|
-
version: '
|
397
|
+
version: '2.11'
|
398
398
|
type: :runtime
|
399
399
|
prerelease: false
|
400
400
|
version_requirements: !ruby/object:Gem::Requirement
|
401
401
|
requirements:
|
402
402
|
- - "~>"
|
403
403
|
- !ruby/object:Gem::Version
|
404
|
-
version: '
|
404
|
+
version: '2.11'
|
405
405
|
- !ruby/object:Gem::Dependency
|
406
406
|
name: minitest
|
407
407
|
requirement: !ruby/object:Gem::Requirement
|
@@ -472,13 +472,14 @@ dependencies:
|
|
472
472
|
- - "~>"
|
473
473
|
- !ruby/object:Gem::Version
|
474
474
|
version: '0.5'
|
475
|
-
description: Spontaneous is a
|
475
|
+
description: Spontaneous is a content management framework that allows the easy development
|
476
|
+
of sophisticated & beautiful websites with powerful developer tools & an elegant
|
477
|
+
editing interface.
|
476
478
|
email: garry@spontaneous.io
|
477
479
|
executables:
|
478
480
|
- spot
|
479
481
|
extensions: []
|
480
|
-
extra_rdoc_files:
|
481
|
-
- LICENSE
|
482
|
+
extra_rdoc_files: []
|
482
483
|
files:
|
483
484
|
- ".gitignore"
|
484
485
|
- ".locat"
|
@@ -750,6 +751,7 @@ files:
|
|
750
751
|
- lib/spontaneous/generators/site/config/environments/development.rb.tt
|
751
752
|
- lib/spontaneous/generators/site/config/environments/production.rb.tt
|
752
753
|
- lib/spontaneous/generators/site/config/front.ru
|
754
|
+
- lib/spontaneous/generators/site/config/initializers/fields.rb
|
753
755
|
- lib/spontaneous/generators/site/config/initializers/indexes.rb.tt
|
754
756
|
- lib/spontaneous/generators/site/config/initializers/publishing.rb.tt
|
755
757
|
- lib/spontaneous/generators/site/config/schema.yml
|
@@ -912,6 +914,7 @@ files:
|
|
912
914
|
- lib/spontaneous/rack/back/map.rb
|
913
915
|
- lib/spontaneous/rack/back/page.rb
|
914
916
|
- lib/spontaneous/rack/back/preview.rb
|
917
|
+
- lib/spontaneous/rack/back/private.rb
|
915
918
|
- lib/spontaneous/rack/back/schema.rb
|
916
919
|
- lib/spontaneous/rack/back/site.rb
|
917
920
|
- lib/spontaneous/rack/back/site_assets.rb
|
@@ -965,6 +968,7 @@ files:
|
|
965
968
|
- lib/spontaneous/style.rb
|
966
969
|
- lib/spontaneous/tasks.rb
|
967
970
|
- lib/spontaneous/tasks/database.rake
|
971
|
+
- lib/spontaneous/tasks/environment.rake
|
968
972
|
- lib/spontaneous/utils.rb
|
969
973
|
- lib/spontaneous/utils/database.rb
|
970
974
|
- lib/spontaneous/utils/database/mysql_dumper.rb
|
@@ -1240,6 +1244,15 @@ files:
|
|
1240
1244
|
- test/test_javascript.rb
|
1241
1245
|
- test/ui/test_page_editing.rb
|
1242
1246
|
- test/ui_helper.rb
|
1247
|
+
- test/unit/fields/test_boolean_fields.rb
|
1248
|
+
- test/unit/fields/test_date_fields.rb
|
1249
|
+
- test/unit/fields/test_file_field.rb
|
1250
|
+
- test/unit/fields/test_image_fields.rb
|
1251
|
+
- test/unit/fields/test_location_fields.rb
|
1252
|
+
- test/unit/fields/test_option_fields.rb
|
1253
|
+
- test/unit/fields/test_tag_list_fields.rb
|
1254
|
+
- test/unit/fields/test_text_fields.rb
|
1255
|
+
- test/unit/fields/test_web_video_fields.rb
|
1243
1256
|
- test/unit/test_alias.rb
|
1244
1257
|
- test/unit/test_asset_bundler.rb
|
1245
1258
|
- test/unit/test_assets.rb
|
@@ -1262,7 +1275,6 @@ files:
|
|
1262
1275
|
- test/unit/test_generators.rb
|
1263
1276
|
- test/unit/test_helpers.rb
|
1264
1277
|
- test/unit/test_image_size.rb
|
1265
|
-
- test/unit/test_images.rb
|
1266
1278
|
- test/unit/test_layouts.rb
|
1267
1279
|
- test/unit/test_logger.rb
|
1268
1280
|
- test/unit/test_media.rb
|
@@ -1291,11 +1303,11 @@ files:
|
|
1291
1303
|
- test/unit/test_type_hierarchy.rb
|
1292
1304
|
- test/unit/test_visibility.rb
|
1293
1305
|
homepage: http://spontaneous.io
|
1294
|
-
licenses:
|
1306
|
+
licenses:
|
1307
|
+
- MIT
|
1295
1308
|
metadata: {}
|
1296
1309
|
post_install_message:
|
1297
|
-
rdoc_options:
|
1298
|
-
- "--charset=UTF-8"
|
1310
|
+
rdoc_options: []
|
1299
1311
|
require_paths:
|
1300
1312
|
- lib
|
1301
1313
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -1310,10 +1322,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1310
1322
|
version: 1.3.1
|
1311
1323
|
requirements: []
|
1312
1324
|
rubyforge_project:
|
1313
|
-
rubygems_version: 2.
|
1325
|
+
rubygems_version: 2.4.6
|
1314
1326
|
signing_key:
|
1315
1327
|
specification_version: 4
|
1316
|
-
summary:
|
1328
|
+
summary: Next-generation Ruby CMS and web framework.
|
1317
1329
|
test_files:
|
1318
1330
|
- test/disabled/test_slots.rb
|
1319
1331
|
- test/fixtures/application/js/test.js
|
@@ -1582,6 +1594,15 @@ test_files:
|
|
1582
1594
|
- test/test_javascript.rb
|
1583
1595
|
- test/ui/test_page_editing.rb
|
1584
1596
|
- test/ui_helper.rb
|
1597
|
+
- test/unit/fields/test_boolean_fields.rb
|
1598
|
+
- test/unit/fields/test_date_fields.rb
|
1599
|
+
- test/unit/fields/test_file_field.rb
|
1600
|
+
- test/unit/fields/test_image_fields.rb
|
1601
|
+
- test/unit/fields/test_location_fields.rb
|
1602
|
+
- test/unit/fields/test_option_fields.rb
|
1603
|
+
- test/unit/fields/test_tag_list_fields.rb
|
1604
|
+
- test/unit/fields/test_text_fields.rb
|
1605
|
+
- test/unit/fields/test_web_video_fields.rb
|
1585
1606
|
- test/unit/test_alias.rb
|
1586
1607
|
- test/unit/test_asset_bundler.rb
|
1587
1608
|
- test/unit/test_assets.rb
|
@@ -1604,7 +1625,6 @@ test_files:
|
|
1604
1625
|
- test/unit/test_generators.rb
|
1605
1626
|
- test/unit/test_helpers.rb
|
1606
1627
|
- test/unit/test_image_size.rb
|
1607
|
-
- test/unit/test_images.rb
|
1608
1628
|
- test/unit/test_layouts.rb
|
1609
1629
|
- test/unit/test_logger.rb
|
1610
1630
|
- test/unit/test_media.rb
|