radiant-images-extension 0.1.1 → 0.3.2
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.
- data/CHANGELOG +9 -0
- data/README.md +11 -0
- data/Rakefile +1 -0
- data/VERSION +1 -1
- data/app/controllers/admin/images_controller.rb +2 -8
- data/app/models/image.rb +10 -7
- data/app/views/admin/images/_bottom.haml +2 -2
- data/app/views/admin/images/remove.haml +2 -2
- data/config/locales/en.yml +5 -5
- data/db/migrate/20100929150930_change_images_to_created_by_id.rb +15 -0
- data/images_extension.rb +3 -1
- data/lib/images/tags/core.rb +295 -0
- data/lib/images/tags/helpers.rb +64 -0
- data/lib/tasks/images_extension_tasks.rake +1 -0
- data/public/images/admin/extensions/images/sort.png +0 -0
- data/radiant-images-extension.gemspec +9 -5
- data/spec/controllers/admin/images_controller_spec.rb +17 -81
- data/spec/datasets/images.rb +1 -1
- data/spec/lib/images/tags/core_spec.rb +110 -0
- data/spec/models/image_spec.rb +2 -2
- metadata +12 -8
- data/lib/images/tags/image.rb +0 -171
- data/spec/lib/images/tags/image_spec.rb +0 -240
@@ -0,0 +1,64 @@
|
|
1
|
+
module Images
|
2
|
+
module Tags
|
3
|
+
class Helpers
|
4
|
+
|
5
|
+
class TagError < StandardError; end
|
6
|
+
|
7
|
+
class << self
|
8
|
+
|
9
|
+
def current_images(tag)
|
10
|
+
result = nil
|
11
|
+
|
12
|
+
if tag.locals.images.present?
|
13
|
+
result = tag.locals.images
|
14
|
+
elsif tag.attr['key'] and tag.attr['value']
|
15
|
+
result = Image.find(:all, :conditions => { tag.attr['key'].to_sym => tag.attr['value'].to_s }) rescue nil
|
16
|
+
else
|
17
|
+
result = Image.all
|
18
|
+
end
|
19
|
+
|
20
|
+
result
|
21
|
+
end
|
22
|
+
|
23
|
+
def current_image(tag)
|
24
|
+
result = nil
|
25
|
+
|
26
|
+
if tag.locals.image.present?
|
27
|
+
result = tag.locals.image
|
28
|
+
elsif tag.attr['id']
|
29
|
+
result = Image.find(tag.attr['id'])
|
30
|
+
elsif tag.attr['title']
|
31
|
+
result = Image.find_by_title(tag.attr['title'])
|
32
|
+
elsif tag.attr['position']
|
33
|
+
begin
|
34
|
+
result = tag.locals.images[(tag.attr['position']-1).to_i]
|
35
|
+
rescue
|
36
|
+
result = Image.find_by_position(tag.attr['position'].to_i)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
result
|
41
|
+
end
|
42
|
+
|
43
|
+
def image_options(tag)
|
44
|
+
attr = tag.attr.symbolize_keys
|
45
|
+
by = attr[:by] || 'position'
|
46
|
+
order = attr[:order] || 'asc'
|
47
|
+
|
48
|
+
options = {
|
49
|
+
:order => "#{by} #{order}",
|
50
|
+
:limit => attr[:limit] || nil,
|
51
|
+
:offset => attr[:offset] || nil
|
52
|
+
}
|
53
|
+
end
|
54
|
+
|
55
|
+
def image_and_options(tag)
|
56
|
+
options = tag.attr.dup
|
57
|
+
[find_image(tag, options), options]
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -20,6 +20,7 @@ namespace :radiant do
|
|
20
20
|
if asset.asset_type.name == :image
|
21
21
|
Image.create({
|
22
22
|
:title => asset.title,
|
23
|
+
:caption => asset.caption,
|
23
24
|
:asset_file_name => asset.asset_file_name,
|
24
25
|
:asset_content_type => asset.asset_content_type,
|
25
26
|
:asset_file_size => asset.asset_file_size
|
Binary file
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{radiant-images-extension}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.3.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["squaretalent"]
|
12
|
-
s.date = %q{2010-09
|
12
|
+
s.date = %q{2010-10-09}
|
13
13
|
s.description = %q{Image Radiant Extension management tool, meant only to be useful to pages and extensions that need to require images.}
|
14
14
|
s.email = %q{info@squaretalent.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -18,6 +18,7 @@ Gem::Specification.new do |s|
|
|
18
18
|
]
|
19
19
|
s.files = [
|
20
20
|
".gitignore",
|
21
|
+
"CHANGELOG",
|
21
22
|
"LICENSE",
|
22
23
|
"README.md",
|
23
24
|
"Rakefile",
|
@@ -38,12 +39,15 @@ Gem::Specification.new do |s|
|
|
38
39
|
"cucumber.yml",
|
39
40
|
"db/migrate/20100601042237_create_images.rb",
|
40
41
|
"db/migrate/20100602044124_add_position_to_images.rb",
|
42
|
+
"db/migrate/20100929150930_change_images_to_created_by_id.rb",
|
41
43
|
"features/support/env.rb",
|
42
44
|
"features/support/paths.rb",
|
43
45
|
"images_extension.rb",
|
44
46
|
"lib/images/interface/admin/images.rb",
|
45
|
-
"lib/images/tags/
|
47
|
+
"lib/images/tags/core.rb",
|
48
|
+
"lib/images/tags/helpers.rb",
|
46
49
|
"lib/tasks/images_extension_tasks.rake",
|
50
|
+
"public/images/admin/extensions/images/sort.png",
|
47
51
|
"public/images/extensions/images/missing_icon.png",
|
48
52
|
"public/images/extensions/images/missing_normal.png",
|
49
53
|
"public/images/extensions/images/missing_preview.png",
|
@@ -53,7 +57,7 @@ Gem::Specification.new do |s|
|
|
53
57
|
"radiant-images-extension.gemspec",
|
54
58
|
"spec/controllers/admin/images_controller_spec.rb",
|
55
59
|
"spec/datasets/images.rb",
|
56
|
-
"spec/lib/images/tags/
|
60
|
+
"spec/lib/images/tags/core_spec.rb",
|
57
61
|
"spec/models/image_spec.rb",
|
58
62
|
"spec/spec.opts",
|
59
63
|
"spec/spec_helper.rb"
|
@@ -66,7 +70,7 @@ Gem::Specification.new do |s|
|
|
66
70
|
s.test_files = [
|
67
71
|
"spec/controllers/admin/images_controller_spec.rb",
|
68
72
|
"spec/datasets/images.rb",
|
69
|
-
"spec/lib/images/tags/
|
73
|
+
"spec/lib/images/tags/core_spec.rb",
|
70
74
|
"spec/models/image_spec.rb",
|
71
75
|
"spec/spec_helper.rb"
|
72
76
|
]
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Admin::ImagesController do
|
4
4
|
dataset :users
|
@@ -9,7 +9,6 @@ describe Admin::ImagesController do
|
|
9
9
|
@images = Image.all
|
10
10
|
end
|
11
11
|
|
12
|
-
|
13
12
|
context 'user not logged in' do
|
14
13
|
|
15
14
|
it 'should redirect to login path' do
|
@@ -20,7 +19,6 @@ describe Admin::ImagesController do
|
|
20
19
|
end
|
21
20
|
|
22
21
|
context 'user logged in' do
|
23
|
-
|
24
22
|
before :each do
|
25
23
|
login_as :admin
|
26
24
|
stub(AWS::S3::Base).establish_connection!
|
@@ -37,98 +35,36 @@ describe Admin::ImagesController do
|
|
37
35
|
get :index
|
38
36
|
assigns(:images).should == @images
|
39
37
|
end
|
40
|
-
|
41
|
-
end
|
42
|
-
|
43
|
-
context 'show action' do
|
44
38
|
|
45
|
-
it 'should
|
46
|
-
get :
|
47
|
-
|
39
|
+
it 'should use pagination' do
|
40
|
+
get :index
|
41
|
+
assigns(:images).class.should == WillPaginate::Collection
|
48
42
|
end
|
49
|
-
|
50
|
-
end
|
51
43
|
|
52
|
-
|
53
|
-
|
54
|
-
it 'should render the edit template' do
|
55
|
-
get :edit, :id => @image.id
|
56
|
-
response.should render_template(:edit)
|
57
|
-
end
|
58
|
-
|
59
|
-
it 'should redirect to the index on invalid image id' do
|
60
|
-
get :edit, :id => 999999
|
61
|
-
response.should redirect_to admin_images_url
|
62
|
-
end
|
63
|
-
|
64
|
-
end
|
44
|
+
end
|
65
45
|
|
66
|
-
context '
|
46
|
+
context 'search action' do
|
67
47
|
|
68
|
-
|
69
|
-
|
70
|
-
|
48
|
+
before :each do
|
49
|
+
login_as :admin
|
50
|
+
stub(AWS::S3::Base).establish_connection!
|
71
51
|
end
|
72
52
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
it 'should redirect to the index on valid image' do
|
78
|
-
put :update, :id => @image.id
|
79
|
-
response.should redirect_to admin_images_url
|
53
|
+
it 'should render the search template on search action' do
|
54
|
+
get :search
|
55
|
+
response.should render_template(:search)
|
80
56
|
end
|
81
57
|
|
82
|
-
it 'should
|
83
|
-
any_instance_of(Image, :valid? => false)
|
84
|
-
put :update, :id => @image.id
|
85
|
-
response.should render_template(:edit)
|
86
|
-
end
|
58
|
+
it 'should return valid search results'
|
87
59
|
|
88
|
-
|
89
|
-
|
90
|
-
context 'create action' do
|
91
|
-
|
92
|
-
it "create action should render new template when model is invalid" do
|
93
|
-
stub.instance_of(Image).valid? {false}
|
94
|
-
post :create
|
95
|
-
response.should render_template(:new)
|
96
|
-
end
|
97
|
-
|
98
|
-
it "create action should redirect when model is valid" do
|
99
|
-
stub.instance_of(Image).valid? {true}
|
100
|
-
post :create
|
101
|
-
response.should redirect_to admin_images_url
|
102
|
-
end
|
60
|
+
it 'should respond to JS requests correctly'
|
103
61
|
|
62
|
+
it 'should respond to xml requests correctly'
|
104
63
|
|
64
|
+
it 'should respond to json requests correctly'
|
65
|
+
|
105
66
|
end
|
106
67
|
|
107
|
-
context 'remove action' do
|
108
|
-
|
109
|
-
it 'should render the remove template' do
|
110
|
-
get :remove, :id => @image.id
|
111
|
-
response.should render_template(:remove)
|
112
|
-
|
113
|
-
end
|
114
|
-
|
115
|
-
end
|
116
|
-
|
117
|
-
context 'destroy action' do
|
118
|
-
|
119
|
-
it 'should redirect to the index' do
|
120
|
-
# we need to stop destroy_attached_files running (as it'll error with no S3 details)
|
121
|
-
mock(@images[1]).destroy_attached_files
|
122
|
-
|
123
|
-
@images[1].destroy
|
124
|
-
delete :destroy, :id => @images[1].id
|
125
|
-
response.should redirect_to admin_images_url
|
126
|
-
Image.exists?(@images[1].id).should be_false
|
127
|
-
end
|
128
|
-
|
129
|
-
end
|
130
|
-
|
131
|
-
|
132
68
|
end
|
133
69
|
|
134
70
|
|
data/spec/datasets/images.rb
CHANGED
@@ -5,7 +5,7 @@ class ImagesDataset < Dataset::Base
|
|
5
5
|
images.each_with_index do |image, i|
|
6
6
|
create_record :image, image.to_sym,
|
7
7
|
:title => image.to_s,
|
8
|
-
:caption =>
|
8
|
+
:caption => "caption for #{image.to_s}",
|
9
9
|
:asset_file_name => "#{image.to_s}.png",
|
10
10
|
:asset_content_type => "image/png",
|
11
11
|
:asset_file_size => i+1*1000,
|
@@ -0,0 +1,110 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Images::Tags::Core do
|
4
|
+
dataset :pages, :images
|
5
|
+
|
6
|
+
it 'should describe these tags' do
|
7
|
+
Images::Tags::Core.tags.sort.should == [
|
8
|
+
'images',
|
9
|
+
'images:if_images',
|
10
|
+
'images:unless_images',
|
11
|
+
'images:each',
|
12
|
+
'images:first',
|
13
|
+
'image',
|
14
|
+
'image:if_first',
|
15
|
+
'image:unless_first',
|
16
|
+
'image:url',
|
17
|
+
'image:id',
|
18
|
+
'image:title'].sort
|
19
|
+
end
|
20
|
+
|
21
|
+
before(:all) do
|
22
|
+
@images = [ images(:first), images(:second) ]
|
23
|
+
end
|
24
|
+
|
25
|
+
before(:each) do
|
26
|
+
stub(AWS::S3::Base).establish_connection!
|
27
|
+
end
|
28
|
+
|
29
|
+
describe '<r:images>' do
|
30
|
+
|
31
|
+
it 'should render' do
|
32
|
+
tag = '<r:images>success</r:images>'
|
33
|
+
exp = 'success'
|
34
|
+
|
35
|
+
pages(:home).should render(tag).as(exp)
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
describe '<r:images:if_images>' do
|
41
|
+
|
42
|
+
context 'success' do
|
43
|
+
it 'should render' do
|
44
|
+
tag = '<r:images><r:if_images>success</r:if_images></r:images>'
|
45
|
+
exp = 'success'
|
46
|
+
|
47
|
+
pages(:home).should render(tag).as(exp)
|
48
|
+
end
|
49
|
+
it 'should render' do
|
50
|
+
tag = '<r:images key="title" value="first"><r:if_images>success</r:if_images></r:images>'
|
51
|
+
exp = 'success'
|
52
|
+
|
53
|
+
pages(:home).should render(tag).as(exp)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
context 'failure' do
|
58
|
+
it 'should not render' do
|
59
|
+
mock(Image).all { [] }
|
60
|
+
tag = '<r:images><r:if_images>failure</r:if_images></r:images>'
|
61
|
+
exp = ''
|
62
|
+
|
63
|
+
pages(:home).should render(tag).as(exp)
|
64
|
+
end
|
65
|
+
it 'should not render' do
|
66
|
+
tag = '<r:images key="title" value="notme"><r:if_images>failure</r:if_images></r:images>'
|
67
|
+
exp = ''
|
68
|
+
|
69
|
+
pages(:home).should render(tag).as(exp)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
describe '<r:images:unless_images>' do
|
76
|
+
|
77
|
+
context 'success' do
|
78
|
+
it 'should render' do
|
79
|
+
mock(Image).all { [] }
|
80
|
+
tag = '<r:images><r:unless_images>success</r:unless_images></r:images>'
|
81
|
+
exp = 'success'
|
82
|
+
|
83
|
+
pages(:home).should render(tag).as(exp)
|
84
|
+
end
|
85
|
+
it 'should render' do
|
86
|
+
tag = '<r:images key="title" value="notme"><r:unless_images>success</r:unless_images></r:images>'
|
87
|
+
exp = 'success'
|
88
|
+
|
89
|
+
pages(:home).should render(tag).as(exp)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
context 'failure' do
|
94
|
+
it 'should not render' do
|
95
|
+
tag = '<r:images><r:unless_images>failure</r:unless_images></r:images>'
|
96
|
+
exp = ''
|
97
|
+
|
98
|
+
pages(:home).should render(tag).as(exp)
|
99
|
+
end
|
100
|
+
it 'should not render' do
|
101
|
+
tag = '<r:images key="title" value="first"><r:unless_images>failure</r:unless_images></r:images>'
|
102
|
+
exp = ''
|
103
|
+
|
104
|
+
pages(:home).should render(tag).as(exp)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
end
|
109
|
+
|
110
|
+
end
|
data/spec/models/image_spec.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Image do
|
4
4
|
dataset :images
|
@@ -13,7 +13,7 @@ describe Image do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
it 'should have a caption' do
|
16
|
-
@image.caption.should ==
|
16
|
+
@image.caption.should == "caption for #{@image.title.to_s}"
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'should require a unique title' do
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: radiant-images-extension
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 3
|
9
|
+
- 2
|
10
|
+
version: 0.3.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- squaretalent
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-09
|
18
|
+
date: 2010-10-09 00:00:00 +08:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -110,6 +110,7 @@ extra_rdoc_files:
|
|
110
110
|
- README.md
|
111
111
|
files:
|
112
112
|
- .gitignore
|
113
|
+
- CHANGELOG
|
113
114
|
- LICENSE
|
114
115
|
- README.md
|
115
116
|
- Rakefile
|
@@ -130,12 +131,15 @@ files:
|
|
130
131
|
- cucumber.yml
|
131
132
|
- db/migrate/20100601042237_create_images.rb
|
132
133
|
- db/migrate/20100602044124_add_position_to_images.rb
|
134
|
+
- db/migrate/20100929150930_change_images_to_created_by_id.rb
|
133
135
|
- features/support/env.rb
|
134
136
|
- features/support/paths.rb
|
135
137
|
- images_extension.rb
|
136
138
|
- lib/images/interface/admin/images.rb
|
137
|
-
- lib/images/tags/
|
139
|
+
- lib/images/tags/core.rb
|
140
|
+
- lib/images/tags/helpers.rb
|
138
141
|
- lib/tasks/images_extension_tasks.rake
|
142
|
+
- public/images/admin/extensions/images/sort.png
|
139
143
|
- public/images/extensions/images/missing_icon.png
|
140
144
|
- public/images/extensions/images/missing_normal.png
|
141
145
|
- public/images/extensions/images/missing_preview.png
|
@@ -145,7 +149,7 @@ files:
|
|
145
149
|
- radiant-images-extension.gemspec
|
146
150
|
- spec/controllers/admin/images_controller_spec.rb
|
147
151
|
- spec/datasets/images.rb
|
148
|
-
- spec/lib/images/tags/
|
152
|
+
- spec/lib/images/tags/core_spec.rb
|
149
153
|
- spec/models/image_spec.rb
|
150
154
|
- spec/spec.opts
|
151
155
|
- spec/spec_helper.rb
|
@@ -186,6 +190,6 @@ summary: Images Extension for Radiant CMS
|
|
186
190
|
test_files:
|
187
191
|
- spec/controllers/admin/images_controller_spec.rb
|
188
192
|
- spec/datasets/images.rb
|
189
|
-
- spec/lib/images/tags/
|
193
|
+
- spec/lib/images/tags/core_spec.rb
|
190
194
|
- spec/models/image_spec.rb
|
191
195
|
- spec/spec_helper.rb
|