datts_right 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.textile CHANGED
@@ -20,6 +20,7 @@ h2. Installation
20
20
  Create a migration:
21
21
 
22
22
  pre. create_table :datts do |t|
23
+ t.string :name, :null => false
23
24
  t.string :attr_key, :null => false
24
25
  t.string :object_type, :null => false
25
26
  t.string :attributable_type, :null => false
@@ -29,6 +30,12 @@ pre. create_table :datts do |t|
29
30
  end
30
31
  end
31
32
 
33
+ * *name* is not important at the moment, but I intend to make better use of it in the future.
34
+ * *attr_key* the name of the dynamic attribute
35
+ * *object_type* what type of value is saved. See "object_type":#object_type.
36
+ * *attributable_id* and *attributable_type* are for the polymorphic association
37
+ * *integer_value*, *string_value*, *boolean_value*, *text_value*, *float_value* are used to store the data. See "object_type":#object_type.
38
+
32
39
  Add this to your Gemfile:
33
40
 
34
41
  @gem 'datts_right'@
@@ -63,7 +70,7 @@ h3. @instance.dynamic_columns
63
70
 
64
71
  However, dynamic_attributes doesn't give us much information. What if we want to find out the list of dynamic attributes already available?
65
72
 
66
- @user.dynamic_columns # {:age => {:object_type => "integer", :value => 820}}
73
+ pre. @user.dynamic_columns # {:age => {:object_type => "integer", :value => 820}}
67
74
 
68
75
  h3. dynamic_attribute?(:some_attribute)
69
76
 
@@ -75,10 +82,8 @@ The dynamic attributes are only actually saved when save is called on the record
75
82
 
76
83
  pre. @user.add_dynamic_attribute(:gunslinger, "boolean") # a column is already written on the "datts" table, with a null value.
77
84
  @user.add_dynamic_attribute(:middle_name, "string") # a column is already written on the "datts" table, with a null value.
78
-
79
85
  @user.gunslinger = true # saves into memory
80
86
  @user.middle_name = "Unknown" # saves into memory
81
-
82
87
  @user.save # the respective dynamic attribute columns are written in the datts table
83
88
 
84
89
  h2. Structure of the datts table
@@ -86,6 +91,7 @@ h2. Structure of the datts table
86
91
  Although you probably shouldn't work with it directly, the datts table looks like this:
87
92
 
88
93
  pre. ActiveRecord::Base.connection.create_table(:datts) do |t|
94
+ t.string :name, :null => false
89
95
  t.string :attr_key, :null => false
90
96
  t.string :object_type, :null => false
91
97
  t.string :attributable_type, :null => false
