preferences 0.3.1 → 0.4.0

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/test/test_helper.rb CHANGED
@@ -11,3 +11,16 @@ require File.expand_path("#{File.dirname(__FILE__)}/factory")
11
11
  Test::Unit::TestCase.class_eval do
12
12
  include Factory
13
13
  end
14
+
15
+ # Add query counter
16
+ ActiveRecord::Base.connection.class.class_eval do
17
+ IGNORED_SQL = [/^PRAGMA/, /^SELECT currval/, /^SELECT CAST/, /^SELECT @@IDENTITY/, /^SELECT @@ROWCOUNT/, /^SAVEPOINT/, /^ROLLBACK TO SAVEPOINT/, /^RELEASE SAVEPOINT/, /SHOW FIELDS/]
18
+
19
+ def execute_with_query_record(sql, name = nil, &block)
20
+ $queries_executed ||= []
21
+ $queries_executed << sql unless IGNORED_SQL.any? { |r| sql =~ r }
22
+ execute_without_query_record(sql, name, &block)
23
+ end
24
+
25
+ alias_method_chain :execute, :query_record
26
+ end
@@ -1,4 +1,4 @@
1
- require "#{File.dirname(__FILE__)}/../test_helper"
1
+ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
2
 
3
3
  class PreferenceDefinitionByDefaultTest < ActiveSupport::TestCase
4
4
  def setup
@@ -13,6 +13,10 @@ class PreferenceDefinitionByDefaultTest < ActiveSupport::TestCase
13
13
  assert_nil @definition.default_value
14
14
  end
15
15
 
16
+ def test_should_have_a_type
17
+ assert_equal :boolean, @definition.type
18
+ end
19
+
16
20
  def test_should_type_cast_values_as_booleans
17
21
  assert_equal nil, @definition.type_cast(nil)
18
22
  assert_equal true, @definition.type_cast(true)
@@ -38,11 +42,29 @@ class PreferenceDefinitionWithDefaultValueTest < ActiveSupport::TestCase
38
42
  end
39
43
  end
40
44
 
45
+ class PreferenceDefinitionWithStringifiedTypeTest < ActiveSupport::TestCase
46
+ def setup
47
+ @definition = Preferences::PreferenceDefinition.new(:notifications, 'any')
48
+ end
49
+
50
+ def test_should_symbolize_type
51
+ assert_equal :any, @definition.type
52
+ end
53
+ end
54
+
41
55
  class PreferenceDefinitionWithAnyTypeTest < ActiveSupport::TestCase
42
56
  def setup
43
57
  @definition = Preferences::PreferenceDefinition.new(:notifications, :any)
44
58
  end
45
59
 
60
+ def test_use_custom_type
61
+ assert_equal :any, @definition.type
62
+ end
63
+
64
+ def test_should_not_be_number
65
+ assert !@definition.number?
66
+ end
67
+
46
68
  def test_should_not_type_cast
47
69
  assert_equal nil, @definition.type_cast(nil)
48
70
  assert_equal 0, @definition.type_cast(0)
@@ -79,6 +101,10 @@ class PreferenceDefinitionWithBooleanTypeTest < ActiveSupport::TestCase
79
101
  @definition = Preferences::PreferenceDefinition.new(:notifications)
80
102
  end
81
103
 
104
+ def test_should_not_be_number
105
+ assert !@definition.number?
106
+ end
107
+
82
108
  def test_should_not_type_cast_if_value_is_nil
83
109
  assert_equal nil, @definition.type_cast(nil)
84
110
  end
@@ -125,6 +151,10 @@ class PreferenceDefinitionWithNumericTypeTest < ActiveSupport::TestCase
125
151
  @definition = Preferences::PreferenceDefinition.new(:notifications, :integer)
126
152
  end
127
153
 
154
+ def test_should_be_number
155
+ assert @definition.number?
156
+ end
157
+
128
158
  def test_should_type_cast_true_to_integer
129
159
  assert_equal 1, @definition.type_cast(true)
130
160
  end
@@ -155,6 +185,10 @@ class PreferenceDefinitionWithStringTypeTest < ActiveSupport::TestCase
155
185
  @definition = Preferences::PreferenceDefinition.new(:notifications, :string)
