act_with_flags 0.2.3 → 3.1.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.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +30 -0
- data/.ruby-gemset +1 -1
- data/.ruby-version +1 -1
- data/.watchr +29 -16
- data/Appraisals +12 -4
- data/Gemfile +7 -6
- data/Gemfile.lock +156 -125
- data/MIT-LICENSE +1 -1
- data/README.md +77 -10
- data/Rakefile +5 -5
- data/act_with_flags.gemspec +20 -20
- data/gemfiles/rails_6.0.gemfile +4 -1
- data/gemfiles/{rails_5.2.gemfile → rails_6.1.gemfile} +3 -1
- data/gemfiles/rails_7.0.gemfile +15 -0
- data/lib/act_with_flags/admin.rb +5 -48
- data/lib/act_with_flags/clear.rb +30 -0
- data/lib/act_with_flags/define.rb +6 -35
- data/lib/act_with_flags/flags.rb +65 -0
- data/lib/act_with_flags/print.rb +21 -27
- data/lib/act_with_flags/utils.rb +33 -13
- data/lib/act_with_flags/version.rb +9 -13
- data/lib/act_with_flags.rb +28 -33
- data/test/any_all_none_test.rb +6 -9
- data/test/benchmark_test.rb +73 -0
- data/test/clear_test.rb +5 -7
- data/test/coding_check_add_test.rb +29 -0
- data/test/coding_coverage_test.rb +19 -0
- data/test/coding_mask2d_test.rb +25 -0
- data/test/coding_null_test.rb +29 -0
- data/test/coding_one_test.rb +26 -0
- data/test/coding_reset_test.rb +18 -0
- data/test/inheritance_any_test.rb +9 -33
- data/test/inheritance_test.rb +7 -10
- data/test/internal/app/controllers/orders_controller.rb +1 -3
- data/test/internal/app/models/order.rb +1 -5
- data/test/internal/config/routes.rb +1 -1
- data/test/internal/db/schema.rb +6 -7
- data/test/legacy_test.rb +8 -9
- data/test/mask_test.rb +6 -7
- data/test/null_test.rb +3 -5
- data/test/one_test.rb +7 -9
- data/test/origin_test.rb +7 -26
- data/test/origins_test.rb +57 -0
- data/test/range_test.rb +89 -0
- data/test/remove_from_test.rb +3 -4
- data/test/test_helper.rb +9 -9
- metadata +47 -67
- data/.rubocop.yml +0 -8
- data/.travis.yml +0 -23
- data/test/internal_benchmark_test.rb +0 -52
- data/test/internal_check_add_test.rb +0 -36
- data/test/internal_null_test.rb +0 -29
- data/test/internal_one_test.rb +0 -27
- data/test/reset_test.rb +0 -17
@@ -0,0 +1,57 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
describe "Several origins" do
|
4
|
+
let(:order) { Order.create }
|
5
|
+
|
6
|
+
def setup
|
7
|
+
reset_order
|
8
|
+
Order.add_to_flags :a # origin is :flags
|
9
|
+
Order.add_to_flags :b, b2: 63 # origin is :flags
|
10
|
+
Order.add_to_flags :c, origin: :origin1
|
11
|
+
Order.add_to_flags d: 3, origin: :origin2
|
12
|
+
Order.add_to_flags :d2, origin: :origin2
|
13
|
+
end
|
14
|
+
|
15
|
+
it "checks flags" do
|
16
|
+
order.a = true
|
17
|
+
order.b = true
|
18
|
+
order.b2 = true
|
19
|
+
assert_equal 0x8000000000000003, order.flags
|
20
|
+
order.b2 = false
|
21
|
+
assert_equal 0x03, order.flags
|
22
|
+
assert_equal 0x01, Order.act_with_flags.mask(:a) # should work
|
23
|
+
assert_equal 0x8000000000000002, Order.act_with_flags.mask(:b, :b2) # should work
|
24
|
+
end
|
25
|
+
|
26
|
+
it "checks origin1" do
|
27
|
+
order.c = true
|
28
|
+
assert_equal 0x01, order.origin1
|
29
|
+
assert_equal 0x01, Order.act_with_flags.mask(:c)
|
30
|
+
end
|
31
|
+
|
32
|
+
it "checks origin2" do
|
33
|
+
order.d = true
|
34
|
+
assert_equal 0x08, order.origin2
|
35
|
+
assert_equal 0x18, Order.act_with_flags.mask(:d2, :d)
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should reject mask for different origins" do
|
39
|
+
assert_raises(RuntimeError) {
|
40
|
+
Order.act_with_flags.mask :c, :d
|
41
|
+
}
|
42
|
+
end
|
43
|
+
|
44
|
+
it "allows any? et all for same origins" do
|
45
|
+
order.flags_any? :b, :b2
|
46
|
+
order.flags_all? :d2, :d
|
47
|
+
end
|
48
|
+
|
49
|
+
it "rejects any? et all for different origins" do
|
50
|
+
assert_raises(RuntimeError) {
|
51
|
+
order.flags_any? :a, :c
|
52
|
+
}
|
53
|
+
assert_raises(RuntimeError) {
|
54
|
+
order.flags_all? :d2, :c
|
55
|
+
}
|
56
|
+
end
|
57
|
+
end
|
data/test/range_test.rb
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
describe "range" do
|
4
|
+
def setup
|
5
|
+
reset_order
|
6
|
+
end
|
7
|
+
|
8
|
+
it "runs without range" do
|
9
|
+
Order.add_to_flags :a
|
10
|
+
Order.add_to_flags :b
|
11
|
+
end
|
12
|
+
|
13
|
+
it "runs with range(inside)" do
|
14
|
+
Order.add_to_flags range: 2..4, a: 2
|
15
|
+
Order.add_to_flags range: 2..4, b: 3
|
16
|
+
end
|
17
|
+
|
18
|
+
it "fails with outside range" do
|
19
|
+
assert_raises(RangeError) { Order.add_to_flags range: 2..3, a: 1 }
|
20
|
+
assert_raises(RangeError) { Order.add_to_flags range: 2..3, b: 4 }
|
21
|
+
end
|
22
|
+
|
23
|
+
it "runs at borders" do
|
24
|
+
Order.add_to_flags range: 2..3, a: 2
|
25
|
+
Order.add_to_flags range: 2..3, b: 3
|
26
|
+
end
|
27
|
+
|
28
|
+
it "runs with ... as range" do
|
29
|
+
Order.add_to_flags range: 2...3, a: 2
|
30
|
+
assert_raises(RangeError) { Order.add_to_flags range: 2...3, b: 3 }
|
31
|
+
end
|
32
|
+
|
33
|
+
it "detects wrong range" do
|
34
|
+
assert_raises(RangeError) { Order.add_to_flags range: "a".."z", a: 2 }
|
35
|
+
end
|
36
|
+
|
37
|
+
it "tests range 0..0 no position" do
|
38
|
+
Order.add_to_flags :a, range: 0..0
|
39
|
+
assert_raises(RangeError) { Order.add_to_flags :b, range: 0..0 }
|
40
|
+
end
|
41
|
+
|
42
|
+
it "tests range ..0 no position" do
|
43
|
+
Order.add_to_flags :a, range: ..0
|
44
|
+
assert_raises(RangeError) { Order.add_to_flags :b, range: ..0 }
|
45
|
+
end
|
46
|
+
|
47
|
+
it "tests range ...0 no position" do
|
48
|
+
assert_raises(RangeError) { Order.add_to_flags :a, range: ...0 }
|
49
|
+
end
|
50
|
+
|
51
|
+
# YAGNI
|
52
|
+
# # includes range: ( .. 3 ) equivalent to range: ..3
|
53
|
+
# n = 100
|
54
|
+
# (0..n).each do |i|
|
55
|
+
# rng = ..i
|
56
|
+
#
|
57
|
+
# (0..i).each do |j|
|
58
|
+
# it "tests range ..#{i} with position #{j}" do
|
59
|
+
# Order.add_to_flags a: j, range: rng
|
60
|
+
# end
|
61
|
+
# end
|
62
|
+
#
|
63
|
+
# it "fails range ..#{i} with position overflow" do
|
64
|
+
# assert_raises(RangeError) { Order.add_to_flags b: (i + 1), range: rng }
|
65
|
+
# end
|
66
|
+
# end
|
67
|
+
#
|
68
|
+
# it "runs ii plus" do
|
69
|
+
# ii = 0
|
70
|
+
# (0..2).each { |íí|
|
71
|
+
# sym = "x#{ii}".to_sym
|
72
|
+
# j = f(ii, ii + 1) # filler
|
73
|
+
# rand j
|
74
|
+
# Order.add_to_flags :range => ii..f(íí, íí), sym => (ii += 1)
|
75
|
+
# orden = Order.new
|
76
|
+
# refute orden.send("#{sym}?") # checks that accessor is active
|
77
|
+
# orden.x0 = true # checks that first accessor is still there
|
78
|
+
# assert orden.x0?
|
79
|
+
# }
|
80
|
+
# end
|
81
|
+
#
|
82
|
+
# private
|
83
|
+
#
|
84
|
+
# def f(x, y)
|
85
|
+
# return y + 1 if x == 0
|
86
|
+
# return f(x - 1, 1) if y == 0
|
87
|
+
# f(x - 1, f(x, y - 1))
|
88
|
+
# end
|
89
|
+
end
|
data/test/remove_from_test.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
require
|
1
|
+
require "test_helper"
|
2
2
|
|
3
|
-
describe
|
3
|
+
describe "Delete from Flags" do
|
4
4
|
let(:order) { Order.create }
|
5
5
|
|
6
6
|
def setup
|
@@ -9,10 +9,9 @@ describe 'Delete from Flags' do
|
|
9
9
|
order.a = order.b = order.c = true
|
10
10
|
end
|
11
11
|
|
12
|
-
it
|
12
|
+
it "remove accessors" do
|
13
13
|
Order.remove_from_flags :b
|
14
14
|
assert_raises { order.b }
|
15
15
|
refute Order.respond_to?(:b)
|
16
16
|
end
|
17
|
-
|
18
17
|
end
|
data/test/test_helper.rb
CHANGED
@@ -1,19 +1,19 @@
|
|
1
|
-
if ENV[
|
2
|
-
require
|
1
|
+
if ENV["COVERAGE"]
|
2
|
+
require "simplecov"
|
3
3
|
SimpleCov.start do
|
4
|
-
add_filter
|
4
|
+
add_filter "/test/"
|
5
5
|
end
|
6
6
|
end
|
7
7
|
|
8
8
|
require "combustion"
|
9
9
|
Combustion.path = "test/internal"
|
10
|
-
Combustion.initialize! :
|
10
|
+
Combustion.initialize! :active_record
|
11
11
|
|
12
|
-
require
|
13
|
-
require
|
14
|
-
require
|
15
|
-
#require 'capybara/rails'
|
12
|
+
require "rails/test_help"
|
13
|
+
require "minitest/autorun"
|
14
|
+
require "minitest/benchmark"
|
15
|
+
# require 'capybara/rails'
|
16
16
|
|
17
17
|
def reset_order
|
18
|
-
Order.act_with_flags
|
18
|
+
Order.act_with_flags&.reset
|
19
19
|
end
|
metadata
CHANGED
@@ -1,111 +1,110 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: act_with_flags
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dittmar Krall
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-08-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: appraisal
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: combustion
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: minitest
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: sqlite3
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
89
|
+
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - "
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
97
|
-
description: Handles flags in a Rails model instance
|
96
|
+
version: '0'
|
97
|
+
description: Handles flags/booleans in a Rails model instance
|
98
98
|
email:
|
99
|
-
- dittmar.krall@
|
99
|
+
- dittmar.krall@matiq.com
|
100
100
|
executables: []
|
101
101
|
extensions: []
|
102
102
|
extra_rdoc_files: []
|
103
103
|
files:
|
104
|
+
- ".github/workflows/rake.yml"
|
104
105
|
- ".gitignore"
|
105
|
-
- ".rubocop.yml"
|
106
106
|
- ".ruby-gemset"
|
107
107
|
- ".ruby-version"
|
108
|
-
- ".travis.yml"
|
109
108
|
- ".watchr"
|
110
109
|
- Appraisals
|
111
110
|
- Gemfile
|
@@ -114,16 +113,26 @@ files:
|
|
114
113
|
- README.md
|
115
114
|
- Rakefile
|
116
115
|
- act_with_flags.gemspec
|
117
|
-
- gemfiles/rails_5.2.gemfile
|
118
116
|
- gemfiles/rails_6.0.gemfile
|
117
|
+
- gemfiles/rails_6.1.gemfile
|
118
|
+
- gemfiles/rails_7.0.gemfile
|
119
119
|
- lib/act_with_flags.rb
|
120
120
|
- lib/act_with_flags/admin.rb
|
121
|
+
- lib/act_with_flags/clear.rb
|
121
122
|
- lib/act_with_flags/define.rb
|
123
|
+
- lib/act_with_flags/flags.rb
|
122
124
|
- lib/act_with_flags/print.rb
|
123
125
|
- lib/act_with_flags/utils.rb
|
124
126
|
- lib/act_with_flags/version.rb
|
125
127
|
- test/any_all_none_test.rb
|
128
|
+
- test/benchmark_test.rb
|
126
129
|
- test/clear_test.rb
|
130
|
+
- test/coding_check_add_test.rb
|
131
|
+
- test/coding_coverage_test.rb
|
132
|
+
- test/coding_mask2d_test.rb
|
133
|
+
- test/coding_null_test.rb
|
134
|
+
- test/coding_one_test.rb
|
135
|
+
- test/coding_reset_test.rb
|
127
136
|
- test/inheritance_any_test.rb
|
128
137
|
- test/inheritance_test.rb
|
129
138
|
- test/internal/app/assets/config/manifest.js
|
@@ -136,23 +145,21 @@ files:
|
|
136
145
|
- test/internal/config/routes.rb
|
137
146
|
- test/internal/config/secrets.yml
|
138
147
|
- test/internal/db/schema.rb
|
139
|
-
- test/internal_benchmark_test.rb
|
140
|
-
- test/internal_check_add_test.rb
|
141
|
-
- test/internal_null_test.rb
|
142
|
-
- test/internal_one_test.rb
|
143
148
|
- test/legacy_test.rb
|
144
149
|
- test/mask_test.rb
|
145
150
|
- test/null_test.rb
|
146
151
|
- test/one_test.rb
|
147
152
|
- test/origin_test.rb
|
153
|
+
- test/origins_test.rb
|
154
|
+
- test/range_test.rb
|
148
155
|
- test/remove_from_test.rb
|
149
|
-
- test/reset_test.rb
|
150
156
|
- test/string_test.rb
|
151
157
|
- test/test_helper.rb
|
152
|
-
homepage: http://
|
158
|
+
homepage: http://matiq.com
|
153
159
|
licenses:
|
154
160
|
- MIT
|
155
|
-
metadata:
|
161
|
+
metadata:
|
162
|
+
source_code_uri: https://github.com/matique/act_with_flags
|
156
163
|
post_install_message:
|
157
164
|
rdoc_options: []
|
158
165
|
require_paths:
|
@@ -168,35 +175,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
168
175
|
- !ruby/object:Gem::Version
|
169
176
|
version: '0'
|
170
177
|
requirements: []
|
171
|
-
rubygems_version: 3.
|
178
|
+
rubygems_version: 3.3.7
|
172
179
|
signing_key:
|
173
180
|
specification_version: 4
|
174
181
|
summary: act_with_flags gem
|
175
|
-
test_files:
|
176
|
-
- test/any_all_none_test.rb
|
177
|
-
- test/clear_test.rb
|
178
|
-
- test/inheritance_any_test.rb
|
179
|
-
- test/inheritance_test.rb
|
180
|
-
- test/internal/app/assets/config/manifest.js
|
181
|
-
- test/internal/app/controllers/application_controller.rb
|
182
|
-
- test/internal/app/controllers/orders_controller.rb
|
183
|
-
- test/internal/app/models/application_record.rb
|
184
|
-
- test/internal/app/models/order.rb
|
185
|
-
- test/internal/app/views/layouts/application.html.erb
|
186
|
-
- test/internal/config/database.yml
|
187
|
-
- test/internal/config/routes.rb
|
188
|
-
- test/internal/config/secrets.yml
|
189
|
-
- test/internal/db/schema.rb
|
190
|
-
- test/internal_benchmark_test.rb
|
191
|
-
- test/internal_check_add_test.rb
|
192
|
-
- test/internal_null_test.rb
|
193
|
-
- test/internal_one_test.rb
|
194
|
-
- test/legacy_test.rb
|
195
|
-
- test/mask_test.rb
|
196
|
-
- test/null_test.rb
|
197
|
-
- test/one_test.rb
|
198
|
-
- test/origin_test.rb
|
199
|
-
- test/remove_from_test.rb
|
200
|
-
- test/reset_test.rb
|
201
|
-
- test/string_test.rb
|
202
|
-
- test/test_helper.rb
|
182
|
+
test_files: []
|
data/.rubocop.yml
DELETED
data/.travis.yml
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
sudo: false
|
3
|
-
|
4
|
-
bundler_args: --without production
|
5
|
-
#before_install:
|
6
|
-
#- gem update bundler --no-document
|
7
|
-
#- gem update bundler --no-rdoc --no-ri
|
8
|
-
script: "bundle exec rake test"
|
9
|
-
|
10
|
-
rvm:
|
11
|
-
- 2.6.6
|
12
|
-
# - 2.6.5
|
13
|
-
# - 2.6.4
|
14
|
-
- 2.6.1
|
15
|
-
|
16
|
-
gemfile:
|
17
|
-
- gemfiles/rails_6.0.gemfile
|
18
|
-
- gemfiles/rails_5.2.gemfile
|
19
|
-
|
20
|
-
matrix:
|
21
|
-
|
22
|
-
notifications:
|
23
|
-
email: false
|
@@ -1,52 +0,0 @@
|
|
1
|
-
# For development purposes; do not waste your tine reading it!
|
2
|
-
# YAGNI
|
3
|
-
# rubocop:disable all
|
4
|
-
|
5
|
-
require 'test_helper'
|
6
|
-
require 'benchmark'
|
7
|
-
require 'benchmark/ips'
|
8
|
-
# ENV['MORE'] = 'true'
|
9
|
-
|
10
|
-
describe 'Internal timings' do
|
11
|
-
let(:order) { Order.create }
|
12
|
-
|
13
|
-
def setup
|
14
|
-
reset_order
|
15
|
-
Order.add_to_flags :blocked
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'times ips' do
|
19
|
-
return unless ENV['MORE']
|
20
|
-
|
21
|
-
Benchmark.ips do |x|
|
22
|
-
x.report('assign true : ') { order.blocked = true }
|
23
|
-
x.report('assign false: ') { order.blocked = false }
|
24
|
-
x.report('assign "false": ') { order.blocked = 'false' }
|
25
|
-
x.report('x = order.blocked? ') { x = order.blocked? }
|
26
|
-
x.report('x = order.blocked ') { x = order.blocked }
|
27
|
-
|
28
|
-
x.compare!
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
end
|
33
|
-
|
34
|
-
class BenchFoo < Minitest::Benchmark
|
35
|
-
|
36
|
-
def bench_order_blocked
|
37
|
-
return unless ENV['MORE']
|
38
|
-
|
39
|
-
n = 1_000_000
|
40
|
-
n = 100_000
|
41
|
-
n = 10_000
|
42
|
-
Order.add_to_flags :blocked2
|
43
|
-
order = Order.create
|
44
|
-
assert_performance_constant do |input|
|
45
|
-
n.times do
|
46
|
-
order.blocked2 = true
|
47
|
-
order.blocked2 = !order.blocked2
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
describe 'Internal check add flag' do
|
4
|
-
let(:admin) { Order.act_with_flags }
|
5
|
-
|
6
|
-
def setup
|
7
|
-
reset_order
|
8
|
-
Order.add_to_flags a: 1, b: 7, c: 3
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'skip reserved position' do
|
12
|
-
Order.add_to_flags :xx
|
13
|
-
assert_equal 0, admin.position(:xx)
|
14
|
-
Order.add_to_flags :yy
|
15
|
-
assert_equal 2, admin.position(:yy)
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'rejects redefinition' do
|
19
|
-
Order.add_to_flags :z
|
20
|
-
assert_raises { Order.add_to_flags :z }
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'rejects reuse of position' do
|
24
|
-
assert_raises { Order.add_to_flags qq: 1 }
|
25
|
-
end
|
26
|
-
|
27
|
-
it 'coverage to_s' do
|
28
|
-
res = admin.to_s
|
29
|
-
puts res if ENV['MORE']
|
30
|
-
end
|
31
|
-
|
32
|
-
it 'coverage position raise' do
|
33
|
-
assert_raises { admin.position(:aaaa) }
|
34
|
-
end
|
35
|
-
|
36
|
-
end
|
data/test/internal_null_test.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
describe 'Internal Null' do
|
4
|
-
let(:admin) { Order.act_with_flags }
|
5
|
-
|
6
|
-
def setup
|
7
|
-
reset_order
|
8
|
-
Order.add_to_flags
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'respond to act_with_flags' do
|
12
|
-
assert Order.respond_to?(:act_with_flags)
|
13
|
-
refute_nil Order.act_with_flags
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'tests to_boolean' do
|
17
|
-
assert admin.to_boolean(true)
|
18
|
-
refute admin.to_boolean(false)
|
19
|
-
assert_raises { admin.to_boolean(nil) }
|
20
|
-
assert_raises { admin.to_boolean(2) }
|
21
|
-
assert_raises { admin.to_boolean('unknown') }
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'tests a simple administration: names' do
|
25
|
-
refute_nil admin.names
|
26
|
-
assert_equal [], admin.names
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
data/test/internal_one_test.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
# rubocop: disable all
|
2
|
-
|
3
|
-
require 'test_helper'
|
4
|
-
|
5
|
-
describe 'Internal One Flag' do
|
6
|
-
let(:flag) { :blocked }
|
7
|
-
let(:admin) { Order.act_with_flags }
|
8
|
-
let(:order) { Order.new }
|
9
|
-
|
10
|
-
def setup
|
11
|
-
reset_order
|
12
|
-
Order.add_to_flags flag
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'test Order.act_with_flags' do
|
16
|
-
refute_nil admin
|
17
|
-
assert_equal admin, order.class.act_with_flags
|
18
|
-
end
|
19
|
-
|
20
|
-
it 'checks definition of methods for flag' do
|
21
|
-
msg = "method '#{flag}' not defined'
|
22
|
-
assert order.respond_to?("#{flag}"), msg
|
23
|
-
assert order.respond_to?("#{flag}?"), msg
|
24
|
-
assert order.respond_to?("#{flag}="), msg
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
data/test/reset_test.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
describe 'Testing reset' do
|
4
|
-
let(:order) { Order.new }
|
5
|
-
|
6
|
-
def setup
|
7
|
-
reset_order
|
8
|
-
Order.add_to_flags :a
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'reset hard' do
|
12
|
-
refute_equal [], Order.add_to_flags.names
|
13
|
-
Order.act_with_flags&.reset
|
14
|
-
assert_equal [], Order.add_to_flags.names
|
15
|
-
end
|
16
|
-
|
17
|
-
end
|