best_in_place 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. data/.travis.yml +0 -1
  2. data/README.md +54 -46
  3. data/lib/assets/javascripts/best_in_place.js +42 -0
  4. data/lib/best_in_place.rb +4 -0
  5. data/lib/best_in_place/controller_extensions.rb +1 -1
  6. data/lib/best_in_place/display_methods.rb +24 -2
  7. data/lib/best_in_place/helper.rb +26 -9
  8. data/lib/best_in_place/utils.rb +1 -1
  9. data/lib/best_in_place/version.rb +1 -1
  10. data/spec/helpers/best_in_place_spec.rb +46 -1
  11. data/spec/integration/double_init_spec.rb +2 -1
  12. data/spec/integration/js_spec.rb +178 -8
  13. data/spec/support/retry_on_timeout.rb +10 -0
  14. data/test_app/app/assets/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  15. data/test_app/app/assets/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  16. data/test_app/app/assets/images/ui-bg_flat_10_000000_40x100.png +0 -0
  17. data/test_app/app/assets/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  18. data/test_app/app/assets/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  19. data/test_app/app/assets/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  20. data/test_app/app/assets/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  21. data/test_app/app/assets/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  22. data/test_app/app/assets/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  23. data/test_app/app/assets/images/ui-icons_222222_256x240.png +0 -0
  24. data/test_app/app/assets/images/ui-icons_228ef1_256x240.png +0 -0
  25. data/test_app/app/assets/images/ui-icons_ef8c08_256x240.png +0 -0
  26. data/test_app/app/assets/images/ui-icons_ffd27a_256x240.png +0 -0
  27. data/test_app/app/assets/images/ui-icons_ffffff_256x240.png +0 -0
  28. data/test_app/app/assets/javascripts/application.js +25 -55
  29. data/test_app/app/assets/stylesheets/jquery-ui-1.8.16.custom.css.erb +357 -0
  30. data/test_app/app/assets/stylesheets/{style.css → style.css.erb} +1 -1
  31. data/test_app/app/models/user.rb +1 -0
  32. data/test_app/app/views/layouts/application.html.erb +1 -1
  33. data/test_app/app/views/users/double_init.html.erb +7 -0
  34. data/test_app/app/views/users/show.html.erb +13 -0
  35. data/test_app/config/initializers/default_date_format.rb +2 -0
  36. data/test_app/db/migrate/20111217215935_add_birth_date_to_users.rb +5 -0
  37. data/test_app/db/migrate/20111224181356_add_money_to_user.rb +5 -0
  38. data/test_app/db/schema.rb +3 -1
  39. data/test_app/db/seeds.rb +4 -4
  40. metadata +34 -15
@@ -40,7 +40,7 @@ textarea {
40
40
  }
41
41
  .best_in_place:hover, #user_account .do_hover {
42
42
  padding-right: 1.5em;
43
- background: url("/images/red_pen.png") no-repeat right;
43
+ background: url(<%= asset_path "red_pen.png" %>) no-repeat right;
44
44
  background-color: #CCC;
45
45
  }
