datts_right 0.0.16 → 0.0.17
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/Gemfile.lock +1 -1
- data/README.textile +4 -0
- data/VERSION +1 -1
- data/datts_right.gemspec +39 -1
- data/lib/datts_right/base.rb +10 -0
- data/spec/datts_right/create_definitions_spec.rb +13 -0
- metadata +185 -3
data/Gemfile.lock
CHANGED
data/README.textile
CHANGED
@@ -149,6 +149,10 @@ You can access all that other information this way:
|
|
149
149
|
pre. @page.dynamic_attribute_details(:price).definer[:name] # "Price"
|
150
150
|
@page.dynamic_attribute_details(:price).definer[:description] # "How much this will cost."
|
151
151
|
|
152
|
+
h3. create_defitions!
|
153
|
+
|
154
|
+
You can call @create_definitions!@ on a model if you later on add the ability for that model to be a definer. For example, if you first start your Category without @has_dynamic_attributes :definition => true@, then later on you install datts_right, and you want Category to have a definition, you first add @has_dynamic_attributes :definition => true@ to Category, then you call @Category.create_definitions!@
|
155
|
+
|
152
156
|
h2. Stuff that make things faster
|
153
157
|
|
154
158
|
The dynamic attributes are only actually saved when save is called on the record that has them.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.17
|
data/datts_right.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{datts_right}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.17"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Ramon Tayag"]
|
@@ -40,6 +40,7 @@ Gem::Specification.new do |s|
|
|
40
40
|
"spec/datt_spec.rb",
|
41
41
|
"spec/datts_right/add_dynamic_attributes_spec.rb",
|
42
42
|
"spec/datts_right/attributes_spec.rb",
|
43
|
+
"spec/datts_right/create_definitions_spec.rb",
|
43
44
|
"spec/datts_right/dynamic_attribute_definition_spec.rb",
|
44
45
|
"spec/datts_right/inheritance_spec.rb",
|
45
46
|
"spec/datts_right/remove_dynamic_attribute_spec.rb",
|
@@ -55,6 +56,7 @@ Gem::Specification.new do |s|
|
|
55
56
|
"spec/datt_spec.rb",
|
56
57
|
"spec/datts_right/add_dynamic_attributes_spec.rb",
|
57
58
|
"spec/datts_right/attributes_spec.rb",
|
59
|
+
"spec/datts_right/create_definitions_spec.rb",
|
58
60
|
"spec/datts_right/dynamic_attribute_definition_spec.rb",
|
59
61
|
"spec/datts_right/inheritance_spec.rb",
|
60
62
|
"spec/datts_right/remove_dynamic_attribute_spec.rb",
|
@@ -243,6 +245,18 @@ Gem::Specification.new do |s|
|
|
243
245
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
244
246
|
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
245
247
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
248
|
+
s.add_development_dependency(%q<autotest>, [">= 0"])
|
249
|
+
s.add_development_dependency(%q<sqlite3>, [">= 0"])
|
250
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
|
251
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
252
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
253
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
254
|
+
s.add_development_dependency(%q<autotest>, [">= 0"])
|
255
|
+
s.add_development_dependency(%q<sqlite3>, [">= 0"])
|
256
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
|
257
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
258
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
259
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
246
260
|
else
|
247
261
|
s.add_dependency(%q<datts_right>, [">= 0"])
|
248
262
|
s.add_dependency(%q<rails>, [">= 3.0.0"])
|
@@ -421,6 +435,18 @@ Gem::Specification.new do |s|
|
|
421
435
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
422
436
|
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
423
437
|
s.add_dependency(%q<rcov>, [">= 0"])
|
438
|
+
s.add_dependency(%q<autotest>, [">= 0"])
|
439
|
+
s.add_dependency(%q<sqlite3>, [">= 0"])
|
440
|
+
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
441
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
442
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
443
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
444
|
+
s.add_dependency(%q<autotest>, [">= 0"])
|
445
|
+
s.add_dependency(%q<sqlite3>, [">= 0"])
|
446
|
+
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
447
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
448
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
449
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
424
450
|
end
|
425
451
|
else
|
426
452
|
s.add_dependency(%q<datts_right>, [">= 0"])
|
@@ -600,6 +626,18 @@ Gem::Specification.new do |s|
|
|
600
626
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
601
627
|
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
602
628
|
s.add_dependency(%q<rcov>, [">= 0"])
|
629
|
+
s.add_dependency(%q<autotest>, [">= 0"])
|
630
|
+
s.add_dependency(%q<sqlite3>, [">= 0"])
|
631
|
+
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
632
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
633
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
634
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
635
|
+
s.add_dependency(%q<autotest>, [">= 0"])
|
636
|
+
s.add_dependency(%q<sqlite3>, [">= 0"])
|
637
|
+
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
638
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
639
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
640
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
603
641
|
end
|
604
642
|
end
|
605
643
|
|
data/lib/datts_right/base.rb
CHANGED
@@ -65,6 +65,16 @@ module DattsRight
|
|
65
65
|
results
|
66
66
|
}
|
67
67
|
|
68
|
+
# Used when you have already existing records that have don't have definitions, and you want them to
|
69
|
+
def self.create_definitions!
|
70
|
+
self.all.each do |record|
|
71
|
+
puts "Called create_definitions! on #{record.inspect}. Its dynamic_attribute_definition (if it has one: #{record.dynamic_attribute_definition.inspect})"
|
72
|
+
record.dynamic_attribute_definition.create if dynamic_attributes_options[:definition] && record.dynamic_attribute_definition.nil?
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
private
|
77
|
+
|
68
78
|
def self.method_missing(method_id, *arguments)
|
69
79
|
# TODO better way to hook this into the rails code, and not define my own
|
70
80
|
begin # Prioritize ActiveRecord's method_missing
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
describe DattsRight, ".create_definitions!" do
|
4
|
+
it "should create definitions for all existing records, if the definition does not exist" do
|
5
|
+
2.times do
|
6
|
+
Category.create.destroy.dynamic_attribute_definition
|
7
|
+
end
|
8
|
+
Category.create_definitions!
|
9
|
+
Category.all.each do |c|
|
10
|
+
c.dynamic_attribute_definition.should_not be_nil
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: datts_right
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 61
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 17
|
10
|
+
version: 0.0.17
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ramon Tayag
|
@@ -2674,6 +2674,186 @@ dependencies:
|
|
2674
2674
|
name: rcov
|
2675
2675
|
version_requirements: *id177
|
2676
2676
|
prerelease: false
|
2677
|
+
- !ruby/object:Gem::Dependency
|
2678
|
+
type: :development
|
2679
|
+
requirement: &id178 !ruby/object:Gem::Requirement
|
2680
|
+
none: false
|
2681
|
+
requirements:
|
2682
|
+
- - ">="
|
2683
|
+
- !ruby/object:Gem::Version
|
2684
|
+
hash: 3
|
2685
|
+
segments:
|
2686
|
+
- 0
|
2687
|
+
version: "0"
|
2688
|
+
name: autotest
|
2689
|
+
version_requirements: *id178
|
2690
|
+
prerelease: false
|
2691
|
+
- !ruby/object:Gem::Dependency
|
2692
|
+
type: :development
|
2693
|
+
requirement: &id179 !ruby/object:Gem::Requirement
|
2694
|
+
none: false
|
2695
|
+
requirements:
|
2696
|
+
- - ">="
|
2697
|
+
- !ruby/object:Gem::Version
|
2698
|
+
hash: 3
|
2699
|
+
segments:
|
2700
|
+
- 0
|
2701
|
+
version: "0"
|
2702
|
+
name: sqlite3
|
2703
|
+
version_requirements: *id179
|
2704
|
+
prerelease: false
|
2705
|
+
- !ruby/object:Gem::Dependency
|
2706
|
+
type: :development
|
2707
|
+
requirement: &id180 !ruby/object:Gem::Requirement
|
2708
|
+
none: false
|
2709
|
+
requirements:
|
2710
|
+
- - ~>
|
2711
|
+
- !ruby/object:Gem::Version
|
2712
|
+
hash: 3
|
2713
|
+
segments:
|
2714
|
+
- 2
|
2715
|
+
- 3
|
2716
|
+
- 0
|
2717
|
+
version: 2.3.0
|
2718
|
+
name: rspec
|
2719
|
+
version_requirements: *id180
|
2720
|
+
prerelease: false
|
2721
|
+
- !ruby/object:Gem::Dependency
|
2722
|
+
type: :development
|
2723
|
+
requirement: &id181 !ruby/object:Gem::Requirement
|
2724
|
+
none: false
|
2725
|
+
requirements:
|
2726
|
+
- - ~>
|
2727
|
+
- !ruby/object:Gem::Version
|
2728
|
+
hash: 23
|
2729
|
+
segments:
|
2730
|
+
- 1
|
2731
|
+
- 0
|
2732
|
+
- 0
|
2733
|
+
version: 1.0.0
|
2734
|
+
name: bundler
|
2735
|
+
version_requirements: *id181
|
2736
|
+
prerelease: false
|
2737
|
+
- !ruby/object:Gem::Dependency
|
2738
|
+
type: :development
|
2739
|
+
requirement: &id182 !ruby/object:Gem::Requirement
|
2740
|
+
none: false
|
2741
|
+
requirements:
|
2742
|
+
- - ~>
|
2743
|
+
- !ruby/object:Gem::Version
|
2744
|
+
hash: 7
|
2745
|
+
segments:
|
2746
|
+
- 1
|
2747
|
+
- 5
|
2748
|
+
- 2
|
2749
|
+
version: 1.5.2
|
2750
|
+
name: jeweler
|
2751
|
+
version_requirements: *id182
|
2752
|
+
prerelease: false
|
2753
|
+
- !ruby/object:Gem::Dependency
|
2754
|
+
type: :development
|
2755
|
+
requirement: &id183 !ruby/object:Gem::Requirement
|
2756
|
+
none: false
|
2757
|
+
requirements:
|
2758
|
+
- - ">="
|
2759
|
+
- !ruby/object:Gem::Version
|
2760
|
+
hash: 3
|
2761
|
+
segments:
|
2762
|
+
- 0
|
2763
|
+
version: "0"
|
2764
|
+
name: rcov
|
2765
|
+
version_requirements: *id183
|
2766
|
+
prerelease: false
|
2767
|
+
- !ruby/object:Gem::Dependency
|
2768
|
+
type: :development
|
2769
|
+
requirement: &id184 !ruby/object:Gem::Requirement
|
2770
|
+
none: false
|
2771
|
+
requirements:
|
2772
|
+
- - ">="
|
2773
|
+
- !ruby/object:Gem::Version
|
2774
|
+
hash: 3
|
2775
|
+
segments:
|
2776
|
+
- 0
|
2777
|
+
version: "0"
|
2778
|
+
name: autotest
|
2779
|
+
version_requirements: *id184
|
2780
|
+
prerelease: false
|
2781
|
+
- !ruby/object:Gem::Dependency
|
2782
|
+
type: :development
|
2783
|
+
requirement: &id185 !ruby/object:Gem::Requirement
|
2784
|
+
none: false
|
2785
|
+
requirements:
|
2786
|
+
- - ">="
|
2787
|
+
- !ruby/object:Gem::Version
|
2788
|
+
hash: 3
|
2789
|
+
segments:
|
2790
|
+
- 0
|
2791
|
+
version: "0"
|
2792
|
+
name: sqlite3
|
2793
|
+
version_requirements: *id185
|
2794
|
+
prerelease: false
|
2795
|
+
- !ruby/object:Gem::Dependency
|
2796
|
+
type: :development
|
2797
|
+
requirement: &id186 !ruby/object:Gem::Requirement
|
2798
|
+
none: false
|
2799
|
+
requirements:
|
2800
|
+
- - ~>
|
2801
|
+
- !ruby/object:Gem::Version
|
2802
|
+
hash: 3
|
2803
|
+
segments:
|
2804
|
+
- 2
|
2805
|
+
- 3
|
2806
|
+
- 0
|
2807
|
+
version: 2.3.0
|
2808
|
+
name: rspec
|
2809
|
+
version_requirements: *id186
|
2810
|
+
prerelease: false
|
2811
|
+
- !ruby/object:Gem::Dependency
|
2812
|
+
type: :development
|
2813
|
+
requirement: &id187 !ruby/object:Gem::Requirement
|
2814
|
+
none: false
|
2815
|
+
requirements:
|
2816
|
+
- - ~>
|
2817
|
+
- !ruby/object:Gem::Version
|
2818
|
+
hash: 23
|
2819
|
+
segments:
|
2820
|
+
- 1
|
2821
|
+
- 0
|
2822
|
+
- 0
|
2823
|
+
version: 1.0.0
|
2824
|
+
name: bundler
|
2825
|
+
version_requirements: *id187
|
2826
|
+
prerelease: false
|
2827
|
+
- !ruby/object:Gem::Dependency
|
2828
|
+
type: :development
|
2829
|
+
requirement: &id188 !ruby/object:Gem::Requirement
|
2830
|
+
none: false
|
2831
|
+
requirements:
|
2832
|
+
- - ~>
|
2833
|
+
- !ruby/object:Gem::Version
|
2834
|
+
hash: 7
|
2835
|
+
segments:
|
2836
|
+
- 1
|
2837
|
+
- 5
|
2838
|
+
- 2
|
2839
|
+
version: 1.5.2
|
2840
|
+
name: jeweler
|
2841
|
+
version_requirements: *id188
|
2842
|
+
prerelease: false
|
2843
|
+
- !ruby/object:Gem::Dependency
|
2844
|
+
type: :development
|
2845
|
+
requirement: &id189 !ruby/object:Gem::Requirement
|
2846
|
+
none: false
|
2847
|
+
requirements:
|
2848
|
+
- - ">="
|
2849
|
+
- !ruby/object:Gem::Version
|
2850
|
+
hash: 3
|
2851
|
+
segments:
|
2852
|
+
- 0
|
2853
|
+
version: "0"
|
2854
|
+
name: rcov
|
2855
|
+
version_requirements: *id189
|
2856
|
+
prerelease: false
|
2677
2857
|
description: Creates a separate table that saves all your dynamic attributes.
|
2678
2858
|
email: ramon@tayag.net
|
2679
2859
|
executables: []
|
@@ -2707,6 +2887,7 @@ files:
|
|
2707
2887
|
- spec/datt_spec.rb
|
2708
2888
|
- spec/datts_right/add_dynamic_attributes_spec.rb
|
2709
2889
|
- spec/datts_right/attributes_spec.rb
|
2890
|
+
- spec/datts_right/create_definitions_spec.rb
|
2710
2891
|
- spec/datts_right/dynamic_attribute_definition_spec.rb
|
2711
2892
|
- spec/datts_right/inheritance_spec.rb
|
2712
2893
|
- spec/datts_right/remove_dynamic_attribute_spec.rb
|
@@ -2750,6 +2931,7 @@ test_files:
|
|
2750
2931
|
- spec/datt_spec.rb
|
2751
2932
|
- spec/datts_right/add_dynamic_attributes_spec.rb
|
2752
2933
|
- spec/datts_right/attributes_spec.rb
|
2934
|
+
- spec/datts_right/create_definitions_spec.rb
|
2753
2935
|
- spec/datts_right/dynamic_attribute_definition_spec.rb
|
2754
2936
|
- spec/datts_right/inheritance_spec.rb
|
2755
2937
|
- spec/datts_right/remove_dynamic_attribute_spec.rb
|