spontaneous 0.2.0.beta9 → 0.2.0.beta10
Sign up to get free protection for your applications and to get access to all the features.
- 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
|