refinerycms-resources 2.1.5 → 3.0.0
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/app/controllers/refinery/admin/resources_controller.rb +41 -17
- data/app/models/refinery/resource.rb +20 -9
- data/app/views/refinery/admin/resources/_actions.html.erb +2 -4
- data/app/views/refinery/admin/resources/_existing_resource.html.erb +1 -1
- data/app/views/refinery/admin/resources/_form.html.erb +18 -9
- data/app/views/refinery/admin/resources/_records.html.erb +3 -3
- data/app/views/refinery/admin/resources/_resource.html.erb +31 -16
- data/app/views/refinery/admin/resources/insert.html.erb +1 -1
- data/config/locales/ca.yml +36 -0
- data/config/locales/cs.yml +3 -4
- data/config/locales/en.yml +3 -0
- data/config/locales/fr.yml +3 -0
- data/config/locales/id.yml +36 -0
- data/config/locales/it.yml +6 -16
- data/config/routes.rb +1 -1
- data/db/migrate/20150430180959_add_translated_title_to_refinery_resources.rb +11 -0
- data/lib/generators/refinery/resources/templates/config/initializers/refinery/resources.rb.erb +1 -2
- data/lib/refinery/resources.rb +4 -1
- data/lib/refinery/resources/configuration.rb +12 -4
- data/lib/refinery/resources/dragonfly.rb +33 -25
- data/lib/refinery/resources/engine.rb +2 -3
- data/license.md +1 -1
- data/refinerycms-resources.gemspec +7 -4
- data/spec/factories/resource.rb +1 -1
- data/spec/features/refinery/admin/resources_spec.rb +53 -30
- data/spec/lib/generators/refinery/resources/resources_generator_spec.rb +1 -1
- data/spec/lib/resources_spec.rb +15 -11
- data/spec/models/refinery/resource_spec.rb +54 -25
- metadata +36 -14
- data/app/helpers/refinery/admin/resources_helper.rb +0 -6
@@ -1,80 +1,109 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
module Refinery
|
4
|
-
describe Resource do
|
4
|
+
describe Resource, :type => :model do
|
5
5
|
let(:resource) { FactoryGirl.create(:resource) }
|
6
|
+
let(:titled_resource) { FactoryGirl.create(:resource, resource_title: 'Resource Title')}
|
6
7
|
|
7
8
|
context "with valid attributes" do
|
8
9
|
it "should create successfully" do
|
9
|
-
resource.errors.
|
10
|
+
expect(resource.errors).to be_empty
|
10
11
|
end
|
11
12
|
end
|
12
13
|
|
13
14
|
context "resource url" do
|
14
15
|
it "should respond to .url" do
|
15
|
-
resource.
|
16
|
+
expect(resource).to respond_to(:url)
|
16
17
|
end
|
17
18
|
|
18
19
|
it "should not support thumbnailing like images do" do
|
19
|
-
resource.
|
20
|
+
expect(resource).not_to respond_to(:thumbnail)
|
20
21
|
end
|
21
22
|
|
22
23
|
it "should contain its filename at the end" do
|
23
|
-
resource.url.split('/').last.
|
24
|
+
expect(resource.url.split('/').last).to match(/\A#{resource.file_name}/)
|
25
|
+
end
|
26
|
+
|
27
|
+
context "when Dragonfly.verify_urls is true" do
|
28
|
+
before do
|
29
|
+
allow(Refinery::Resources).to receive(:dragonfly_verify_urls).and_return(true)
|
30
|
+
::Refinery::Resources::Dragonfly.configure!
|
31
|
+
end
|
32
|
+
|
33
|
+
it "returns a url with an SHA parameter" do
|
34
|
+
expect(resource.url).to match(/\?sha=[\da-fA-F]{16}\z/)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
context "when Dragonfly.verify_urls is false" do
|
39
|
+
before do
|
40
|
+
allow(Refinery::Resources).to receive(:dragonfly_verify_urls).and_return(false)
|
41
|
+
::Refinery::Resources::Dragonfly.configure!
|
42
|
+
end
|
43
|
+
it "returns a url without an SHA parameter" do
|
44
|
+
expect(resource.url).not_to match(/\?sha=[\da-fA-F]{16}\z/)
|
45
|
+
end
|
24
46
|
end
|
25
47
|
end
|
26
48
|
|
27
49
|
describe "#type_of_content" do
|
28
50
|
it "returns formated mime type" do
|
29
|
-
resource.type_of_content.
|
51
|
+
expect(resource.type_of_content).to eq("text plain")
|
30
52
|
end
|
31
53
|
end
|
32
54
|
|
33
55
|
describe "#title" do
|
34
|
-
|
35
|
-
|
56
|
+
context 'when a specific title has not been given' do
|
57
|
+
it "returns a titleized version of the filename" do
|
58
|
+
expect(resource.title).to eq("Refinery Is Awesome")
|
59
|
+
end
|
60
|
+
end
|
61
|
+
context 'when a specific title has been given' do
|
62
|
+
it 'returns that title' do
|
63
|
+
expect(titled_resource.title).to eq('Resource Title')
|
64
|
+
end
|
36
65
|
end
|
37
66
|
end
|
38
67
|
|
39
68
|
describe ".per_page" do
|
40
69
|
context "dialog is true" do
|
41
70
|
it "returns resource count specified by Resources.pages_per_dialog option" do
|
42
|
-
Resource.per_page(true).
|
71
|
+
expect(Resource.per_page(true)).to eq(Resources.pages_per_dialog)
|
43
72
|
end
|
44
73
|
end
|
45
74
|
|
46
75
|
context "dialog is false" do
|
47
76
|
it "returns resource count specified by Resources.pages_per_admin_index constant" do
|
48
|
-
Resource.per_page.
|
77
|
+
expect(Resource.per_page).to eq(Resources.pages_per_admin_index)
|
49
78
|
end
|
50
79
|
end
|
51
80
|
end
|
52
81
|
|
53
82
|
describe ".create_resources" do
|
54
|
-
let(:file) { Refinery.roots(
|
83
|
+
let(:file) { Refinery.roots('refinery/resources').join("spec/fixtures/refinery_is_awesome.txt") }
|
55
84
|
|
56
85
|
context "only one resource uploaded" do
|
57
86
|
it "returns an array containing one resource" do
|
58
|
-
Resource.create_resources(:file => file).
|
87
|
+
expect(Resource.create_resources(:file => file).size).to eq(1)
|
59
88
|
end
|
60
89
|
end
|
61
90
|
|
62
91
|
context "many resources uploaded at once" do
|
63
92
|
it "returns an array containing all those resources" do
|
64
|
-
Resource.create_resources(:file => [file, file, file]).
|
93
|
+
expect(Resource.create_resources(:file => [file, file, file]).size).to eq(3)
|
65
94
|
end
|
66
95
|
end
|
67
96
|
|
68
97
|
specify "each returned array item should be an instance of resource" do
|
69
98
|
Resource.create_resources(:file => [file, file, file]).each do |r|
|
70
|
-
r.
|
99
|
+
expect(r).to be_an_instance_of(Resource)
|
71
100
|
end
|
72
101
|
end
|
73
102
|
|
74
103
|
specify "each returned array item should be passed form parameters" do
|
75
104
|
params = {:file => [file, file, file], :fake_param => 'blah'}
|
76
105
|
|
77
|
-
Resource.
|
106
|
+
expect(Resource).to receive(:create).exactly(3).times.with({:file => file, :fake_param => 'blah'})
|
78
107
|
Resource.create_resources(params)
|
79
108
|
end
|
80
109
|
end
|
@@ -82,33 +111,33 @@ module Refinery
|
|
82
111
|
describe "validations" do
|
83
112
|
describe "valid #file" do
|
84
113
|
before do
|
85
|
-
@file = Refinery.roots(
|
114
|
+
@file = Refinery.roots('refinery/resources').join("spec/fixtures/refinery_is_awesome.txt")
|
86
115
|
Resources.max_file_size = (File.read(@file).size + 10)
|
87
116
|
end
|
88
117
|
|
89
118
|
it "should be valid when size does not exceed .max_file_size" do
|
90
|
-
Resource.new(:file => @file).
|
119
|
+
expect(Resource.new(:file => @file)).to be_valid
|
91
120
|
end
|
92
121
|
end
|
93
122
|
|
94
123
|
describe "too large #file" do
|
95
124
|
before do
|
96
|
-
@file = Refinery.roots(
|
125
|
+
@file = Refinery.roots('refinery/resources').join("spec/fixtures/refinery_is_awesome.txt")
|
97
126
|
Resources.max_file_size = (File.read(@file).size - 10)
|
98
127
|
@resource = Resource.new(:file => @file)
|
99
128
|
end
|
100
129
|
|
101
130
|
it "should not be valid when size exceeds .max_file_size" do
|
102
|
-
@resource.
|
131
|
+
expect(@resource).not_to be_valid
|
103
132
|
end
|
104
133
|
|
105
134
|
it "should contain an error message" do
|
106
135
|
@resource.valid?
|
107
|
-
@resource.errors.
|
108
|
-
@resource.errors[:file].
|
136
|
+
expect(@resource.errors).not_to be_empty
|
137
|
+
expect(@resource.errors[:file]).to eq(Array(::I18n.t(
|
109
138
|
'too_big', :scope => 'activerecord.errors.models.refinery/resource',
|
110
139
|
:size => Resources.max_file_size
|
111
|
-
))
|
140
|
+
)))
|
112
141
|
end
|
113
142
|
end
|
114
143
|
|
@@ -119,10 +148,10 @@ module Refinery
|
|
119
148
|
|
120
149
|
it "has an error message" do
|
121
150
|
@resource.valid?
|
122
|
-
@resource.errors.
|
123
|
-
@resource.errors[:file].
|
151
|
+
expect(@resource.errors).not_to be_empty
|
152
|
+
expect(@resource.errors[:file]).to eq(Array(::I18n.t(
|
124
153
|
'blank', :scope => 'activerecord.errors.models.refinery/resource'
|
125
|
-
))
|
154
|
+
)))
|
126
155
|
end
|
127
156
|
end
|
128
157
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: refinerycms-resources
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Philip Arndt
|
@@ -10,58 +10,77 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2015-09-19 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
|
-
name:
|
16
|
+
name: acts_as_indexed
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
19
|
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.
|
21
|
+
version: 0.8.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - "~>"
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: 0.
|
28
|
+
version: 0.8.0
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
|
-
name:
|
30
|
+
name: dragonfly
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
33
|
- - "~>"
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: 0.
|
35
|
+
version: 1.0.0
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
40
|
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: 0.
|
42
|
+
version: 1.0.0
|
43
|
+
- !ruby/object:Gem::Dependency
|
44
|
+
name: globalize
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 4.0.0
|
50
|
+
- - "<"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '5.2'
|
53
|
+
type: :runtime
|
54
|
+
prerelease: false
|
55
|
+
version_requirements: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: 4.0.0
|
60
|
+
- - "<"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '5.2'
|
43
63
|
- !ruby/object:Gem::Dependency
|
44
64
|
name: refinerycms-core
|
45
65
|
requirement: !ruby/object:Gem::Requirement
|
46
66
|
requirements:
|
47
67
|
- - '='
|
48
68
|
- !ruby/object:Gem::Version
|
49
|
-
version:
|
69
|
+
version: 3.0.0
|
50
70
|
type: :runtime
|
51
71
|
prerelease: false
|
52
72
|
version_requirements: !ruby/object:Gem::Requirement
|
53
73
|
requirements:
|
54
74
|
- - '='
|
55
75
|
- !ruby/object:Gem::Version
|
56
|
-
version:
|
76
|
+
version: 3.0.0
|
57
77
|
description: Handles all file upload and processing functionality in Refinery CMS.
|
58
|
-
email:
|
78
|
+
email: refinerycms@p.arndt.io
|
59
79
|
executables: []
|
60
80
|
extensions: []
|
61
81
|
extra_rdoc_files: []
|
62
82
|
files:
|
63
83
|
- app/controllers/refinery/admin/resources_controller.rb
|
64
|
-
- app/helpers/refinery/admin/resources_helper.rb
|
65
84
|
- app/models/refinery/resource.rb
|
66
85
|
- app/views/refinery/admin/resources/_actions.html.erb
|
67
86
|
- app/views/refinery/admin/resources/_existing_resource.html.erb
|
@@ -74,6 +93,7 @@ files:
|
|
74
93
|
- app/views/refinery/admin/resources/insert.html.erb
|
75
94
|
- app/views/refinery/admin/resources/new.html.erb
|
76
95
|
- config/locales/bg.yml
|
96
|
+
- config/locales/ca.yml
|
77
97
|
- config/locales/cs.yml
|
78
98
|
- config/locales/da.yml
|
79
99
|
- config/locales/de.yml
|
@@ -83,6 +103,7 @@ files:
|
|
83
103
|
- config/locales/fi.yml
|
84
104
|
- config/locales/fr.yml
|
85
105
|
- config/locales/hu.yml
|
106
|
+
- config/locales/id.yml
|
86
107
|
- config/locales/it.yml
|
87
108
|
- config/locales/ja.yml
|
88
109
|
- config/locales/ko.yml
|
@@ -105,6 +126,7 @@ files:
|
|
105
126
|
- config/locales/zh-TW.yml
|
106
127
|
- config/routes.rb
|
107
128
|
- db/migrate/20100913234709_create_refinerycms_resources_schema.rb
|
129
|
+
- db/migrate/20150430180959_add_translated_title_to_refinery_resources.rb
|
108
130
|
- lib/generators/refinery/resources/resources_generator.rb
|
109
131
|
- lib/generators/refinery/resources/templates/config/initializers/refinery/resources.rb.erb
|
110
132
|
- lib/refinery/resources.rb
|
@@ -135,7 +157,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
135
157
|
requirements:
|
136
158
|
- - ">="
|
137
159
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
160
|
+
version: 2.0.0
|
139
161
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
140
162
|
requirements:
|
141
163
|
- - ">="
|
@@ -143,7 +165,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
165
|
version: '0'
|
144
166
|
requirements: []
|
145
167
|
rubyforge_project: refinerycms
|
146
|
-
rubygems_version: 2.
|
168
|
+
rubygems_version: 2.4.5.1
|
147
169
|
signing_key:
|
148
170
|
specification_version: 4
|
149
171
|
summary: Resources extension for Refinery CMS
|