flag_shih_tzu 0.2.3 → 0.2.4

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/.travis.yml CHANGED
@@ -1,7 +1,9 @@
1
1
  rvm:
2
2
  - 1.8.7
3
3
  - 1.9.2
4
+ - 1.9.3
4
5
  gemfile:
5
6
  - gemfiles/Gemfile.activerecord-2.3.x
6
7
  - gemfiles/Gemfile.activerecord-3.0.x
7
8
  - gemfiles/Gemfile.activerecord-3.1.x
9
+ - gemfiles/Gemfile.activerecord-3.2.x
data/README.rdoc CHANGED
@@ -35,9 +35,9 @@ http://en.wikipedia.org/wiki/Shih_Tzu
35
35
 
36
36
  The gem is actively being tested with:
37
37
 
38
- * ActiveRecord versions 2.3.x, 3.0.x, 3.1.x
38
+ * ActiveRecord versions 2.3.x, 3.0.x, 3.1.x, 3.2.x
39
39
  * MySQL, PostgreSQL and SQLite3 databases
40
- * Ruby 1.8.7 and 1.9.2
40
+ * Ruby 1.8.7, 1.9.2 and 1.9.3
41
41
 
42
42
 
43
43
  ==Installation
@@ -163,6 +163,13 @@ on Spaceship:
163
163
  Spaceship#electrolytes=
164
164
  Spaceship#electrolytes_changed?
165
165
 
166
+ Opionally, you can set the <tt>:bang_methods</tt> option to true to enable the bang methods:
167
+
168
+ Spaceship#electrolytes!
169
+ Spaceship#not_electrolytes!
170
+
171
+ which respectively enables or disables the electrolytes flag.
172
+
166
173
 
167
174
  ===Generated named scopes
168
175
 
@@ -292,7 +299,7 @@ and a helpful group of
292
299
  Thanks!
293
300
 
294
301
  Please find out more about our work in our
