rails_dictionary 0.0.9.1 → 0.0.9.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 CHANGED
@@ -1,7 +1,10 @@
1
+ 0.0.9.1
2
+ fix a cache bug in 0.0.9
1
3
  0.0.9
2
4
  add Rails Engine to redesign the gem
3
5
  use Rspec instead of Test::Unit to write test code
4
6
  remove many nonsence code
7
+ DictType.tab_and_column returns an array of symbols instead of strings
5
8
  if update from lower version,should run "rails runner "DictType.new.delete_all_caches" on app root.
6
9
  0.0.1-0.0.8
7
10
  old mixin coding style
data/README.rdoc CHANGED
@@ -10,8 +10,10 @@ Rail3
10
10
  or
11
11
  gem "rails_dictionary",:git => 'git://github.com/raykin/rails_dictionary'
12
12
 
13
- !!For user who update from old version to 0.0.9 or higher,Please run following command on app root
13
+ !!For user who update from old version to 0.0.9.1 or higher,Please run following command on app root after updates.
14
14
  rails runner "DictType.new.delete_all_caches"
15
+ and in production
16
+ rails runner "DictType.new.delete_all_caches" -e production
15
17
  See change log for brief info.
16
18
 
17
19
  == Sample
@@ -73,7 +75,7 @@ Here is what should be like.Student model can be other models.
73
75
 
74
76
  == Features (relies on the above data) :
75
77
  DictType.all_cached #=> return cache of DictType.all
76
- DictType.all_types = %w[student_city student_school] # also cached
78
+ DictType.all_types = [:student_city,:student_school] # also cached
77
79
  Dictionary.student_city #=> [Dictionary.find(5),Dictionary.find(6)]
78
80
  student_city is a dynamic method which returns a list of dictionary object which dict_type is "student_city".
79
81
  Actually Dictionary will have as many dynamic methods as DictType.count and each dynamic method name is DictType.name.
@@ -112,4 +114,4 @@ There are no convention and implemention to map Class like Ckeditor::Asset to a
112
114
 
113
115
  Rebuild core code.Using Rails engine.
114
116
 
115
- Rewrite Testing,make it more maintainable.
117
+ Add test code for cache DictType.tab_and_column,then uncomment the cache code.
@@ -36,6 +36,7 @@ module RailsDictionary
36
36
  # TODO:
37
37
  # To cache this method output need more skills on how to caculate ActiveRecord::Base.descendants
38
38
  # Temply remove the cache
39
+ # And add test for this situation
39
40
  def tab_and_column
40
41
  #Rails.cache.fetch("DictType.tab_and_column") do
41
42
  all_model_class=ActiveRecord::Base.descendants.map(&:name).map(&:underscore)
@@ -25,7 +25,10 @@ module RailsDictionary
25
25
  # rethink about the cache.
26
26
  # cache methods like Dictionary.student_city(:locale => :zh,:sort => :name_fr)
27
27
  # but not cache Dictionary.student_city,return it as relation
28
- def method_missing(method_id,options={},&block)
28
+ #
29
+ # Remove nil noise,if listed_attr =[[nil, 201], [nil, 203], [nil, 202], ["Sciences", 200]]
30
+ # the sort would be failed of ArgumentError: comparison of Array with Array failed
31
+ def method_missing(method_id,options={})
29
32
  method_name=method_id.to_s.downcase
30
33
  if DictType.all_types.include? method_id
31
34
  Rails.cache.fetch("Dictionary.#{method_name}") { dict_type_name_eq(method_name) }
@@ -33,7 +36,7 @@ module RailsDictionary
33
36
  # Instance of activerelation can not be dup?
34
37
  if options.keys.include? :locale or options.keys.include? "locale"
35
38
  locale="name_#{ options[:locale] }"
36
- listed_attr.map! { |a| [a.send(locale),a.id] }
39
+ listed_attr.map! { |a| [a.send(locale),a.id] }.reject! {|ele| ele.first.nil?}
37
40
  listed_attr.sort { |a,b| a.first <=> b.first }
38
41
  # maybe remove the above line,or change some sorting and caching design
39
42
  else
@@ -1,3 +1,3 @@
1
1
  module RailsDictionary
2
- VERSION = "0.0.9.1"
2
+ VERSION = "0.0.9.2"
3
3
  end
@@ -1,7 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  require File.expand_path('spec_helper', File.dirname(__FILE__))
3
3
 
4
-
5
4
  describe RailsDictionary::ActiveRecordExtension do
6
5
  %w[acts_as_dict_type acts_as_dictionary acts_as_dict_slave].each do |method_name|
7
6
  it "contains #{method_name}" do
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: rails_dictionary
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.9.1
5
+ version: 0.0.9.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Raykin Lee
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-04-14 00:00:00 Z
13
+ date: 2011-04-15 00:00:00 Z
14
14
  dependencies: []
15
15
 
16
16
  description: Rails plugin for mapping static data of web application to Dictionary class