activeobject 0.0.3

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.
Files changed (80) hide show
  1. data/CHANGE +10 -0
  2. data/Interface_desc +21 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README +72 -0
  5. data/Rakefile.rb +9 -0
  6. data/active-object.gemspec +50 -0
  7. data/examples/account.rb +69 -0
  8. data/examples/data.tch +0 -0
  9. data/examples/light_cloud.yml +18 -0
  10. data/examples/test.rb +3 -0
  11. data/examples/user.rb +112 -0
  12. data/init.rb +4 -0
  13. data/lib/active-object.rb +23 -0
  14. data/lib/active_object/adapters/light_cloud.rb +40 -0
  15. data/lib/active_object/adapters/tokyo_cabinet.rb +48 -0
  16. data/lib/active_object/adapters/tokyo_tyrant.rb +14 -0
  17. data/lib/active_object/associations.rb +200 -0
  18. data/lib/active_object/base.rb +415 -0
  19. data/lib/active_object/callbacks.rb +180 -0
  20. data/lib/active_object/observer.rb +180 -0
  21. data/lib/active_object/serialization.rb +99 -0
  22. data/lib/active_object/serializers/json_serializer.rb +75 -0
  23. data/lib/active_object/serializers/xml_serializer.rb +325 -0
  24. data/lib/active_object/validations.rb +687 -0
  25. data/lib/active_support/callbacks.rb +303 -0
  26. data/lib/active_support/core_ext/array/access.rb +53 -0
  27. data/lib/active_support/core_ext/array/conversions.rb +183 -0
  28. data/lib/active_support/core_ext/array/extract_options.rb +20 -0
  29. data/lib/active_support/core_ext/array/grouping.rb +106 -0
  30. data/lib/active_support/core_ext/array/random_access.rb +12 -0
  31. data/lib/active_support/core_ext/array.rb +13 -0
  32. data/lib/active_support/core_ext/blank.rb +58 -0
  33. data/lib/active_support/core_ext/class/attribute_accessors.rb +54 -0
  34. data/lib/active_support/core_ext/class/inheritable_attributes.rb +140 -0
  35. data/lib/active_support/core_ext/class/removal.rb +50 -0
  36. data/lib/active_support/core_ext/class.rb +3 -0
  37. data/lib/active_support/core_ext/duplicable.rb +43 -0
  38. data/lib/active_support/core_ext/enumerable.rb +72 -0
  39. data/lib/active_support/core_ext/hash/conversions.rb +259 -0
  40. data/lib/active_support/core_ext/hash/keys.rb +52 -0
  41. data/lib/active_support/core_ext/hash.rb +8 -0
  42. data/lib/active_support/core_ext/module/aliasing.rb +74 -0
  43. data/lib/active_support/core_ext/module/attr_accessor_with_default.rb +31 -0
  44. data/lib/active_support/core_ext/module/attribute_accessors.rb +58 -0
  45. data/lib/active_support/core_ext/module.rb +16 -0
  46. data/lib/active_support/core_ext/object/conversions.rb +14 -0
  47. data/lib/active_support/core_ext/object/extending.rb +80 -0
  48. data/lib/active_support/core_ext/object/instance_variables.rb +74 -0
  49. data/lib/active_support/core_ext/object/metaclass.rb +13 -0
  50. data/lib/active_support/core_ext/object/misc.rb +43 -0
  51. data/lib/active_support/core_ext/object.rb +5 -0
  52. data/lib/active_support/core_ext/string/inflections.rb +167 -0
  53. data/lib/active_support/core_ext/string.rb +7 -0
  54. data/lib/active_support/core_ext.rb +4 -0
  55. data/lib/active_support/inflections.rb +55 -0
  56. data/lib/active_support/inflector.rb +348 -0
  57. data/lib/active_support/vendor/builder-2.1.2/blankslate.rb +113 -0
  58. data/lib/active_support/vendor/builder-2.1.2/builder/blankslate.rb +20 -0
  59. data/lib/active_support/vendor/builder-2.1.2/builder/css.rb +250 -0
  60. data/lib/active_support/vendor/builder-2.1.2/builder/xchar.rb +115 -0
  61. data/lib/active_support/vendor/builder-2.1.2/builder/xmlbase.rb +139 -0
  62. data/lib/active_support/vendor/builder-2.1.2/builder/xmlevents.rb +63 -0
  63. data/lib/active_support/vendor/builder-2.1.2/builder/xmlmarkup.rb +328 -0
  64. data/lib/active_support/vendor/builder-2.1.2/builder.rb +13 -0
  65. data/lib/active_support/vendor/xml-simple-1.0.11/xmlsimple.rb +1021 -0
  66. data/lib/active_support/vendor.rb +14 -0
  67. data/lib/active_support.rb +6 -0
  68. data/spec/case/association_test.rb +97 -0
  69. data/spec/case/base_test.rb +74 -0
  70. data/spec/case/callbacks_observers_test.rb +38 -0
  71. data/spec/case/callbacks_test.rb +424 -0
  72. data/spec/case/serialization_test.rb +87 -0
  73. data/spec/case/validations_test.rb +1482 -0
  74. data/spec/data.tch +0 -0
  75. data/spec/helper.rb +15 -0
  76. data/spec/light_cloud.yml +18 -0
  77. data/spec/model/account.rb +4 -0
  78. data/spec/model/topic.rb +26 -0
  79. data/spec/model/user.rb +8 -0
  80. metadata +173 -0