156
186
  end
157
187
 
188
+ def test_should_not_be_number
189
+ assert !@definition.number?
190
+ end
191
+
158
192
  def test_should_type_cast_integers_to_strings
159
193
  assert_equal '1', @definition.type_cast('1')
160
194
  end
@@ -1,4 +1,4 @@
1
- require "#{File.dirname(__FILE__)}/../test_helper"
1
+ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
2
 
3
3
  class PreferenceByDefaultTest < ActiveSupport::TestCase
4
4
  def setup
@@ -114,6 +114,10 @@ class PreferenceAsAClassTest < ActiveSupport::TestCase
114
114
  assert_nil group_id
115
115
  assert_equal 'car', group_type
116
116
 
117
+ group_id, group_type = Preference.split_group(:car)
118
+ assert_nil group_id
119
+ assert_equal 'car', group_type
120
+
117
121
  group_id, group_type = Preference.split_group(10)
118
122
  assert_nil group_id
119
123
  assert_equal 10, group_type
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: preferences
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Pfeifer
@@ -9,11 +9,11 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-04-25 00:00:00 -04:00
12
+ date: 2010-03-07 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
16
- description:
16
+ description: Adds support for easily creating custom preferences for ActiveRecord models
17
17
  email: aaron@pluginaweek.org
18
18
  executables: []
19
19
 
@@ -22,31 +22,25 @@ extensions: []
22
22
  extra_rdoc_files: []
23
23
 
24
24
  files:
25
- - app/models
26
25
  - app/models/preference.rb
27
- - lib/preferences
26
+ - generators/preferences/USAGE
27
+ - generators/preferences/preferences_generator.rb
28
+ - generators/preferences/templates/001_create_preferences.rb
28
29
  - lib/preferences/preference_definition.rb
29
30
  - lib/preferences.rb
30
- - test/factory.rb
31
- - test/test_helper.rb
32
- - test/functional
33
- - test/functional/preferences_test.rb
34
- - test/unit
35
31
  - test/unit/preference_test.rb
36
32
  - test/unit/preference_definition_test.rb
37
- - test/app_root
38
- - test/app_root/db
39
- - test/app_root/db/migrate
33
+ - test/app_root/db/migrate/003_create_employees.rb
40
34
  - test/app_root/db/migrate/004_migrate_preferences_to_version_1.rb
41
35
  - test/app_root/db/migrate/002_create_cars.rb
42
36
  - test/app_root/db/migrate/001_create_users.rb
43
- - test/app_root/db/migrate/003_create_employees.rb
44
- - test/app_root/app
45
- - test/app_root/app/models
46
37
  - test/app_root/app/models/car.rb
47
- - test/app_root/app/models/manager.rb
48
- - test/app_root/app/models/user.rb
49
38
  - test/app_root/app/models/employee.rb
39
+ - test/app_root/app/models/user.rb
40
+ - test/app_root/app/models/manager.rb
41
+ - test/test_helper.rb
42
+ - test/factory.rb
43
+ - test/functional/preferences_test.rb
50
44
  - CHANGELOG.rdoc
51
45
  - init.rb
52
46
  - LICENSE
@@ -54,6 +48,8 @@ files:
54
48
  - README.rdoc
55
49
  has_rdoc: true
56
50
  homepage: http://www.pluginaweek.org
51
+ licenses: []
52
+
57
53
  post_install_message:
58
54
  rdoc_options: []
59
55
 
@@ -74,11 +70,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
74
70
  requirements: []
75
71
 
76
72
  rubyforge_project: pluginaweek
77
- rubygems_version: 1.3.1
73
+ rubygems_version: 1.3.5
78
74
  signing_key:
79
- specification_version: 2
80
- summary: Adds support for easily creating custom preferences for models
75
+ specification_version: 3
76
+ summary: Adds support for easily creating custom preferences for ActiveRecord models
81
77
  test_files:
82
- - test/functional/preferences_test.rb
83
78
  - test/unit/preference_test.rb
84
79
  - test/unit/preference_definition_test.rb
80
+ - test/functional/preferences_test.rb