46
46
  .info_edit {
@@ -12,6 +12,7 @@ class User < ActiveRecord::Base
12
12
  :presence => {:message => "can't be blank"},
13
13
  :format => {:with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i, :message => "has wrong email format"}
14
14
  validates :zip, :numericality => true, :length => { :minimum => 5 }
15
+ validates_numericality_of :money, :allow_blank => true
15
16
 
16
17
  def address_format
17
18
  "<b>addr => [#{address}]</b>".html_safe
@@ -2,7 +2,7 @@
2
2
  <html>
3
3
  <head>
4
4
  <title>Best In Place TEST APP</title>
5
- <%= stylesheet_link_tag "scaffold", "style" %>
5
+ <%= stylesheet_link_tag "scaffold", "style", "jquery-ui-1.8.16.custom" %>
6
6
  <%= javascript_include_tag "application" %>
7
7
  <%= csrf_meta_tag %>
8
8
  </head>
@@ -51,6 +51,13 @@
51
51
  <td id="description">
52
52
  <%= best_in_place @user, :description, :type => :textarea, :sanitize => false %>
53
53
  </td>
54
+ </tr>
55
+ <tr>
56
+ <td>Alternative Money</td>
57
+ <td id="alt_money">
58
+ <%= best_in_place @user, :money, :display_with => :number_to_currency, :helper_options => {:unit => "€"} %>
59
+ </td>
60
+ </tr>
54
61
  </table>
55
62
  <br />
56
63
  <hr />
@@ -22,6 +22,12 @@
22
22
  <%= best_in_place @user, :email %>
23
23
  </td>
24
24
  </tr>
25
+ <tr>
26
+ <td>Birth date</td>
27
+ <td id="birth_date">
28
+ <%= best_in_place @user, :birth_date, :type => :date %>
29
+ </td>
30
+ </tr>
25
31
  <tr>
26
32
  <td>Address</td>
27
33
  <td id="address">
@@ -51,6 +57,13 @@
51
57
  <td id="description">
52
58
  <%= best_in_place @user, :description, :display_as => :markdown_desc, :type => :textarea, :sanitize => false %>
53
59
  </td>
60
+ </tr>
61
+ <tr>
62
+ <td>Money</td>
63
+ <td id="money">
64
+ <%= best_in_place @user, :money, :display_with => :number_to_currency %>
65
+ </td>
66
+ </tr>
54
67
  </table>
55
68
  <br />
56
69
  <hr />
@@ -0,0 +1,2 @@
1
+ Date::DATE_FORMATS[:default] = '%Y-%m-%d'
2
+ Time::DATE_FORMATS[:default] = '%Y-%m-%d'
@@ -0,0 +1,5 @@
1
+ class AddBirthDateToUsers < ActiveRecord::Migration
2
+ def change
3
+ add_column :users, :birth_date, :datetime
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddMoneyToUser < ActiveRecord::Migration
2
+ def change
3
+ add_column :users, :money, :float
4
+ end
5
+ end
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # It's strongly recommended to check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(:version => 20110115204441) do
14
+ ActiveRecord::Schema.define(:version => 20111224181356) do
15
15
 
16
16
  create_table "users", :force => true do |t|
17
17
  t.string "name"
@@ -24,6 +24,8 @@ ActiveRecord::Schema.define(:version => 20110115204441) do
24
24
  t.datetime "updated_at"
25
25
  t.boolean "receive_email"
26
26
  t.text "description"
27
+ t.datetime "birth_date"
28
+ t.float "money"
27
29
  end
28
30
 
29
31
  end
data/test_app/db/seeds.rb CHANGED
@@ -9,7 +9,7 @@
9
9
 
10
10
  User.delete_all
11
11
 
12
- User.create!(:name => "Lucia", :last_name => "Napoli", :email => "lucianapoli@gmail.com", :address => "Via Roma 99", :zip => "25123", :country => "1", :receive_email => false, :description => "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus a lectus et lacus ultrices auctor. Morbi aliquet convallis tincidunt. Praesent enim libero, iaculis at commodo nec, fermentum a dolor. Quisque eget eros id felis lacinia faucibus feugiat et ante. Aenean justo nisi, aliquam vel egestas vel, porta in ligula. Etiam molestie, lacus eget tincidunt accumsan, elit justo rhoncus urna, nec pretium neque mi et lorem. Aliquam posuere, dolor quis pulvinar luctus, felis dolor tincidunt leo, eget pretium orci purus ac nibh. Ut enim sem, suscipit ac elementum vitae, sodales vel sem.")
13
- User.create!(:name => "Carmen", :last_name => "Luciago", :email => "carmen@luciago.com", :address => "c/Ambrosio 10", :zip => "21333", :country => "2", :receive_email => true, :description => "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus a lectus et lacus ultrices auctor. Morbi aliquet convallis tincidunt. Praesent enim libero, iaculis at commodo nec, fermentum a dolor. Quisque eget eros id felis lacinia faucibus feugiat et ante. Aenean justo nisi, aliquam vel egestas vel, porta in ligula. Etiam molestie, lacus eget tincidunt accumsan, elit justo rhoncus urna, nec pretium neque mi et lorem. Aliquam posuere, dolor quis pulvinar luctus, felis dolor tincidunt leo, eget pretium orci purus ac nibh. Ut enim sem, suscipit ac elementum vitae, sodales vel sem.")
14
- User.create!(:name => "Angels", :last_name => "Domènech", :email => "angels@gmail.com", :address => "Avinguda Sant Andreu 1", :zip => "08033", :country => "3", :receive_email => false, :description => "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus a lectus et lacus ultrices auctor. Morbi aliquet convallis tincidunt. Praesent enim libero, iaculis at commodo nec, fermentum a dolor. Quisque eget eros id felis lacinia faucibus feugiat et ante. Aenean justo nisi, aliquam vel egestas vel, porta in ligula. Etiam molestie, lacus eget tincidunt accumsan, elit justo rhoncus urna, nec pretium neque mi et lorem. Aliquam posuere, dolor quis pulvinar luctus, felis dolor tincidunt leo, eget pretium orci purus ac nibh. Ut enim sem, suscipit ac elementum vitae, sodales vel sem.")
15
- User.create!(:name => "Dominic", :last_name => "Lepoin", :email => "dominiclepoin@gmail.com", :address => "Rue Tour Eiffel 4993", :zip => "11192", :country => "4", :receive_email => true, :description => "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus a lectus et lacus ultrices auctor. Morbi aliquet convallis tincidunt. Praesent enim libero, iaculis at commodo nec, fermentum a dolor. Quisque eget eros id felis lacinia faucibus feugiat et ante. Aenean justo nisi, aliquam vel egestas vel, porta in ligula. Etiam molestie, lacus eget tincidunt accumsan, elit justo rhoncus urna, nec pretium neque mi et lorem. Aliquam posuere, dolor quis pulvinar luctus, felis dolor tincidunt leo, eget pretium orci purus ac nibh. Ut enim sem, suscipit ac elementum vitae, sodales vel sem.")
12
+ User.create!(:name => "Lucia", :last_name => "Napoli", :email => "lucianapoli@gmail.com", :address => "Via Roma 99", :zip => "25123", :country => "1", :receive_email => false, :birth_date => Date.today - 21.years, :description => "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus a lectus et lacus ultrices auctor. Morbi aliquet convallis tincidunt. Praesent enim libero, iaculis at commodo nec, fermentum a dolor. Quisque eget eros id felis lacinia faucibus feugiat et ante. Aenean justo nisi, aliquam vel egestas vel, porta in ligula. Etiam molestie, lacus eget tincidunt accumsan, elit justo rhoncus urna, nec pretium neque mi et lorem. Aliquam posuere, dolor quis pulvinar luctus, felis dolor tincidunt leo, eget pretium orci purus ac nibh. Ut enim sem, suscipit ac elementum vitae, sodales vel sem.")
13
+ User.create!(:name => "Carmen", :last_name => "Luciago", :email => "carmen@luciago.com", :address => "c/Ambrosio 10", :zip => "21333", :country => "2", :receive_email => true, :birth_date => Date.today - 18.years, :description => "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus a lectus et lacus ultrices auctor. Morbi aliquet convallis tincidunt. Praesent enim libero, iaculis at commodo nec, fermentum a dolor. Quisque eget eros id felis lacinia faucibus feugiat et ante. Aenean justo nisi, aliquam vel egestas vel, porta in ligula. Etiam molestie, lacus eget tincidunt accumsan, elit justo rhoncus urna, nec pretium neque mi et lorem. Aliquam posuere, dolor quis pulvinar luctus, felis dolor tincidunt leo, eget pretium orci purus ac nibh. Ut enim sem, suscipit ac elementum vitae, sodales vel sem.")
14
+ User.create!(:name => "Angels", :last_name => "Domènech", :email => "angels@gmail.com", :address => "Avinguda Sant Andreu 1", :zip => "08033", :country => "3", :receive_email => false, :birth_date => Date.today - 65.years, :description => "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus a lectus et lacus ultrices auctor. Morbi aliquet convallis tincidunt. Praesent enim libero, iaculis at commodo nec, fermentum a dolor. Quisque eget eros id felis lacinia faucibus feugiat et ante. Aenean justo nisi, aliquam vel egestas vel, porta in ligula. Etiam molestie, lacus eget tincidunt accumsan, elit justo rhoncus urna, nec pretium neque mi et lorem. Aliquam posuere, dolor quis pulvinar luctus, felis dolor tincidunt leo, eget pretium orci purus ac nibh. Ut enim sem, suscipit ac elementum vitae, sodales vel sem.")
15
+ User.create!(:name => "Dominic", :last_name => "Lepoin", :email => "dominiclepoin@gmail.com", :address => "Rue Tour Eiffel 4993", :zip => "11192", :country => "4", :receive_email => true, :birth_date => Date.today - 40.years, :description => "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus a lectus et lacus ultrices auctor. Morbi aliquet convallis tincidunt. Praesent enim libero, iaculis at commodo nec, fermentum a dolor. Quisque eget eros id felis lacinia faucibus feugiat et ante. Aenean justo nisi, aliquam vel egestas vel, porta in ligula. Etiam molestie, lacus eget tincidunt accumsan, elit justo rhoncus urna, nec pretium neque mi et lorem. Aliquam posuere, dolor quis pulvinar luctus, felis dolor tincidunt leo, eget pretium orci purus ac nibh. Ut enim sem, suscipit ac elementum vitae, sodales vel sem.")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: best_in_place
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-04 00:00:00.000000000 Z
12
+ date: 2012-01-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &12601240 !ruby/object:Gem::Requirement
16
+ requirement: &69170780 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.1.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *12601240
24
+ version_requirements: *69170780
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: jquery-rails
27
- requirement: &12616680 !ruby/object:Gem::Requirement
27
+ requirement: &69170510 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *12616680
35
+ version_requirements: *69170510
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec-rails
38
- requirement: &12615660 !ruby/object:Gem::Requirement
38
+ requirement: &69170120 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 2.7.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *12615660
46
+ version_requirements: *69170120
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: nokogiri
49
- requirement: &12614960 !ruby/object:Gem::Requirement
49
+ requirement: &69169800 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.5.0
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *12614960
57
+ version_requirements: *69169800
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: capybara
60
- requirement: &12614300 !ruby/object:Gem::Requirement
60
+ requirement: &69169540 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: 1.0.1
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *12614300
68
+ version_requirements: *69169540
69
69
  description: BestInPlace is a jQuery script and a Rails 3 helper that provide the
70
70
  method best_in_place to display any object field easily editable for the user by
71
71
  just clicking on it. It supports input data, text data, boolean data and custom
@@ -98,15 +98,31 @@ files:
98
98
  - spec/integration/js_spec.rb
99
99
  - spec/integration/text_area_spec.rb
100
100
  - spec/spec_helper.rb
101
+ - spec/support/retry_on_timeout.rb
101
102
  - test_app/Gemfile
102
103
  - test_app/Gemfile.lock
103
104
  - test_app/README
104
105
  - test_app/Rakefile
105
106
  - test_app/app/assets/images/red_pen.png
107
+ - test_app/app/assets/images/ui-bg_diagonals-thick_18_b81900_40x40.png
108
+ - test_app/app/assets/images/ui-bg_diagonals-thick_20_666666_40x40.png
109
+ - test_app/app/assets/images/ui-bg_flat_10_000000_40x100.png
110
+ - test_app/app/assets/images/ui-bg_glass_100_f6f6f6_1x400.png
111
+ - test_app/app/assets/images/ui-bg_glass_100_fdf5ce_1x400.png
112
+ - test_app/app/assets/images/ui-bg_glass_65_ffffff_1x400.png
113
+ - test_app/app/assets/images/ui-bg_gloss-wave_35_f6a828_500x100.png
114
+ - test_app/app/assets/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
115
+ - test_app/app/assets/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
116
+ - test_app/app/assets/images/ui-icons_222222_256x240.png
117
+ - test_app/app/assets/images/ui-icons_228ef1_256x240.png
118
+ - test_app/app/assets/images/ui-icons_ef8c08_256x240.png
119
+ - test_app/app/assets/images/ui-icons_ffd27a_256x240.png
120
+ - test_app/app/assets/images/ui-icons_ffffff_256x240.png
106
121
  - test_app/app/assets/javascripts/application.js
107
122
  - test_app/app/assets/stylesheets/.gitkeep
123
+ - test_app/app/assets/stylesheets/jquery-ui-1.8.16.custom.css.erb
108
124
  - test_app/app/assets/stylesheets/scaffold.css
109
- - test_app/app/assets/stylesheets/style.css
125
+ - test_app/app/assets/stylesheets/style.css.erb
110
126
  - test_app/app/controllers/application_controller.rb
111
127
  - test_app/app/controllers/users_controller.rb
112
128
  - test_app/app/helpers/application_helper.rb
@@ -128,6 +144,7 @@ files:
128
144
  - test_app/config/environments/test.rb
129
145
  - test_app/config/initializers/backtrace_silencers.rb
130
146
  - test_app/config/initializers/countries.rb
147
+ - test_app/config/initializers/default_date_format.rb
131
148
  - test_app/config/initializers/inflections.rb
132
149
  - test_app/config/initializers/mime_types.rb
133
150
  - test_app/config/initializers/secret_token.rb
@@ -137,6 +154,8 @@ files:
137
154
  - test_app/db/migrate/20101206205922_create_users.rb
138
155
  - test_app/db/migrate/20101212170114_add_receive_email_to_user.rb
139
156
  - test_app/db/migrate/20110115204441_add_description_to_user.rb
157
+ - test_app/db/migrate/20111217215935_add_birth_date_to_users.rb
158
+ - test_app/db/migrate/20111224181356_add_money_to_user.rb
140
159
  - test_app/db/schema.rb
141
160
  - test_app/db/seeds.rb
142
161
  - test_app/doc/README_FOR_APP
@@ -169,7 +188,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
169
188
  version: '0'
170
189
  segments:
171
190
  - 0
172
- hash: 1789915415382083168
191
+ hash: -35281219
173
192
  required_rubygems_version: !ruby/object:Gem::Requirement
174
193
  none: false
175
194
  requirements:
@@ -178,7 +197,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
178
197
  version: '0'
179
198
  segments:
180
199
  - 0
181
- hash: 1789915415382083168
200
+ hash: -35281219
182
201
  requirements: []
183
202
  rubyforge_project: best_in_place
184
203
  rubygems_version: 1.8.10