@@ -0,0 +1,87 @@
1
+ require File.join(File.dirname(__FILE__),'..','helper')
2
+ require File.join(File.dirname(__FILE__),'..','model','user')
3
+
4
+ require 'rubygems'
5
+
6
+ require 'builder'
7
+
8
+ user = Array(User.new(@attributes))
9
+ puts user.to_json
10
+
11
+ class SerializationTest < Test::Unit::TestCase
12
+ def setup
13
+ @attributes = {:name=>'Aaron',:email=>'aaron@nonobo.com',:password=>'123456'}
14
+ end
15
+
16
+ def test_to_json
17
+ assert_not_equal User.new(@attributes).to_json,nil
18
+ end
19
+
20
+ # def test_array_to_json
21
+ # @users = []
22
+ # @users << User.new(@attributes)
23
+ # @users << User.new(@attributes.merge(:email=>"kame@nonobo.com"))
24
+ # @users << User.new(@attributes.merge(:email=>"jim@nonobo.com"))
25
+ #
26
+ # assert_nothing_raised do
27
+ # @users.to_json()
28
+ # end
29
+ # end
30
+
31
+ def test_to_json_include_has_many
32
+ @u = User.create(@attributes)
33
+
34
+ f = User.create(@attributes.merge(:name=>'kame',:email=>'kame@nonobo.com',:password=>'123456'))
35
+ @u.friends.append(f)
36
+ @u.save
37
+
38
+ assert_equal @u.to_json(:include=>:friends).grep(/kame/).empty?,false
39
+ end
40
+
41
+ # def test_array_to_json_include_has_many
42
+ # @users = []
43
+ # @users << User.new(@attributes)
44
+ # @users << User.new(@attributes.merge(:email=>"kame@nonobo.com"))
45
+ # @users << User.new(@attributes.merge(:email=>"jim@nonobo.com"))
46
+ #
47
+ # assert_nothing_raised do
48
+ # @users.to_json(:include=>:friends)
49
+ # end
50
+ # end
51
+
52
+ def test_to_json_include_has_one
53
+ @u = User.create(@attributes)
54
+
55
+ f = User.create(@attributes.merge(:name=>'rita',:email=>'rita@nonobo.com',:password=>'123456'))
56
+ @u.wife = f
57
+ @u.save
58
+
59
+ assert_equal @u.to_json(:include=>:wife).grep(/rita/).empty?,false
60
+ end
61
+
62
+
63
+ def test_to_xml
64
+ assert_not_equal User.new(@attributes).to_xml,nil
65
+ end
66
+
67
+ def test_to_xml_include_has_many
68
+ @u = User.create(@attributes)
69
+
70
+ f = User.create(@attributes.merge(:name=>'kame',:email=>'kame@nonobo.com',:password=>'123456'))
71
+ @u.friends.append(f)
72
+ @u.save
73
+
74
+ assert_equal @u.to_xml(:include=>:friends).grep(/kame/).empty?,false
75
+ end
76
+
77
+ def test_to_xml_include_has_one
78
+ @u = User.create(@attributes)
79
+
80
+ f = User.create(@attributes.merge(:name=>'rita',:email=>'rita@nonobo.com',:password=>'123456'))
81
+ @u.wife = f
82
+ @u.save
83
+
84
+ assert_equal @u.to_xml(:include=>:wife).grep(/rita/).empty?,false
85
+ end
86
+
87
+ end