freeze-ray 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/.gitignore +2 -0
- data/History.txt +8 -1
- data/Rakefile +13 -0
- data/VERSION.yml +1 -1
- data/freeze-ray.gemspec +45 -0
- data/lib/freeze_ray.rb +2 -1
- data/rails/init.rb +3 -0
- data/spec/freeze_ray_spec.rb +13 -4
- metadata +10 -7
data/.gitignore
ADDED
data/History.txt
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
-
=== 0.
|
1
|
+
=== 0.0.2 :: 2009-06-02
|
2
|
+
|
3
|
+
* Add rails/init.rb, which was left out of the last release.
|
4
|
+
* Make freeze-ray actually play well with the way ActiveRecord defines
|
5
|
+
accessors. Things should work well enough to be useful now.
|
6
|
+
|
7
|
+
|
8
|
+
=== 0.0.1 :: 2009-05-29
|
2
9
|
|
3
10
|
* Initial release.
|
data/Rakefile
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
begin
|
2
|
+
require 'jeweler'
|
3
|
+
Jeweler::Tasks.new do |s|
|
4
|
+
s.name = "freeze-ray"
|
5
|
+
s.summary = "Fixes ActiveRecord's dirty tracking."
|
6
|
+
s.description = "Fixes ActiveRecord's dirty tracking. Provides an attr_frozen macro which causes an attribute to be returned frozen."
|
7
|
+
s.authors = ["Peter Jaros"]
|
8
|
+
s.email = "peter.a.jaros@gmail.com"
|
9
|
+
s.rubyforge_project = "freeze-ray"
|
10
|
+
end
|
11
|
+
rescue LoadError
|
12
|
+
puts "Jeweler, or one of its dependencies, is not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
13
|
+
end
|
data/VERSION.yml
CHANGED
data/freeze-ray.gemspec
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{freeze-ray}
|
5
|
+
s.version = "0.0.2"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Peter Jaros"]
|
9
|
+
s.date = %q{2009-06-02}
|
10
|
+
s.description = %q{Fixes ActiveRecord's dirty tracking. Provides an attr_frozen macro which causes an attribute to be returned frozen.}
|
11
|
+
s.email = %q{peter.a.jaros@gmail.com}
|
12
|
+
s.extra_rdoc_files = [
|
13
|
+
"README.markdown"
|
14
|
+
]
|
15
|
+
s.files = [
|
16
|
+
".gitignore",
|
17
|
+
"History.txt",
|
18
|
+
"README.markdown",
|
19
|
+
"Rakefile",
|
20
|
+
"VERSION.yml",
|
21
|
+
"freeze-ray.gemspec",
|
22
|
+
"lib/freeze_ray.rb",
|
23
|
+
"rails/init.rb",
|
24
|
+
"spec/freeze_ray_spec.rb"
|
25
|
+
]
|
26
|
+
s.has_rdoc = true
|
27
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
28
|
+
s.require_paths = ["lib"]
|
29
|
+
s.rubyforge_project = %q{freeze-ray}
|
30
|
+
s.rubygems_version = %q{1.3.1}
|
31
|
+
s.summary = %q{Fixes ActiveRecord's dirty tracking.}
|
32
|
+
s.test_files = [
|
33
|
+
"spec/freeze_ray_spec.rb"
|
34
|
+
]
|
35
|
+
|
36
|
+
if s.respond_to? :specification_version then
|
37
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
38
|
+
s.specification_version = 2
|
39
|
+
|
40
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
41
|
+
else
|
42
|
+
end
|
43
|
+
else
|
44
|
+
end
|
45
|
+
end
|
data/lib/freeze_ray.rb
CHANGED
data/rails/init.rb
ADDED
data/spec/freeze_ray_spec.rb
CHANGED
@@ -14,10 +14,16 @@ require File.dirname(__FILE__) + "/../rails/init"
|
|
14
14
|
describe "attr_frozen" do
|
15
15
|
before(:each) do
|
16
16
|
build_model :things do
|
17
|
-
string :string_attribute
|
17
|
+
string :string_attribute
|
18
18
|
string :serialized_attribute
|
19
|
+
string :overridden_attribute
|
20
|
+
|
19
21
|
serialize :serialized_attribute
|
20
22
|
|
23
|
+
def overridden_attribute
|
24
|
+
[super]
|
25
|
+
end
|
26
|
+
|
21
27
|
# Turn off acts_as_foo's method_missing extension for schema
|
22
28
|
# definition. For some reason, it delegates #define_method to
|
23
29
|
# the table definition.
|
@@ -25,17 +31,20 @@ describe "attr_frozen" do
|
|
25
31
|
alias_method :method_missing, :method_missing_without_columns
|
26
32
|
end
|
27
33
|
|
28
|
-
|
34
|
+
define_attribute_methods
|
35
|
+
attr_frozen :string_attribute, :serialized_attribute, :overridden_attribute
|
29
36
|
end
|
30
37
|
end
|
31
38
|
|
32
39
|
describe "freezes attributes which are" do
|
33
40
|
before do
|
34
41
|
@thing = Thing.new(:string_attribute => "foobar",
|
35
|
-
:serialized_attribute => [:a, :b, :c]
|
42
|
+
:serialized_attribute => [:a, :b, :c],
|
43
|
+
:overridden_attribute => "bazbax")
|
36
44
|
end
|
37
45
|
|
38
|
-
specify("strings")
|
46
|
+
specify("strings") { @thing.string_attribute.should be_frozen }
|
39
47
|
specify("serialized") { @thing.serialized_attribute.should be_frozen }
|
48
|
+
specify("overridden") { @thing.overridden_attribute.should be_frozen }
|
40
49
|
end
|
41
50
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: freeze-ray
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Jaros
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-06-02 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -19,19 +19,22 @@ executables: []
|
|
19
19
|
|
20
20
|
extensions: []
|
21
21
|
|
22
|
-
extra_rdoc_files:
|
23
|
-
|
22
|
+
extra_rdoc_files:
|
23
|
+
- README.markdown
|
24
24
|
files:
|
25
|
+
- .gitignore
|
25
26
|
- History.txt
|
26
27
|
- README.markdown
|
28
|
+
- Rakefile
|
27
29
|
- VERSION.yml
|
30
|
+
- freeze-ray.gemspec
|
28
31
|
- lib/freeze_ray.rb
|
32
|
+
- rails/init.rb
|
29
33
|
- spec/freeze_ray_spec.rb
|
30
34
|
has_rdoc: true
|
31
35
|
homepage:
|
32
36
|
post_install_message:
|
33
37
|
rdoc_options:
|
34
|
-
- --inline-source
|
35
38
|
- --charset=UTF-8
|
36
39
|
require_paths:
|
37
40
|
- lib
|
@@ -54,5 +57,5 @@ rubygems_version: 1.3.1
|
|
54
57
|
signing_key:
|
55
58
|
specification_version: 2
|
56
59
|
summary: Fixes ActiveRecord's dirty tracking.
|
57
|
-
test_files:
|
58
|
-
|
60
|
+
test_files:
|
61
|
+
- spec/freeze_ray_spec.rb
|