has_filepicker_image 0.1.0 → 0.1.1

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/.gitignore CHANGED
@@ -1,4 +1,5 @@
1
1
  pkg/*
2
+ Gemfile.lock
2
3
  *.gem
3
4
  .bundle
4
5
  nbproject/*
data/.travis.yml CHANGED
@@ -2,3 +2,6 @@ language: ruby
2
2
  rvm:
3
3
  - 1.9.3
4
4
  - 2.0.0
5
+ env:
6
+ - RAILS_VERSION=3.2
7
+ - RAILS_VERSION=4.0
@@ -18,11 +18,11 @@ Gem::Specification.new do |s|
18
18
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
19
  s.require_paths = ["lib"]
20
20
 
21
+ s.add_dependency "rails", "~> #{ENV["RAILS_VERSION"] || "3.2"}"
22
+ s.add_dependency "railties"
23
+
21
24
  s.add_development_dependency "rspec-rails"
25
+ s.add_development_dependency "rspec-html-matchers"
22
26
  s.add_development_dependency "sqlite3"
23
27
  s.add_development_dependency "coveralls"
24
-
25
- s.add_dependency "railties", ">= 3.1.0", "< 5.0"
26
- s.add_dependency "rails", '>=3.2.0'
27
-
28
28
  end
@@ -58,12 +58,24 @@ module HasFilepickerImage
58
58
  :class => 'filepicker-button'
59
59
  )
60
60
 
61
- buttons + preview + ActionView::Helpers::InstanceTag.new(
62
- @object_name,
63
- attribute_name,
64
- @template,
65
- object
66
- ).to_input_field_tag('hidden')
61
+ hidden_field = if Rails::VERSION::MAJOR >= 4
62
+ ActionView::Helpers::Tags::HiddenField.new(
63
+ @object_name,
64
+ attribute_name,
65
+ @template,
66
+ :object => object
67
+ ).render
68
+ else
69
+ ActionView::Helpers::InstanceTag.new(
70
+ @object_name,
71
+ attribute_name,
72
+ @template,
73
+ object
74
+ ).to_input_field_tag('hidden')
75
+ end
76
+
77
+ buttons + preview + hidden_field
67
78
  end
79
+
68
80
  end
69
81
  end
@@ -1,3 +1,3 @@
1
1
  module HasFilepickerImage
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -17,77 +17,116 @@ describe HasFilepickerImage::FormBuilderHelper do
17
17
  end
18
18
 
19
19
  let(:model) { TestModel.new }
20
- let(:builder) { FormBuilder.new(:test_model, model, ActionView::Base.new, {}, proc {}) }
21
-
22
- it "should add a filepicker_image_field method" do
23
- builder.should respond_to(:filepicker_image_field)
20
+ let(:builder) do
21
+ args = [:test_model, model, ActionView::Base.new, {}]
22
+ args << proc {} if Rails::VERSION::MAJOR < 4
23
+ FormBuilder.new(*args)
24
24
  end
25
25
 
26
- it "returns the filepicker input field" do
27
- builder.filepicker_image_field(:image_url).should ==
28
- "<div class=\"filepicker-button\">" +
29
- "<a data-action=\"pickImage\" href=\"#\" style=\"\">Pick</a>" +
30
- "<a href=\"#\" data-action=\"removeImage\" style=\"display:none;\">Remove</a>" +
31
- "</div>" +
32
- "<div class=\"filepicker-image\" style=\"display:none;\"></div>" +
33
- "<input id=\"test_model_image_url\" name=\"test_model[image_url]\" type=\"hidden\" />"
34
- end
26
+ let(:rendered) { builder.filepicker_image_field(:image_url) }
35
27
 
36
- it "returns the filepicker input with preview" do
37
- model.image_url = 'http://filepicker.io/images/1'
38
- builder.filepicker_image_field(:image_url).should ==
39
- "<div class=\"filepicker-button\">" +
40
- "<a data-action=\"pickImage\" href=\"#\" style=\"display:none;\">Pick</a>" +
41
- "<a href=\"#\" data-action=\"removeImage\" style=\"\">Remove</a>" +
42
- "</div>" +
43
- "<div class=\"filepicker-image\" style=\"\"><img alt=\"image_url thumbnail\" src=\"http://filepicker.io/images/1/convert?w=260&amp;h=180\" /></div>" +
44
- "<input id=\"test_model_image_url\" name=\"test_model[image_url]\" type=\"hidden\" value=\"http://filepicker.io/images/1\" />"
28
+ it "displays the buttons" do
29
+ rendered.should have_tag 'div', :with => { :class => 'filepicker-button' } do
30
+ with_tag "a", :text => "Pick"
31
+ with_tag "a", :text => "Remove"
32
+ end
45
33
  end
46
34
 
47
- it "returns the filepicker input with defaults options" do
48
- @configuration.defaults = @configuration.defaults.deep_merge(
49
- :html_options => { :'data-fp-debug' => true }
50
- )
35
+ it "displays the image div" do
36
+ rendered.should have_tag "div", :with => { :class => 'filepicker-image' }
37
+ end
51
38
 
52
- builder.filepicker_image_field(:image_url).should ==
53
- "<div class=\"filepicker-button\">" +
54
- "<a data-action=\"pickImage\" data-fp-debug=\"true\" href=\"#\" style=\"\">Pick</a>" +
55
- "<a href=\"#\" data-action=\"removeImage\" style=\"display:none;\">Remove</a>" +
56
- "</div>" +
57
- "<div class=\"filepicker-image\" style=\"display:none;\"></div>" +
58
- "<input id=\"test_model_image_url\" name=\"test_model[image_url]\" type=\"hidden\" />"
39
+ it "displays the hidden input" do
40
+ rendered.should have_tag "input", :with => {
41
+ :id => "test_model_image_url",
42
+ :name => "test_model[image_url]",
43
+ :type => "hidden"
44
+ }
59
45
  end
60
46
 
61
- it "returns the filepicker input with custom options" do
47
+ it "displays customized buttons text" do
62
48
  @configuration.defaults = {
63
49
  :pick_button_html => 'Add Photo',
64
50
  :delete_button_html => 'Remove Photo'
65
51
  }
66
52
 
67
- builder.filepicker_image_field(:image_url).should ==
68
- "<div class=\"filepicker-button\">" +
69
- "<a data-action=\"pickImage\" href=\"#\" style=\"\">Add Photo</a>" +
70
- "<a href=\"#\" data-action=\"removeImage\" style=\"display:none;\">Remove Photo</a>" +
71
- "</div>" +
72
- "<div class=\"filepicker-image\" style=\"display:none;\"></div>" +
73
- "<input id=\"test_model_image_url\" name=\"test_model[image_url]\" type=\"hidden\" />"
53
+ rendered.should have_tag 'div' do
54
+ with_tag "a", :text => "Add Photo"
55
+ with_tag "a", :text => "Remove Photo"
56
+ end
74
57
  end
75
58
 
59
+ it "displays the filepicker input with custom defaults options" do
60
+ @configuration.defaults = @configuration.defaults.deep_merge(
61
+ :html_options => { :'data-fp-debug' => true }
62
+ )
76
63
 
77
- it "returns input with a different config" do
64
+ rendered.should have_tag 'div' do
65
+ with_tag "a", :with => { :'data-fp-debug' => "true" }
66
+ end
67
+ end
68
+
69
+ it "displays options from a custom config" do
78
70
  @configuration.add_config(
79
71
  :picture_config,
80
72
  :pick_button_html => 'Add Picture',
81
73
  :delete_button_html => 'Remove Picture'
82
74
  )
75
+ rendered = builder.filepicker_image_field(:image_url, :picture_config)
76
+ rendered.should have_tag 'div' do
77
+ with_tag "a", :text => "Add Picture"
78
+ with_tag "a", :text => "Remove Picture"
79
+ end
80
+ end
81
+
82
+ context "when empty value" do
83
+ it "displays buttons showing the pick one" do
84
+ rendered.should have_tag 'div', :with => { :class => 'filepicker-button' } do
85
+ with_tag "a", :text => "Pick", :with => { :'data-action' => "pickImage", :style => "" }
86
+ with_tag "a", :text => "Remove", :with => { :'data-action' => "removeImage", :style => "display:none;" }
87
+ end
88
+ end
89
+
90
+ it "does NOT display image previews" do
91
+ rendered.should have_tag "div", :with => { :class => 'filepicker-image', :style => 'display:none;' } do
92
+ without_tag "img"
93
+ end
94
+ end
95
+
96
+ it "displays the hidden input" do
97
+ rendered.should have_tag "input", :with => {
98
+ :id => "test_model_image_url",
99
+ :name => "test_model[image_url]",
100
+ :type => "hidden"
101
+ }
102
+ end
103
+ end
104
+
105
+
106
+ context "when value present" do
107
+ before { model.image_url = 'http://filepicker.io/images/1' }
108
+
109
+ it "displays the buttons showing the remove one" do
110
+ rendered.should have_tag 'div', :with => { :class => 'filepicker-button' } do
111
+ with_tag "a", :text => "Pick", :with => { :style => "display:none;" }
112
+ with_tag "a", :text => "Remove", :with => { :style => "" }
113
+ end
114
+ end
115
+
116
+ it "displays the image" do
117
+ rendered.should have_tag "div", :with => { :class => 'filepicker-image', :style => '' } do
118
+ with_tag "img", :alt => "image_url thumbnail", :src => "http://filepicker.io/images/1/convert?w=260&amp;h=180"
119
+ end
120
+ end
83
121
 
84
- builder.filepicker_image_field(:image_url, :picture_config).should ==
85
- "<div class=\"filepicker-button\">" +
86
- "<a data-action=\"pickImage\" href=\"#\" style=\"\">Add Picture</a>" +
87
- "<a href=\"#\" data-action=\"removeImage\" style=\"display:none;\">Remove Picture</a>" +
88
- "</div>" +
89
- "<div class=\"filepicker-image\" style=\"display:none;\"></div>" +
90
- "<input id=\"test_model_image_url\" name=\"test_model[image_url]\" type=\"hidden\" />"
122
+ it "displays the hidden input with a value" do
123
+ rendered.should have_tag "input", :with => {
124
+ :id => "test_model_image_url",
125
+ :name => "test_model[image_url]",
126
+ :type => "hidden",
127
+ :value => "http://filepicker.io/images/1"
128
+ }
129
+ end
91
130
  end
92
131
 
93
132
  end
data/spec/spec_helper.rb CHANGED
@@ -5,6 +5,7 @@ $LOAD_PATH << File.join(File.dirname(__FILE__), '..', 'lib')
5
5
 
6
6
  require 'rails/all'
7
7
  require 'rspec/rails'
8
+ require 'rspec-html-matchers'
8
9
  require 'has_filepicker_image'
9
10
 
10
11
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: has_filepicker_image
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,17 +9,33 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-11-04 00:00:00.000000000 Z
12
+ date: 2013-11-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: rspec-rails
15
+ name: rails
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '3.2'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '3.2'
30
+ - !ruby/object:Gem::Dependency
31
+ name: railties
16
32
  requirement: !ruby/object:Gem::Requirement
17
33
  none: false
18
34
  requirements:
19
35
  - - ! '>='
20
36
  - !ruby/object:Gem::Version
21
37
  version: '0'
22
- type: :development
38
+ type: :runtime
23
39
  prerelease: false
24
40
  version_requirements: !ruby/object:Gem::Requirement
25
41
  none: false
@@ -28,7 +44,7 @@ dependencies:
28
44
  - !ruby/object:Gem::Version
29
45
  version: '0'
30
46
  - !ruby/object:Gem::Dependency
31
- name: sqlite3
47
+ name: rspec-rails
32
48
  requirement: !ruby/object:Gem::Requirement
33
49
  none: false
34
50
  requirements:
@@ -44,7 +60,7 @@ dependencies:
44
60
  - !ruby/object:Gem::Version
45
61
  version: '0'
46
62
  - !ruby/object:Gem::Dependency
47
- name: coveralls
63
+ name: rspec-html-matchers
48
64
  requirement: !ruby/object:Gem::Requirement
49
65
  none: false
50
66
  requirements:
@@ -60,43 +76,37 @@ dependencies:
60
76
  - !ruby/object:Gem::Version
61
77
  version: '0'
62
78
  - !ruby/object:Gem::Dependency
63
- name: railties
79
+ name: sqlite3
64
80
  requirement: !ruby/object:Gem::Requirement
65
81
  none: false
66
82
  requirements:
67
83
  - - ! '>='
68
84
  - !ruby/object:Gem::Version
69
- version: 3.1.0
70
- - - <
71
- - !ruby/object:Gem::Version
72
- version: '5.0'
73
- type: :runtime
85
+ version: '0'
86
+ type: :development
74
87
  prerelease: false
75
88
  version_requirements: !ruby/object:Gem::Requirement
76
89
  none: false
77
90
  requirements:
78
91
  - - ! '>='
79
92
  - !ruby/object:Gem::Version
80
- version: 3.1.0
81
- - - <
82
- - !ruby/object:Gem::Version
83
- version: '5.0'
93
+ version: '0'
84
94
  - !ruby/object:Gem::Dependency
85
- name: rails
95
+ name: coveralls
86
96
  requirement: !ruby/object:Gem::Requirement
87
97
  none: false
88
98
  requirements:
89
99
  - - ! '>='
90
100
  - !ruby/object:Gem::Version
91
- version: 3.2.0
92
- type: :runtime
101
+ version: '0'
102
+ type: :development
93
103
  prerelease: false
94
104
  version_requirements: !ruby/object:Gem::Requirement
95
105
  none: false
96
106
  requirements:
97
107
  - - ! '>='
98
108
  - !ruby/object:Gem::Version
99
- version: 3.2.0
109
+ version: '0'
100
110
  description: Easily add filepicker images to your models
101
111
  email:
102
112
  - polmiro@gmail.com
@@ -107,7 +117,6 @@ files:
107
117
  - .gitignore
108
118
  - .travis.yml
109
119
  - Gemfile
110
- - Gemfile.lock
111
120
  - MIT-LICENSE
112
121
  - README.md
113
122
  - Rakefile
@@ -137,12 +146,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
137
146
  - - ! '>='
138
147
  - !ruby/object:Gem::Version
139
148
  version: '0'
149
+ segments:
150
+ - 0
151
+ hash: 3317842162528816829
140
152
  required_rubygems_version: !ruby/object:Gem::Requirement
141
153
  none: false
142
154
  requirements:
143
155
  - - ! '>='
144
156
  - !ruby/object:Gem::Version
145
157
  version: '0'
158
+ segments:
159
+ - 0
160
+ hash: 3317842162528816829
146
161
  requirements: []
147
162
  rubyforge_project:
148
163
  rubygems_version: 1.8.24
data/Gemfile.lock DELETED
@@ -1,124 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- has_filepicker_image (0.1.0)
5
- rails (>= 3.2.0)
6
- railties (>= 3.1.0, < 5.0)
7
-
8
- GEM
9
- remote: http://rubygems.org/
10
- specs:
11
- actionmailer (3.2.11)
12
- actionpack (= 3.2.11)
13
- mail (~> 2.4.4)
14
- actionpack (3.2.11)
15
- activemodel (= 3.2.11)
16
- activesupport (= 3.2.11)
17
- builder (~> 3.0.0)
18
- erubis (~> 2.7.0)
19
- journey (~> 1.0.4)
20
- rack (~> 1.4.0)
21
- rack-cache (~> 1.2)
22
- rack-test (~> 0.6.1)
23
- sprockets (~> 2.2.1)
24
- activemodel (3.2.11)
25
- activesupport (= 3.2.11)
26
- builder (~> 3.0.0)
27
- activerecord (3.2.11)
28
- activemodel (= 3.2.11)
29
- activesupport (= 3.2.11)
30
- arel (~> 3.0.2)
31
- tzinfo (~> 0.3.29)
32
- activeresource (3.2.11)
33
- activemodel (= 3.2.11)
34
- activesupport (= 3.2.11)
35
- activesupport (3.2.11)
36
- i18n (~> 0.6)
37
- multi_json (~> 1.0)
38
- arel (3.0.2)
39
- builder (3.0.4)
40
- coveralls (0.7.0)
41
- multi_json (~> 1.3)
42
- rest-client
43
- simplecov (>= 0.7)
44
- term-ansicolor
45
- thor
46
- diff-lcs (1.1.3)
47
- erubis (2.7.0)
48
- hike (1.2.1)
49
- i18n (0.6.1)
50
- journey (1.0.4)
51
- json (1.7.6)
52
- mail (2.4.4)
53
- i18n (>= 0.4.0)
54
- mime-types (~> 1.16)
55
- treetop (~> 1.4.8)
56
- mime-types (1.25)
57
- multi_json (1.5.0)
58
- polyglot (0.3.3)
59
- rack (1.4.4)
60
- rack-cache (1.2)
61
- rack (>= 0.4)
62
- rack-ssl (1.3.3)
63
- rack
64
- rack-test (0.6.2)
65
- rack (>= 1.0)
66
- rails (3.2.11)
67
- actionmailer (= 3.2.11)
68
- actionpack (= 3.2.11)
69
- activerecord (= 3.2.11)
70
- activeresource (= 3.2.11)
71
- activesupport (= 3.2.11)
72
- bundler (~> 1.0)
73
- railties (= 3.2.11)
74
- railties (3.2.11)
75
- actionpack (= 3.2.11)
76
- activesupport (= 3.2.11)
77
- rack-ssl (~> 1.3.2)
78
- rake (>= 0.8.7)
79
- rdoc (~> 3.4)
80
- thor (>= 0.14.6, < 2.0)
81
- rake (10.0.3)
82
- rdoc (3.12.1)
83
- json (~> 1.4)
84
- rest-client (1.6.7)
85
- mime-types (>= 1.16)
86
- rspec-core (2.12.2)
87
- rspec-expectations (2.12.1)
88
- diff-lcs (~> 1.1.3)
89
- rspec-mocks (2.12.2)
90
- rspec-rails (2.12.2)
91
- actionpack (>= 3.0)
92
- activesupport (>= 3.0)
93
- railties (>= 3.0)
94
- rspec-core (~> 2.12.0)
95
- rspec-expectations (~> 2.12.0)
96
- rspec-mocks (~> 2.12.0)
97
- simplecov (0.7.1)
98
- multi_json (~> 1.0)
99
- simplecov-html (~> 0.7.1)
100
- simplecov-html (0.7.1)
101
- sprockets (2.2.2)
102
- hike (~> 1.2)
103
- multi_json (~> 1.0)
104
- rack (~> 1.0)
105
- tilt (~> 1.1, != 1.3.0)
106
- sqlite3 (1.3.7)
107
- term-ansicolor (1.2.2)
108
- tins (~> 0.8)
109
- thor (0.17.0)
110
- tilt (1.3.3)
111
- tins (0.12.0)
112
- treetop (1.4.15)
113
- polyglot
114
- polyglot (>= 0.3.1)
115
- tzinfo (0.3.38)
116
-
117
- PLATFORMS
118
- ruby
119
-
120
- DEPENDENCIES
121
- coveralls
122
- has_filepicker_image!
123
- rspec-rails
124
- sqlite3