295
- {tech blog}[http://blog.xing.com/category/english/tech-blog].
302
+ {Devblog}[http://devblog.xing.com/].
296
303
 
297
304
 
298
305
  ==License
data/Rakefile CHANGED
@@ -27,16 +27,9 @@ end
27
27
  namespace :test do
28
28
  desc 'Test against all supported ActiveRecord versions'
29
29
  task :all do
30
- %w(2.3.x 3.0.x 3.1.x).each do |version|
31
- sh "BUNDLE_GEMFILE='gemfiles/Gemfile.activerecord-#{version}' bundle"
30
+ %w(2.3.x 3.0.x 3.1.x 3.2.x).each do |version|
31
+ sh "BUNDLE_GEMFILE='gemfiles/Gemfile.activerecord-#{version}' bundle --quiet"
32
32
  sh "BUNDLE_GEMFILE='gemfiles/Gemfile.activerecord-#{version}' bundle exec rake test"
33
33
  end
34
34
  end
35
-
36
- desc 'Measures test coverage'
37
- task :coverage do
38
- rm_f "coverage"
39
- system("rcov -Ilib test/*_test.rb")
40
- system("open coverage/index.html") if PLATFORM['darwin']
41
- end
42
35
  end
@@ -27,6 +27,5 @@ ActiveRecord object.
27
27
  s.add_development_dependency "bundler"
28
28
  s.add_development_dependency "rdoc", ">= 2.4.2"
29
29
  s.add_development_dependency "rake"
30
- s.add_development_dependency "rcov"
31
30
  s.add_development_dependency "sqlite3"
32
31
  end
@@ -0,0 +1,5 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec :path => '..'
4
+
5
+ gem "activerecord", "~>3.2.0"
data/lib/flag_shih_tzu.rb CHANGED
@@ -77,6 +77,19 @@ module FlagShihTzu
77
77
  end
78
78
  EVAL
79
79
 
80
+ # Define bancg methods when requested
81
+ if flag_options[colmn][:bang_methods]
82
+ class_eval <<-EVAL
83
+ def #{flag_name}!
84
+ enable_flag(:#{flag_name}, '#{colmn}')
85
+ end
86
+
87
+ def not_#{flag_name}!
88
+ disable_flag(:#{flag_name}, '#{colmn}')
89
+ end
90
+ EVAL
91
+ end
92
+
80
93
  # Define the named scopes if the user wants them and AR supports it
81
94
  if flag_options[colmn][:named_scopes] && respond_to?(named_scope_method)
82
95
  class_eval <<-EVAL
@@ -1,3 +1,3 @@
1
1
  module FlagShihTzu
2
- VERSION = "0.2.3"
2
+ VERSION = "0.2.4"
3
3
  end
@@ -1,7 +1,7 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb')
2
2
 
3
3
  class Spaceship < ActiveRecord::Base
4
- set_table_name 'spaceships'
4
+ self.table_name = 'spaceships'
5
5
  include FlagShihTzu
6
6
 
7
7
  has_flags 1 => :warpdrive,
@@ -10,35 +10,35 @@ class Spaceship < ActiveRecord::Base
10
10
  end
11
11
 
12
12
  class SpaceshipWithoutNamedScopes < ActiveRecord::Base
13
- set_table_name 'spaceships'
13
+ self.table_name = 'spaceships'
14
14
  include FlagShihTzu
15
15
 
16
16
  has_flags(1 => :warpdrive, :named_scopes => false)
17
17
  end
18
18
 
19
19
  class SpaceshipWithoutNamedScopesOldStyle < ActiveRecord::Base
20
- set_table_name 'spaceships'
20
+ self.table_name = 'spaceships'
21
21
  include FlagShihTzu
22
22
 
23
23
  has_flags({1 => :warpdrive}, :named_scopes => false)
24
24
  end
25
25
 
26
26
  class SpaceshipWithCustomFlagsColumn < ActiveRecord::Base
27
- set_table_name 'spaceships_with_custom_flags_column'
27
+ self.table_name = 'spaceships_with_custom_flags_column'
28
28
  include FlagShihTzu
29
29
 
30
30
  has_flags(1 => :warpdrive, 2 => :hyperspace, :column => 'bits')
31
31
  end
32
32
 
33
33
  class SpaceshipWithColumnNameAsSymol < ActiveRecord::Base
34
- set_table_name 'spaceships_with_custom_flags_column'
34
+ self.table_name = 'spaceships_with_custom_flags_column'
35
35
  include FlagShihTzu
36
36
 
37
37
  has_flags(1 => :warpdrive, 2 => :hyperspace, :column => :bits)
38
38
  end
39
39
 
40
40
  class SpaceshipWith2CustomFlagsColumn < ActiveRecord::Base
41
- set_table_name 'spaceships_with_2_custom_flags_column'
41
+ self.table_name = 'spaceships_with_2_custom_flags_column'
42
42
  include FlagShihTzu
43
43
 
44
44
  has_flags({ 1 => :warpdrive, 2 => :hyperspace }, :column => 'bits')
@@ -46,12 +46,19 @@ class SpaceshipWith2CustomFlagsColumn < ActiveRecord::Base
46
46
  end
47
47
 
48
48
  class SpaceshipWithBitOperatorQueryMode < ActiveRecord::Base
49
- set_table_name 'spaceships'
49
+ self.table_name = 'spaceships'
50
50
  include FlagShihTzu
51
51
 
52
52
  has_flags(1 => :warpdrive, 2 => :shields, :flag_query_mode => :bit_operator)
53
53
  end
54
54
 
55
+ class SpaceshipWithBangMethods < ActiveRecord::Base
56
+ self.table_name = 'spaceships'
57
+ include FlagShihTzu
58
+
59
+ has_flags(1 => :warpdrive, 2 => :shields, :bang_methods => true)
60
+ end
61
+
55
62
  class SpaceCarrier < Spaceship
56
63
  end
57
64
 
@@ -69,7 +76,7 @@ class FlagShihTzuClassMethodsTest < Test::Unit::TestCase
69
76
  assert_raises ArgumentError do
70
77
  eval(<<-EOF
71
78
  class SpaceshipWithInvalidFlagKey < ActiveRecord::Base
72
- set_table_name 'spaceships'
79
+ self.table_name = 'spaceships'
73
80
  include FlagShihTzu
74
81
 
75
82
  has_flags({ -1 => :error })
@@ -83,7 +90,7 @@ class FlagShihTzuClassMethodsTest < Test::Unit::TestCase
83
90
  assert_raises ArgumentError do
84
91
  eval(<<-EOF
85
92
  class SpaceshipWithAlreadyUsedFlag < ActiveRecord::Base
86
- set_table_name 'spaceships_with_2_custom_flags_column'
93
+ self.table_name = 'spaceships_with_2_custom_flags_column'
87
94
  include FlagShihTzu
88
95
 
89
96
  has_flags({ 1 => :jeanluckpicard }, :column => 'bits')
@@ -98,7 +105,7 @@ class FlagShihTzuClassMethodsTest < Test::Unit::TestCase
98
105
  assert_raises ArgumentError do
99
106
  eval(<<-EOF
100
107
  class SpaceshipWithAlreadyUsedMethod < ActiveRecord::Base
101
- set_table_name 'spaceships_with_2_custom_flags_column'
108
+ self.table_name = 'spaceships_with_2_custom_flags_column'
102
109
  include FlagShihTzu
103
110
 
104
111
  def jeanluckpicard; end
@@ -114,7 +121,7 @@ class FlagShihTzuClassMethodsTest < Test::Unit::TestCase
114
121
  assert_nothing_raised ArgumentError do
115
122
  eval(<<-EOF
116
123
  class SpaceshipWithAlreadyUsedMethodByFlagshitzu < ActiveRecord::Base
117
- set_table_name 'spaceships_with_2_custom_flags_column'
124
+ self.table_name = 'spaceships_with_2_custom_flags_column'
118
125
  include FlagShihTzu
119
126
 
120
127
  has_flags({ 1 => :jeanluckpicard }, :column => 'bits')
@@ -129,7 +136,7 @@ class FlagShihTzuClassMethodsTest < Test::Unit::TestCase
129
136
  assert_raises ArgumentError do
130
137
  eval(<<-EOF
131
138
  class SpaceshipWithInvalidFlagName < ActiveRecord::Base
132
- set_table_name 'spaceships'
139
+ self.table_name = 'spaceships'
133
140
  include FlagShihTzu
134
141
 
135
142
  has_flags({ 1 => 'error' })
@@ -422,7 +429,7 @@ class FlagShihTzuInstanceMethodsTest < Test::Unit::TestCase
422
429
  assert_nothing_raised do
423
430
  eval(<<-EOF
424
431
  class SpaceshipWithoutFlagsColumn < ActiveRecord::Base
425
- set_table_name 'spaceships_without_flags_column'
432
+ self.table_name = 'spaceships_without_flags_column'
426
433
  include FlagShihTzu
427
434
 
428
435
  has_flags 1 => :warpdrive,
@@ -440,7 +447,7 @@ class FlagShihTzuInstanceMethodsTest < Test::Unit::TestCase
440
447
  assert_raises FlagShihTzu::IncorrectFlagColumnException do
441
448
  eval(<<-EOF
442
449
  class SpaceshipWithNonIntegerColumn < ActiveRecord::Base
443
- set_table_name 'spaceships_with_non_integer_column'
450
+ self.table_name ='spaceships_with_non_integer_column'
444
451
  include FlagShihTzu
445
452
 
446
453
  has_flags 1 => :warpdrive,
@@ -538,4 +545,12 @@ class FlagShihTzuDerivedClassTest < Test::Unit::TestCase
538
545
  assert !@spaceship.warpdrive
539
546
  end
540
547
  end
548
+
549
+ def test_should_define_bang_methods
550
+ spaceship = SpaceshipWithBangMethods.new
551
+ spaceship.warpdrive!
552
+ assert spaceship.warpdrive
553
+ spaceship.not_warpdrive!
554
+ assert !spaceship.warpdrive
555
+ end
541
556
  end
data/test/test_helper.rb CHANGED
@@ -4,6 +4,7 @@ require "logger"
4
4
  require "flag_shih_tzu"
5
5
 
6
6
  ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + "/debug.log")
7
+ ActiveRecord::Migration.verbose = false
7
8
 
8
9
  configs = YAML.load_file(File.dirname(__FILE__) + "/database.yml")
9
10
  ActiveRecord::Base.configurations = configs
metadata CHANGED
@@ -1,15 +1,10 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: flag_shih_tzu
3
- version: !ruby/object:Gem::Version
4
- hash: 17
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.4
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 2
9
- - 3
10
- version: 0.2.3
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Patryk Peszko
14
9
  - Sebastian Roebke
15
10
  - David Anderson
@@ -17,112 +12,104 @@ authors:
17
12
  autorequire:
18
13
  bindir: bin
19
14
  cert_chain: []
20
-
21
- date: 2011-10-31 00:00:00 Z
22
- dependencies:
23
- - !ruby/object:Gem::Dependency
15
+ date: 2012-11-06 00:00:00.000000000 Z
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
24
18
  name: activerecord
25
- prerelease: false
26
- requirement: &id001 !ruby/object:Gem::Requirement
19
+ requirement: !ruby/object:Gem::Requirement
27
20
  none: false
28
- requirements:
29
- - - ">="
30
- - !ruby/object:Gem::Version
31
- hash: 3
32
- segments:
33
- - 2
34
- - 3
35
- - 0
21
+ requirements:
22
+ - - ! '>='
23
+ - !ruby/object:Gem::Version
36
24
  version: 2.3.0
37
25
  type: :runtime
38
- version_requirements: *id001
39
- - !ruby/object:Gem::Dependency
40
- name: bundler
41
26
  prerelease: false
42
- requirement: &id002 !ruby/object:Gem::Requirement
27
+ version_requirements: !ruby/object:Gem::Requirement
43
28
  none: false
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- hash: 3
48
- segments:
49
- - 0
50
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: 2.3.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: bundler
35
+ requirement: !ruby/object:Gem::Requirement
36
+ none: false
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
51
41
  type: :development
52
- version_requirements: *id002
53
- - !ruby/object:Gem::Dependency
54
- name: rdoc
55
42
  prerelease: false
56
- requirement: &id003 !ruby/object:Gem::Requirement
43
+ version_requirements: !ruby/object:Gem::Requirement
57
44
  none: false
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- hash: 27
62
- segments:
63
- - 2
64
- - 4
65
- - 2
45
+ requirements:
46
+ - - ! '>='
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ - !ruby/object:Gem::Dependency
50
+ name: rdoc
51
+ requirement: !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ! '>='
55
+ - !ruby/object:Gem::Version
66
56
  version: 2.4.2
67
57
  type: :development
68
- version_requirements: *id003
69
- - !ruby/object:Gem::Dependency
70
- name: rake
71
58
  prerelease: false
72
- requirement: &id004 !ruby/object:Gem::Requirement
59
+ version_requirements: !ruby/object:Gem::Requirement
73
60
  none: false
74
- requirements:
75
- - - ">="
76
- - !ruby/object:Gem::Version
77
- hash: 3
78
- segments:
79
- - 0
80
- version: "0"
61
+ requirements:
62
+ - - ! '>='
63
+ - !ruby/object:Gem::Version
64
+ version: 2.4.2
65
+ - !ruby/object:Gem::Dependency
66
+ name: rake
67
+ requirement: !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ! '>='
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
81
73
  type: :development
82
- version_requirements: *id004
83
- - !ruby/object:Gem::Dependency
84
- name: rcov
85
74
  prerelease: false
86
- requirement: &id005 !ruby/object:Gem::Requirement
75
+ version_requirements: !ruby/object:Gem::Requirement
87
76
  none: false
88
- requirements:
89
- - - ">="
90
- - !ruby/object:Gem::Version
91
- hash: 3
92
- segments:
93
- - 0
94
- version: "0"
95
- type: :development
96
- version_requirements: *id005
97
- - !ruby/object:Gem::Dependency
77
+ requirements:
78
+ - - ! '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ - !ruby/object:Gem::Dependency
98
82
  name: sqlite3
99
- prerelease: false
100
- requirement: &id006 !ruby/object:Gem::Requirement
83
+ requirement: !ruby/object:Gem::Requirement
101
84
  none: false
102
- requirements:
103
- - - ">="
104
- - !ruby/object:Gem::Version
105
- hash: 3
106
- segments:
107
- - 0
108
- version: "0"
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
109
89
  type: :development
110
- version_requirements: *id006
111
- description: |
112
- Bit fields for ActiveRecord:
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ none: false
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: ! 'Bit fields for ActiveRecord:
98
+
113
99
  This gem lets you use a single integer column in an ActiveRecord model
100
+
114
101
  to store a collection of boolean attributes (flags). Each flag can be used
102
+
115
103
  almost in the same way you would use any boolean attribute on an
104
+
116
105
  ActiveRecord object.
117
106
 
107
+ '
118
108
  email:
119
109
  executables: []
120
-
121
110
  extensions: []
122
-
123
111
  extra_rdoc_files: []
124
-
125
- files:
112
+ files:
126
113
  - .gitignore
127
114
  - .travis.yml
128
115
  - Gemfile
@@ -132,6 +119,7 @@ files:
132
119
  - gemfiles/Gemfile.activerecord-2.3.x
133
120
  - gemfiles/Gemfile.activerecord-3.0.x
134
121
  - gemfiles/Gemfile.activerecord-3.1.x
122
+ - gemfiles/Gemfile.activerecord-3.2.x
135
123
  - init.rb
136
124
  - lib/flag_shih_tzu.rb
137
125
  - lib/flag_shih_tzu/version.rb
@@ -141,38 +129,29 @@ files:
141
129
  - test/test_helper.rb
142
130
  homepage: https://github.com/xing/flag_shih_tzu
143
131
  licenses: []
144
-
145
132
  post_install_message:
146
133
  rdoc_options: []
147
-
148
- require_paths:
134
+ require_paths:
149
135
  - lib
150
- required_ruby_version: !ruby/object:Gem::Requirement
136
+ required_ruby_version: !ruby/object:Gem::Requirement
151
137
  none: false
152
- requirements:
153
- - - ">="
154
- - !ruby/object:Gem::Version
155
- hash: 3
156
- segments:
157
- - 0
158
- version: "0"
159
- required_rubygems_version: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ required_rubygems_version: !ruby/object:Gem::Requirement
160
143
  none: false
161
- requirements:
162
- - - ">="
163
- - !ruby/object:Gem::Version
164
- hash: 3
165
- segments:
166
- - 0
167
- version: "0"
144
+ requirements:
145
+ - - ! '>='
146
+ - !ruby/object:Gem::Version
147
+ version: '0'
168
148
  requirements: []
169
-
170
149
  rubyforge_project:
171
- rubygems_version: 1.8.6
150
+ rubygems_version: 1.8.24
172
151
  signing_key:
173
152
  specification_version: 3
174
153
  summary: Bit fields for ActiveRecord
175
- test_files:
154
+ test_files:
176
155
  - test/database.yml
177
156
  - test/flag_shih_tzu_test.rb
178
157
  - test/schema.rb