@@ -110,7 +116,7 @@ pre. {
110
116
 
111
117
  *Why have different value columns?* Because I couldn't find any other way to perform SQL operations/calculations on a generic "value" column. Besides, what kind of column would that be? A text blob?
112
118
 
113
- h2. Dynamic attribute "type"
119
+ h2(#object_type). Dynamic attribute "type"
114
120
 
115
121
  Here are the different types of dynamic attributes you can save:
116
122
 
data/Rakefile CHANGED
@@ -18,7 +18,7 @@ Jeweler::Tasks.new do |gem|
18
18
  gem.summary = %Q{Allows saving of dynamic attributes in your ActiveRecord model}
19
19
  gem.description = %Q{Creates a separate table that saves all your dynamic attributes.}
20
20
  gem.email = "ramon@tayag.net"
21
- gem.authors = ["ramontayag"]
21
+ gem.authors = ["Ramon Tayag"]
22
22
  # Include your dependencies below. Runtime dependencies are required when using your gem,
23
23
  # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
24
24
  # gem.add_runtime_dependency 'jabber4r', '> 0.1'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
data/datts_right.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{datts_right}
8
- s.version = "0.0.1"
8
+ s.version = "0.0.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["ramontayag"]
12
- s.date = %q{2011-04-08}
11
+ s.authors = ["Ramon Tayag"]
12
+ s.date = %q{2011-04-11}
13
13
  s.description = %q{Creates a separate table that saves all your dynamic attributes.}
14
14
  s.email = %q{ramon@tayag.net}
15
15
  s.extra_rdoc_files = [
@@ -114,6 +114,12 @@ Gem::Specification.new do |s|
114
114
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
115
115
  s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
116
116
  s.add_development_dependency(%q<rcov>, [">= 0"])
117
+ s.add_development_dependency(%q<autotest>, [">= 0"])
118
+ s.add_development_dependency(%q<sqlite3>, [">= 0"])
119
+ s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
120
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
121
+ s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
122
+ s.add_development_dependency(%q<rcov>, [">= 0"])
117
123
  else
118
124
  s.add_dependency(%q<datts_right>, [">= 0"])
119
125
  s.add_dependency(%q<rails>, [">= 3.0.0"])
@@ -172,6 +178,12 @@ Gem::Specification.new do |s|
172
178
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
173
179
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
174
180
  s.add_dependency(%q<rcov>, [">= 0"])
181
+ s.add_dependency(%q<autotest>, [">= 0"])
182
+ s.add_dependency(%q<sqlite3>, [">= 0"])
183
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
184
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
185
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
186
+ s.add_dependency(%q<rcov>, [">= 0"])
175
187
  end
176
188
  else
177
189
  s.add_dependency(%q<datts_right>, [">= 0"])
@@ -231,6 +243,12 @@ Gem::Specification.new do |s|
231
243
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
232
244
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
233
245
  s.add_dependency(%q<rcov>, [">= 0"])
246
+ s.add_dependency(%q<autotest>, [">= 0"])
247
+ s.add_dependency(%q<sqlite3>, [">= 0"])
248
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
249
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
250
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
251
+ s.add_dependency(%q<rcov>, [">= 0"])
234
252
  end
235
253
  end
236
254
 
@@ -1,3 +1,3 @@
1
- class MigrationGenerator < Rails::Generators::NamedBase
1
+ class MigrationGenerator < Rails::Generators::Base
2
2
  source_root File.expand_path('../templates', __FILE__)
3
3
  end
metadata CHANGED
@@ -1,21 +1,21 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datts_right
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
9
+ - 2
10
+ version: 0.0.2
11
11
  platform: ruby
12
12
  authors:
13
- - ramontayag
13
+ - Ramon Tayag
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-04-08 00:00:00 +08:00
18
+ date: 2011-04-11 00:00:00 +08:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -874,6 +874,96 @@ dependencies:
874
874
  name: rcov
875
875
  version_requirements: *id057
876
876
  prerelease: false
877
+ - !ruby/object:Gem::Dependency
878
+ type: :development
879
+ requirement: &id058 !ruby/object:Gem::Requirement
880
+ none: false
881
+ requirements:
882
+ - - ">="
883
+ - !ruby/object:Gem::Version
884
+ hash: 3
885
+ segments:
886
+ - 0
887
+ version: "0"
888
+ name: autotest
889
+ version_requirements: *id058
890
+ prerelease: false
891
+ - !ruby/object:Gem::Dependency
892
+ type: :development
893
+ requirement: &id059 !ruby/object:Gem::Requirement
894
+ none: false
895
+ requirements:
896
+ - - ">="
897
+ - !ruby/object:Gem::Version
898
+ hash: 3
899
+ segments:
900
+ - 0
901
+ version: "0"
902
+ name: sqlite3
903
+ version_requirements: *id059
904
+ prerelease: false
905
+ - !ruby/object:Gem::Dependency
906
+ type: :development
907
+ requirement: &id060 !ruby/object:Gem::Requirement
908
+ none: false
909
+ requirements:
910
+ - - ~>
911
+ - !ruby/object:Gem::Version
912
+ hash: 3
913
+ segments:
914
+ - 2
915
+ - 3
916
+ - 0
917
+ version: 2.3.0
918
+ name: rspec
919
+ version_requirements: *id060
920
+ prerelease: false
921
+ - !ruby/object:Gem::Dependency
922
+ type: :development
923
+ requirement: &id061 !ruby/object:Gem::Requirement
924
+ none: false
925
+ requirements:
926
+ - - ~>
927
+ - !ruby/object:Gem::Version
928
+ hash: 23
929
+ segments:
930
+ - 1
931
+ - 0
932
+ - 0
933
+ version: 1.0.0
934
+ name: bundler
935
+ version_requirements: *id061
936
+ prerelease: false
937
+ - !ruby/object:Gem::Dependency
938
+ type: :development
939
+ requirement: &id062 !ruby/object:Gem::Requirement
940
+ none: false
941
+ requirements:
942
+ - - ~>
943
+ - !ruby/object:Gem::Version
944
+ hash: 7
945
+ segments:
946
+ - 1
947
+ - 5
948
+ - 2
949
+ version: 1.5.2
950
+ name: jeweler
951
+ version_requirements: *id062
952
+ prerelease: false
953
+ - !ruby/object:Gem::Dependency
954
+ type: :development
955
+ requirement: &id063 !ruby/object:Gem::Requirement
956
+ none: false
957
+ requirements:
958
+ - - ">="
959
+ - !ruby/object:Gem::Version
960
+ hash: 3
961
+ segments:
962
+ - 0
963
+ version: "0"
964
+ name: rcov
965
+ version_requirements: *id063
966
+ prerelease: false
877
967
  description: Creates a separate table that saves all your dynamic attributes.
878
968
  email: ramon@tayag.net
879
969
  executables: []