datts_right 0.0.1 → 0.0.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/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: []