delocalize 0.1.6 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,10 +4,22 @@ delocalize
4
4
  delocalize provides localized date/time and number parsing functionality for Rails.
5
5
 
6
6
  Installation
7
- ---------------
7
+ ------------
8
8
 
9
9
  You can use delocalize either as a gem (preferred) or as a Rails plugin.
10
10
 
11
+ ### Rails 3
12
+
13
+ To use the gem version, put the following gem requirement in your `Gemfile`:
14
+
15
+ gem "delocalize", :source => 'http://gemcutter.org'
16
+
17
+ To install it as a plugin, fire up your terminal, go to your Rails app and type:
18
+
19
+ $ ruby rails plugin install git://github.com/clemens/delocalize.git
20
+
21
+ ### Rails 2
22
+
11
23
  To use the gem version, put the following gem requirement in your `environment.rb`:
12
24
 
13
25
  config.gem "delocalize", :source => 'http://gemcutter.org'
@@ -18,7 +30,7 @@ To install it as a plugin, fire up your terminal, go to your Rails app and type:
18
30
 
19
31
 
20
32
  What does it do? And how do I use it?
21
- ---------------------------------------------------
33
+ --------------------------------------
22
34
 
23
35
  Delocalize, just as the name suggest, does pretty much the opposite of localize.
24
36
 
@@ -96,20 +108,29 @@ You can also customize the output using some options:
96
108
  Since `I18n.localize` supports localizing `strftime` strings, we can also do this:
97
109
  <%= f.text_field :released_on, :format => "%B %Y" %>
98
110
 
99
- ### Note
111
+ ### Compatibility
112
+
113
+ * Tested with Rails 2.3.5 in Ruby 1.8.7, Ruby 1.9.1 and Ruby 1.9.2 (head)
114
+ * Tested with Rails 3 Beta 3 in Ruby 1.9.2 (head)
115
+
116
+ ### Contributors
117
+
118
+ People who have contributed to delocalize (in no particular order):
100
119
 
101
- delocalize is most definitely not enterprise-ready! ;-)
102
- Or as Yaroslav says: Contains small pieces. Not good for children of age 3 and less. Not enterprise-ready.
120
+ * [Fernando Luizao](http://github.com/fernandoluizao)
121
+ * [Stephan](http://github.com/stepahn)
122
+ * [Lailson Bandeira](http://github.com/lailsonbm)
123
+ * [Carlos Antonio da Silva](http://github.com/carlosantoniodasilva)
124
+ * [Michele Franzin](http://github.com/michelefranzin)
103
125
 
104
126
  ### TODO
105
127
 
106
128
  * Improve test coverage
107
129
  * Separate Ruby/Rails stuff to make it usable outside Rails
108
- * Verify correct behavior with time zones
109
130
  * Decide on other ActionView hacks (e.g. `text_field_tag`)
110
131
  * Implement AM/PM support
111
132
  * Cleanup, cleanup, cleanup ...
112
133
 
113
- Copyright (c) 2009-2010 Clemens Kofler &lt;clemens@railway.at&gt;
114
- http://www.railway.at/
134
+ Copyright (c) 2009-2010 Clemens Kofler <clemens@railway.at>
135
+ <http://www.railway.at/>
115
136
  Released under the MIT license
data/Rakefile CHANGED
@@ -2,9 +2,9 @@ require 'rake'
2
2
  require 'rake/testtask'
3
3
  require 'rake/rdoctask'
4
4
 
5
- require 'tasks/distribution'
6
- require 'tasks/documentation'
7
- require 'tasks/testing'
5
+ require File.expand_path(File.join(File.dirname(__FILE__), 'tasks/distribution'))
6
+ require File.expand_path(File.join(File.dirname(__FILE__), 'tasks/documentation'))
7
+ require File.expand_path(File.join(File.dirname(__FILE__), 'tasks/testing'))
8
8
 
9
9
  desc 'Default: run unit tests.'
10
10
  task :default => :test
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.6
1
+ 0.2.0
@@ -1,3 +1,5 @@
1
+ require 'active_record/connection_adapters/abstract/schema_definitions'
2
+
1
3
  # let's hack into ActiveRecord a bit - everything at the lowest possible level, of course, so we minimalize side effects
2
4
  ActiveRecord::ConnectionAdapters::Column.class_eval do
3
5
  def date?
@@ -36,8 +38,15 @@ ActiveRecord::Base.class_eval do
36
38
  evaluate_attribute_method attr_name, method_body, "#{attr_name}="
37
39
  end
38
40
 
39
- # overriding to convert numbers with localization
40
- # this method belongs to Dirty module
41
+ def convert_number_column_value_with_localization(value)
42
+ value = convert_number_column_value_without_localization(value)
43
+ value = Numeric.parse_localized(value) if I18n.delocalization_enabled?
44
+ value
45
+ end
46
+ alias_method_chain :convert_number_column_value, :localization
47
+ end
48
+
49
+ ActiveRecord::Dirty.module_eval do
41
50
  def field_changed?(attr, old, value)
42
51
  if column = column_for_attribute(attr)
43
52
  if column.number? && column.null && (old.nil? || old == 0) && value.blank?
@@ -53,11 +62,4 @@ ActiveRecord::Base.class_eval do
53
62
 
54
63
  old != value
55
64
  end
56
-
57
- def convert_number_column_value_with_localization(value)
58
- value = convert_number_column_value_without_localization(value)
59
- value = Numeric.parse_localized(value) if I18n.delocalization_enabled?
60
- value
61
- end
62
- alias_method_chain :convert_number_column_value, :localization
63
65
  end
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
- require File.dirname(__FILE__) + '/test_helper'
3
+ require File.expand_path(File.join(File.dirname(__FILE__), 'test_helper'))
4
4
 
5
5
  class DelocalizeActiveRecordTest < ActiveRecord::TestCase
6
6
  def setup
@@ -230,7 +230,7 @@ class DelocalizeActionViewTest < ActionView::TestCase
230
230
  text_field(:product, :price, :value => "1.499,90")
231
231
  end
232
232
 
233
- test "don't convert type if field has errors" do
233
+ test "doesn't convert the value if field has errors" do
234
234
  @product = ProductWithValidation.new(:price => 'this is not a number')
235
235
  @product.valid?
236
236
  assert_dom_equal '<div class="fieldWithErrors"><input id="product_price" name="product[price]" size="30" type="text" value="this is not a number" /></div>',
@@ -1,8 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  ENV["RAILS_ENV"] = "test"
4
- #require File.expand_path(File.dirname(__FILE__) + "/../../../../config/environment")
5
- require File.expand_path(File.dirname(__FILE__) + "/rails_app/config/environment")
4
+ require File.expand_path(File.join(File.dirname(__FILE__), 'rails_app/config/environment'))
6
5
  require 'test_help'
7
6
 
8
7
  require 'rubygems'
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 1
8
- - 6
9
- version: 0.1.6
7
+ - 2
8
+ - 0
9
+ version: 0.2.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Clemens Kofler
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-05-13 00:00:00 +02:00
17
+ date: 2010-05-30 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies: []
20
20