normatron 0.2.1 → 0.3.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/README.textile +35 -48
- data/Rakefile +6 -7
- data/lib/generators/normatron/install_generator.rb +23 -0
- data/lib/generators/normatron/templates/normatron.rb +4 -0
- data/lib/normatron.rb +22 -8
- data/lib/normatron/configuration.rb +26 -22
- data/lib/normatron/extensions.rb +8 -0
- data/lib/normatron/extensions/active_record.rb +20 -15
- data/lib/normatron/filters.rb +26 -379
- data/lib/normatron/filters/blank_filter.rb +29 -0
- data/lib/normatron/filters/camelize_filter.rb +50 -0
- data/lib/normatron/filters/capitalize_filter.rb +29 -0
- data/lib/normatron/filters/chomp_filter.rb +34 -0
- data/lib/normatron/filters/dasherize_filter.rb +25 -0
- data/lib/normatron/filters/downcase_filter.rb +29 -0
- data/lib/normatron/filters/dump_filter.rb +27 -0
- data/lib/normatron/filters/helpers.rb +44 -0
- data/lib/normatron/filters/keep_filter.rb +100 -0
- data/lib/normatron/filters/remove_filter.rb +37 -0
- data/lib/normatron/filters/squeeze_filter.rb +30 -0
- data/lib/normatron/filters/squish_filter.rb +28 -0
- data/lib/normatron/filters/strip_filter.rb +33 -0
- data/lib/normatron/filters/swapcase_filter.rb +30 -0
- data/lib/normatron/filters/titleize_filter.rb +29 -0
- data/lib/normatron/filters/underscore_filter.rb +45 -0
- data/lib/normatron/filters/upcase_filter.rb +29 -0
- data/lib/normatron/version.rb +3 -0
- data/spec/normatron/configuration_spec.rb +60 -0
- data/spec/normatron/extensions/active_record_spec.rb +96 -0
- data/spec/normatron/filters/blank_filter_spec.rb +15 -0
- data/spec/normatron/filters/camelize_filter_spec.rb +42 -0
- data/spec/normatron/filters/capitalize_filter_spec.rb +14 -0
- data/spec/normatron/filters/chomp_filter_spec.rb +15 -0
- data/spec/normatron/filters/dasherize_filter_spec.rb +9 -0
- data/spec/normatron/filters/downcase_filter_spec.rb +10 -0
- data/spec/normatron/filters/dump_filter_spec.rb +10 -0
- data/spec/normatron/filters/keep_filter_spec.rb +86 -0
- data/spec/normatron/filters/remove_filter_spec.rb +86 -0
- data/spec/normatron/filters/squeeze_filter_spec.rb +10 -0
- data/spec/normatron/filters/squish_filter_spec.rb +12 -0
- data/spec/normatron/filters/strip_filter_spec.rb +12 -0
- data/spec/normatron/filters/swapcase_filter_spec.rb +12 -0
- data/spec/normatron/filters/titleize_filter_spec.rb +12 -0
- data/spec/normatron/filters/underscore_filter_spec.rb +26 -0
- data/spec/normatron/filters/upcase_filter_spec.rb +10 -0
- data/spec/normatron_spec.rb +28 -2
- data/spec/spec_helper.rb +37 -4
- data/spec/support/my_filters.rb +7 -0
- data/spec/support/user_model.rb +14 -0
- metadata +64 -13
- data/spec/configuration_spec.rb +0 -53
- data/spec/extensions/active_record_spec.rb +0 -114
- data/spec/filters_spec.rb +0 -442
- data/spec/support/model_model.rb +0 -3
- data/spec/support/schema.rb +0 -7
@@ -0,0 +1,9 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'normatron/filters/dasherize_filter'
|
5
|
+
|
6
|
+
describe Normatron::Filters::DasherizeFilter do
|
7
|
+
it_should_behave_like "string processor"
|
8
|
+
it_should_behave_like "evaluable filter", ["string_inflections"], "string-inflections"
|
9
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'normatron/filters/downcase_filter'
|
5
|
+
|
6
|
+
describe Normatron::Filters::DowncaseFilter do
|
7
|
+
it_should_behave_like "string processor"
|
8
|
+
it_should_behave_like "evaluable filter", ["caçador"], "caçador"
|
9
|
+
it_should_behave_like "evaluable filter", ["CAÇADOR"], "caçador"
|
10
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'normatron/filters/dump_filter'
|
5
|
+
|
6
|
+
describe Normatron::Filters::DumpFilter do
|
7
|
+
it_should_behave_like "string processor"
|
8
|
+
it_should_behave_like "evaluable filter", ["First \n Time"], '"First \n Time"'
|
9
|
+
it_should_behave_like "evaluable filter", ['First \n Time'], '"First \\\n Time"'
|
10
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'normatron/filters/keep_filter'
|
5
|
+
|
6
|
+
describe Normatron::Filters::KeepFilter do
|
7
|
+
it_should_behave_like "string processor"
|
8
|
+
it_should_behave_like "character cleaner", :keep, [:Graph]
|
9
|
+
it_should_behave_like "character cleaner", :keep, [:Punct]
|
10
|
+
it_should_behave_like "character cleaner", :keep, [:Upper]
|
11
|
+
it_should_behave_like "character cleaner", :keep, [:Word]
|
12
|
+
it_should_behave_like "character cleaner", :keep, [:Latin]
|
13
|
+
it_should_behave_like "character cleaner", :keep, [:L]
|
14
|
+
it_should_behave_like "character cleaner", :keep, [:M]
|
15
|
+
it_should_behave_like "character cleaner", :keep, [:N]
|
16
|
+
it_should_behave_like "character cleaner", :keep, [:P]
|
17
|
+
it_should_behave_like "character cleaner", :keep, [:S]
|
18
|
+
it_should_behave_like "character cleaner", :keep, [:Z]
|
19
|
+
it_should_behave_like "character cleaner", :keep, [:C]
|
20
|
+
it_should_behave_like "character cleaner", :keep, [:Graph, :Punct]
|
21
|
+
it_should_behave_like "character cleaner", :keep, [:Graph, :Upper]
|
22
|
+
it_should_behave_like "character cleaner", :keep, [:Graph, :Word]
|
23
|
+
it_should_behave_like "character cleaner", :keep, [:Graph, :Latin]
|
24
|
+
it_should_behave_like "character cleaner", :keep, [:Graph, :L]
|
25
|
+
it_should_behave_like "character cleaner", :keep, [:Graph, :M]
|
26
|
+
it_should_behave_like "character cleaner", :keep, [:Graph, :N]
|
27
|
+
it_should_behave_like "character cleaner", :keep, [:Graph, :P]
|
28
|
+
it_should_behave_like "character cleaner", :keep, [:Graph, :S]
|
29
|
+
it_should_behave_like "character cleaner", :keep, [:Graph, :Z]
|
30
|
+
it_should_behave_like "character cleaner", :keep, [:Graph, :C]
|
31
|
+
it_should_behave_like "character cleaner", :keep, [:Punct, :Upper]
|
32
|
+
it_should_behave_like "character cleaner", :keep, [:Punct, :Word]
|
33
|
+
it_should_behave_like "character cleaner", :keep, [:Punct, :Latin]
|
34
|
+
it_should_behave_like "character cleaner", :keep, [:Punct, :L]
|
35
|
+
it_should_behave_like "character cleaner", :keep, [:Punct, :M]
|
36
|
+
it_should_behave_like "character cleaner", :keep, [:Punct, :N]
|
37
|
+
it_should_behave_like "character cleaner", :keep, [:Punct, :P]
|
38
|
+
it_should_behave_like "character cleaner", :keep, [:Punct, :S]
|
39
|
+
it_should_behave_like "character cleaner", :keep, [:Punct, :Z]
|
40
|
+
it_should_behave_like "character cleaner", :keep, [:Punct, :C]
|
41
|
+
it_should_behave_like "character cleaner", :keep, [:Upper, :Word]
|
42
|
+
it_should_behave_like "character cleaner", :keep, [:Upper, :Latin]
|
43
|
+
it_should_behave_like "character cleaner", :keep, [:Upper, :L]
|
44
|
+
it_should_behave_like "character cleaner", :keep, [:Upper, :M]
|
45
|
+
it_should_behave_like "character cleaner", :keep, [:Upper, :N]
|
46
|
+
it_should_behave_like "character cleaner", :keep, [:Upper, :P]
|
47
|
+
it_should_behave_like "character cleaner", :keep, [:Upper, :S]
|
48
|
+
it_should_behave_like "character cleaner", :keep, [:Upper, :Z]
|
49
|
+
it_should_behave_like "character cleaner", :keep, [:Upper, :C]
|
50
|
+
it_should_behave_like "character cleaner", :keep, [:Word, :Latin]
|
51
|
+
it_should_behave_like "character cleaner", :keep, [:Word, :L]
|
52
|
+
it_should_behave_like "character cleaner", :keep, [:Word, :M]
|
53
|
+
it_should_behave_like "character cleaner", :keep, [:Word, :N]
|
54
|
+
it_should_behave_like "character cleaner", :keep, [:Word, :P]
|
55
|
+
it_should_behave_like "character cleaner", :keep, [:Word, :S]
|
56
|
+
it_should_behave_like "character cleaner", :keep, [:Word, :Z]
|
57
|
+
it_should_behave_like "character cleaner", :keep, [:Word, :C]
|
58
|
+
it_should_behave_like "character cleaner", :keep, [:Latin, :L]
|
59
|
+
it_should_behave_like "character cleaner", :keep, [:Latin, :M]
|
60
|
+
it_should_behave_like "character cleaner", :keep, [:Latin, :N]
|
61
|
+
it_should_behave_like "character cleaner", :keep, [:Latin, :P]
|
62
|
+
it_should_behave_like "character cleaner", :keep, [:Latin, :S]
|
63
|
+
it_should_behave_like "character cleaner", :keep, [:Latin, :Z]
|
64
|
+
it_should_behave_like "character cleaner", :keep, [:Latin, :C]
|
65
|
+
it_should_behave_like "character cleaner", :keep, [:L, :M]
|
66
|
+
it_should_behave_like "character cleaner", :keep, [:L, :N]
|
67
|
+
it_should_behave_like "character cleaner", :keep, [:L, :P]
|
68
|
+
it_should_behave_like "character cleaner", :keep, [:L, :S]
|
69
|
+
it_should_behave_like "character cleaner", :keep, [:L, :Z]
|
70
|
+
it_should_behave_like "character cleaner", :keep, [:L, :C]
|
71
|
+
it_should_behave_like "character cleaner", :keep, [:M, :N]
|
72
|
+
it_should_behave_like "character cleaner", :keep, [:M, :P]
|
73
|
+
it_should_behave_like "character cleaner", :keep, [:M, :S]
|
74
|
+
it_should_behave_like "character cleaner", :keep, [:M, :Z]
|
75
|
+
it_should_behave_like "character cleaner", :keep, [:M, :C]
|
76
|
+
it_should_behave_like "character cleaner", :keep, [:N, :P]
|
77
|
+
it_should_behave_like "character cleaner", :keep, [:N, :S]
|
78
|
+
it_should_behave_like "character cleaner", :keep, [:N, :Z]
|
79
|
+
it_should_behave_like "character cleaner", :keep, [:N, :C]
|
80
|
+
it_should_behave_like "character cleaner", :keep, [:P, :S]
|
81
|
+
it_should_behave_like "character cleaner", :keep, [:P, :Z]
|
82
|
+
it_should_behave_like "character cleaner", :keep, [:P, :C]
|
83
|
+
it_should_behave_like "character cleaner", :keep, [:S, :Z]
|
84
|
+
it_should_behave_like "character cleaner", :keep, [:S, :C]
|
85
|
+
it_should_behave_like "character cleaner", :keep, [:Z, :C]
|
86
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'normatron/filters/remove_filter'
|
5
|
+
|
6
|
+
describe Normatron::Filters::RemoveFilter do
|
7
|
+
it_should_behave_like "string processor"
|
8
|
+
it_should_behave_like "character cleaner", :remove, [:Graph]
|
9
|
+
it_should_behave_like "character cleaner", :remove, [:Punct]
|
10
|
+
it_should_behave_like "character cleaner", :remove, [:Upper]
|
11
|
+
it_should_behave_like "character cleaner", :remove, [:Word]
|
12
|
+
it_should_behave_like "character cleaner", :remove, [:Latin]
|
13
|
+
it_should_behave_like "character cleaner", :remove, [:L]
|
14
|
+
it_should_behave_like "character cleaner", :remove, [:M]
|
15
|
+
it_should_behave_like "character cleaner", :remove, [:N]
|
16
|
+
it_should_behave_like "character cleaner", :remove, [:P]
|
17
|
+
it_should_behave_like "character cleaner", :remove, [:S]
|
18
|
+
it_should_behave_like "character cleaner", :remove, [:Z]
|
19
|
+
it_should_behave_like "character cleaner", :remove, [:C]
|
20
|
+
it_should_behave_like "character cleaner", :remove, [:Graph, :Punct]
|
21
|
+
it_should_behave_like "character cleaner", :remove, [:Graph, :Upper]
|
22
|
+
it_should_behave_like "character cleaner", :remove, [:Graph, :Word]
|
23
|
+
it_should_behave_like "character cleaner", :remove, [:Graph, :Latin]
|
24
|
+
it_should_behave_like "character cleaner", :remove, [:Graph, :L]
|
25
|
+
it_should_behave_like "character cleaner", :remove, [:Graph, :M]
|
26
|
+
it_should_behave_like "character cleaner", :remove, [:Graph, :N]
|
27
|
+
it_should_behave_like "character cleaner", :remove, [:Graph, :P]
|
28
|
+
it_should_behave_like "character cleaner", :remove, [:Graph, :S]
|
29
|
+
it_should_behave_like "character cleaner", :remove, [:Graph, :Z]
|
30
|
+
it_should_behave_like "character cleaner", :remove, [:Graph, :C]
|
31
|
+
it_should_behave_like "character cleaner", :remove, [:Punct, :Upper]
|
32
|
+
it_should_behave_like "character cleaner", :remove, [:Punct, :Word]
|
33
|
+
it_should_behave_like "character cleaner", :remove, [:Punct, :Latin]
|
34
|
+
it_should_behave_like "character cleaner", :remove, [:Punct, :L]
|
35
|
+
it_should_behave_like "character cleaner", :remove, [:Punct, :M]
|
36
|
+
it_should_behave_like "character cleaner", :remove, [:Punct, :N]
|
37
|
+
it_should_behave_like "character cleaner", :remove, [:Punct, :P]
|
38
|
+
it_should_behave_like "character cleaner", :remove, [:Punct, :S]
|
39
|
+
it_should_behave_like "character cleaner", :remove, [:Punct, :Z]
|
40
|
+
it_should_behave_like "character cleaner", :remove, [:Punct, :C]
|
41
|
+
it_should_behave_like "character cleaner", :remove, [:Upper, :Word]
|
42
|
+
it_should_behave_like "character cleaner", :remove, [:Upper, :Latin]
|
43
|
+
it_should_behave_like "character cleaner", :remove, [:Upper, :L]
|
44
|
+
it_should_behave_like "character cleaner", :remove, [:Upper, :M]
|
45
|
+
it_should_behave_like "character cleaner", :remove, [:Upper, :N]
|
46
|
+
it_should_behave_like "character cleaner", :remove, [:Upper, :P]
|
47
|
+
it_should_behave_like "character cleaner", :remove, [:Upper, :S]
|
48
|
+
it_should_behave_like "character cleaner", :remove, [:Upper, :Z]
|
49
|
+
it_should_behave_like "character cleaner", :remove, [:Upper, :C]
|
50
|
+
it_should_behave_like "character cleaner", :remove, [:Word, :Latin]
|
51
|
+
it_should_behave_like "character cleaner", :remove, [:Word, :L]
|
52
|
+
it_should_behave_like "character cleaner", :remove, [:Word, :M]
|
53
|
+
it_should_behave_like "character cleaner", :remove, [:Word, :N]
|
54
|
+
it_should_behave_like "character cleaner", :remove, [:Word, :P]
|
55
|
+
it_should_behave_like "character cleaner", :remove, [:Word, :S]
|
56
|
+
it_should_behave_like "character cleaner", :remove, [:Word, :Z]
|
57
|
+
it_should_behave_like "character cleaner", :remove, [:Word, :C]
|
58
|
+
it_should_behave_like "character cleaner", :remove, [:Latin, :L]
|
59
|
+
it_should_behave_like "character cleaner", :remove, [:Latin, :M]
|
60
|
+
it_should_behave_like "character cleaner", :remove, [:Latin, :N]
|
61
|
+
it_should_behave_like "character cleaner", :remove, [:Latin, :P]
|
62
|
+
it_should_behave_like "character cleaner", :remove, [:Latin, :S]
|
63
|
+
it_should_behave_like "character cleaner", :remove, [:Latin, :Z]
|
64
|
+
it_should_behave_like "character cleaner", :remove, [:Latin, :C]
|
65
|
+
it_should_behave_like "character cleaner", :remove, [:L, :M]
|
66
|
+
it_should_behave_like "character cleaner", :remove, [:L, :N]
|
67
|
+
it_should_behave_like "character cleaner", :remove, [:L, :P]
|
68
|
+
it_should_behave_like "character cleaner", :remove, [:L, :S]
|
69
|
+
it_should_behave_like "character cleaner", :remove, [:L, :Z]
|
70
|
+
it_should_behave_like "character cleaner", :remove, [:L, :C]
|
71
|
+
it_should_behave_like "character cleaner", :remove, [:M, :N]
|
72
|
+
it_should_behave_like "character cleaner", :remove, [:M, :P]
|
73
|
+
it_should_behave_like "character cleaner", :remove, [:M, :S]
|
74
|
+
it_should_behave_like "character cleaner", :remove, [:M, :Z]
|
75
|
+
it_should_behave_like "character cleaner", :remove, [:M, :C]
|
76
|
+
it_should_behave_like "character cleaner", :remove, [:N, :P]
|
77
|
+
it_should_behave_like "character cleaner", :remove, [:N, :S]
|
78
|
+
it_should_behave_like "character cleaner", :remove, [:N, :Z]
|
79
|
+
it_should_behave_like "character cleaner", :remove, [:N, :C]
|
80
|
+
it_should_behave_like "character cleaner", :remove, [:P, :S]
|
81
|
+
it_should_behave_like "character cleaner", :remove, [:P, :Z]
|
82
|
+
it_should_behave_like "character cleaner", :remove, [:P, :C]
|
83
|
+
it_should_behave_like "character cleaner", :remove, [:S, :Z]
|
84
|
+
it_should_behave_like "character cleaner", :remove, [:S, :C]
|
85
|
+
it_should_behave_like "character cleaner", :remove, [:Z, :C]
|
86
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'normatron/filters/squeeze_filter'
|
5
|
+
|
6
|
+
describe Normatron::Filters::SqueezeFilter do
|
7
|
+
it_should_behave_like "string processor"
|
8
|
+
it_should_behave_like "evaluable filter", ["1 22 333 4444 " ], "1 2 3 4 "
|
9
|
+
it_should_behave_like "evaluable filter", ["1 22 333 4444 ", "2-3 "], "1 2 3 4444 "
|
10
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'normatron/filters/squish_filter'
|
5
|
+
|
6
|
+
describe Normatron::Filters::SquishFilter do
|
7
|
+
it_should_behave_like "string processor"
|
8
|
+
it_should_behave_like "evaluable filter", [" Friday 05 October 2012 " ], "Friday 05 October 2012"
|
9
|
+
it_should_behave_like "evaluable filter", ["Friday 05 October 2012" ], "Friday 05 October 2012"
|
10
|
+
it_should_behave_like "evaluable filter", ["Friday \n05 \nOctober \n2012" ], "Friday 05 October 2012"
|
11
|
+
it_should_behave_like "evaluable filter", [" Friday 05 \nOctober 2012 "], "Friday 05 October 2012"
|
12
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'normatron/filters/strip_filter'
|
5
|
+
|
6
|
+
describe Normatron::Filters::StripFilter do
|
7
|
+
it_should_behave_like "string processor"
|
8
|
+
it_should_behave_like "evaluable filter", [" to anywhere " ], "to anywhere"
|
9
|
+
it_should_behave_like "evaluable filter", [" to anywhere ", :L ], "to anywhere "
|
10
|
+
it_should_behave_like "evaluable filter", [" to anywhere ", :R ], " to anywhere"
|
11
|
+
it_should_behave_like "evaluable filter", [" to anywhere ", :LR], "to anywhere"
|
12
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'normatron/filters/swapcase_filter'
|
5
|
+
|
6
|
+
describe Normatron::Filters::SwapcaseFilter do
|
7
|
+
it_should_behave_like "string processor"
|
8
|
+
it_should_behave_like "evaluable filter", ["caçador"], "CAÇADOR"
|
9
|
+
it_should_behave_like "evaluable filter", ["CAÇADOR"], "caçador"
|
10
|
+
it_should_behave_like "evaluable filter", ["CaÇaDoR"], "cAçAdOr"
|
11
|
+
it_should_behave_like "evaluable filter", ["cAçAdOr"], "CaÇaDoR"
|
12
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'normatron/filters/titleize_filter'
|
5
|
+
|
6
|
+
describe Normatron::Filters::TitleizeFilter do
|
7
|
+
it_should_behave_like "string processor"
|
8
|
+
it_should_behave_like "evaluable filter", ["04. until it sleeps" ], "04. Until It Sleeps"
|
9
|
+
it_should_behave_like "evaluable filter", ["04. UNTIL IT SLEEPS" ], "04. Until It Sleeps"
|
10
|
+
it_should_behave_like "evaluable filter", ["quem é o dono deste sofá?"], "Quem É O Dono Deste Sofá?"
|
11
|
+
it_should_behave_like "evaluable filter", ["QUEM É O DONO DESTE SOFÁ?"], "Quem É O Dono Deste Sofá?"
|
12
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'normatron/filters/underscore_filter'
|
5
|
+
|
6
|
+
describe Normatron::Filters::UnderscoreFilter do
|
7
|
+
it_should_behave_like "string processor"
|
8
|
+
it_should_behave_like "evaluable filter", ["ActiveRecord::Errors" ], "active_record/errors"
|
9
|
+
it_should_behave_like "evaluable filter", ["DadosHistóricos::Período::Empresa"], "dados_históricos/período/empresa"
|
10
|
+
it_should_behave_like "evaluable filter", ["ÍmparPar::NorteSul" ], "ímpar_par/norte_sul"
|
11
|
+
|
12
|
+
context "should affect acronyms" do
|
13
|
+
let(:inflections) { ActiveSupport::Inflector::Inflections.instance }
|
14
|
+
|
15
|
+
before(:all) do
|
16
|
+
inflections.acronym 'docType'
|
17
|
+
end
|
18
|
+
|
19
|
+
after(:all) do
|
20
|
+
inflections.acronyms.delete("doctype")
|
21
|
+
end
|
22
|
+
|
23
|
+
it_should_behave_like "evaluable filter", ["docTypeStop::RunSSL::Xml::MixHTTP" ], "doctype_stop/run_ssl/xml/mix_http"
|
24
|
+
it_should_behave_like "evaluable filter", ["DocTypeStop::RunSSL::Xml::MixHTTP" ], "doc_type_stop/run_ssl/xml/mix_http"
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'normatron/filters/upcase_filter'
|
5
|
+
|
6
|
+
describe Normatron::Filters::UpcaseFilter do
|
7
|
+
it_should_behave_like "string processor"
|
8
|
+
it_should_behave_like "evaluable filter", ["caçador"], "CAÇADOR"
|
9
|
+
it_should_behave_like "evaluable filter", ["CAÇADOR"], "CAÇADOR"
|
10
|
+
end
|
data/spec/normatron_spec.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
require
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'normatron'
|
2
3
|
|
3
4
|
describe Normatron do
|
4
5
|
|
5
6
|
specify do
|
6
7
|
described_class.should respond_to :configuration
|
7
|
-
described_class.should respond_to :configure
|
8
8
|
described_class.should respond_to :setup
|
9
9
|
described_class.should respond_to :config
|
10
10
|
end
|
@@ -15,4 +15,30 @@ describe Normatron do
|
|
15
15
|
it { config.should be_an_instance_of Normatron::Configuration }
|
16
16
|
it { expect { |b| Normatron.setup(&b) }.to yield_control }
|
17
17
|
end
|
18
|
+
|
19
|
+
describe :build_hash do
|
20
|
+
context "with single filter hash" do
|
21
|
+
it { described_class.build_hash( :a ).should == { a: nil } }
|
22
|
+
it { described_class.build_hash( [:a] ).should == { a: nil } }
|
23
|
+
it { described_class.build_hash( [[:a]] ).should == { a: nil } }
|
24
|
+
it { described_class.build_hash( [[:a, :b]] ).should == { a: [:b] } }
|
25
|
+
it { described_class.build_hash( {:a => :b} ).should == { a: [:b] } }
|
26
|
+
it { described_class.build_hash( {:a => [:b]} ).should == { a: [:b] } }
|
27
|
+
it { described_class.build_hash( {:a => [[:b]]} ).should == { a: [[:b]] } }
|
28
|
+
it { described_class.build_hash( [{:a => [[:b]]}] ).should == { a: [[:b]] } }
|
29
|
+
end
|
30
|
+
|
31
|
+
context "with double filters hash" do
|
32
|
+
it { described_class.build_hash( :a, :b ).should == { a: nil, b: nil } }
|
33
|
+
it { described_class.build_hash( [:a, :b] ).should == { a: nil, b: nil } }
|
34
|
+
it { described_class.build_hash( [:a, :b => [:c, :d]] ).should == { a: nil, b: [:c, :d] } }
|
35
|
+
it { described_class.build_hash( [:a, [:b, :c, :d]] ).should == { a: nil, b: [:c, :d] } }
|
36
|
+
end
|
37
|
+
|
38
|
+
context "with trible filters hash" do
|
39
|
+
it { described_class.build_hash( [:a, [:b, :c, :d], { e: [:f, :g] }] ).should == { a: nil, b: [:c, :d], e: [:f, :g] } }
|
40
|
+
it { described_class.build_hash( [:a, { b: [:c, :d] }, { e: [:f, :g] }] ).should == { a: nil, b: [:c, :d], e: [:f, :g] } }
|
41
|
+
it { described_class.build_hash( [:a, { b: [:c, :d], e: [:f, :g] }] ).should == { a: nil, b: [:c, :d], e: [:f, :g] } }
|
42
|
+
end
|
43
|
+
end
|
18
44
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,6 +1,39 @@
|
|
1
|
-
|
2
|
-
require "normatron"
|
1
|
+
# encoding: UTF-8
|
3
2
|
|
4
|
-
|
3
|
+
require "active_record"
|
5
4
|
Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each { |f| require f }
|
6
|
-
|
5
|
+
|
6
|
+
shared_examples "evaluable filter" do |args, expected|
|
7
|
+
if args.size == 1
|
8
|
+
it { subject.send(:evaluate, args[0]).should_not equal expected }
|
9
|
+
it { subject.send(:evaluate, args[0]).should eq expected }
|
10
|
+
it { subject.send(:evaluate, args[0]).should be_a String }
|
11
|
+
else
|
12
|
+
it { subject.send(:evaluate, args[0], *args[1..-1]).should_not equal expected }
|
13
|
+
it { subject.send(:evaluate, args[0], *args[1..-1]).should eq expected }
|
14
|
+
it { subject.send(:evaluate, args[0], *args[1..-1]).should be_a String }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
shared_examples "string processor" do |*args|
|
19
|
+
let(:number) { rand(1000) }
|
20
|
+
|
21
|
+
if args.any?
|
22
|
+
it { subject.send(:evaluate, number, args).should eq number }
|
23
|
+
it { subject.send(:evaluate, nil, args).should be_nil }
|
24
|
+
else
|
25
|
+
it { subject.send(:evaluate, number).should eq number }
|
26
|
+
it { subject.send(:evaluate, nil).should be_nil }
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
shared_examples "character cleaner" do |action, properties|
|
31
|
+
let(:word) {"ᰄ긚 ᧔瑤л꽥๏ ѨDꨥ\aՇ謬ꗀᶆᵆ쳻ῼἬ鿃ႍꥈᤫ꙲⅟౮ⅰ⅘༌_゠⟦〉⸠›⸓⌟⅂₧௹¨⣭ \u2028\u2029\u008C\u0011\uA7E5" }
|
32
|
+
let(:regex) do
|
33
|
+
construct = properties.map { |p| "\\p{#{p.to_s}}" } * ""
|
34
|
+
construct = "[#{'^' if action == :keep}#{construct}]"
|
35
|
+
Regexp.new(construct.force_encoding "UTF-8")
|
36
|
+
end
|
37
|
+
|
38
|
+
it { subject.evaluate(word, properties).should eq word.gsub(regex, '') }
|
39
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
ActiveRecord::Base.establish_connection :adapter => "sqlite3", :database => ":memory:"
|
2
|
+
|
3
|
+
ActiveRecord::Schema.define(:version => 0) do
|
4
|
+
create_table :users do |t|
|
5
|
+
t.string :login
|
6
|
+
t.string :password
|
7
|
+
t.string :email
|
8
|
+
t.string :phone
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
class User < ActiveRecord::Base
|
13
|
+
attr_accessible :login, :password, :email, :phone
|
14
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: normatron
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
@@ -75,7 +75,7 @@ dependencies:
|
|
75
75
|
- - ! '>='
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: 2.10.0
|
78
|
-
description: ! " Normatron is
|
78
|
+
description: ! " Normatron is a Ruby On Rails plugin that perform attribute normalizations
|
79
79
|
for ActiveRecord objects.\n With it you can normalize attributes to the desired
|
80
80
|
format before saving them in the database.\n This gem inhibits the work of having
|
81
81
|
to override attributes or create a specific method to perform most of the normalizations.\n"
|
@@ -85,20 +85,56 @@ executables: []
|
|
85
85
|
extensions: []
|
86
86
|
extra_rdoc_files: []
|
87
87
|
files:
|
88
|
+
- lib/generators/normatron/templates/normatron.rb
|
89
|
+
- lib/generators/normatron/install_generator.rb
|
88
90
|
- lib/normatron/filters.rb
|
89
91
|
- lib/normatron/configuration.rb
|
92
|
+
- lib/normatron/filters/squeeze_filter.rb
|
93
|
+
- lib/normatron/filters/swapcase_filter.rb
|
94
|
+
- lib/normatron/filters/keep_filter.rb
|
95
|
+
- lib/normatron/filters/underscore_filter.rb
|
96
|
+
- lib/normatron/filters/camelize_filter.rb
|
97
|
+
- lib/normatron/filters/titleize_filter.rb
|
98
|
+
- lib/normatron/filters/upcase_filter.rb
|
99
|
+
- lib/normatron/filters/capitalize_filter.rb
|
100
|
+
- lib/normatron/filters/dump_filter.rb
|
101
|
+
- lib/normatron/filters/remove_filter.rb
|
102
|
+
- lib/normatron/filters/strip_filter.rb
|
103
|
+
- lib/normatron/filters/blank_filter.rb
|
104
|
+
- lib/normatron/filters/squish_filter.rb
|
105
|
+
- lib/normatron/filters/dasherize_filter.rb
|
106
|
+
- lib/normatron/filters/helpers.rb
|
107
|
+
- lib/normatron/filters/downcase_filter.rb
|
108
|
+
- lib/normatron/filters/chomp_filter.rb
|
109
|
+
- lib/normatron/extensions.rb
|
110
|
+
- lib/normatron/version.rb
|
90
111
|
- lib/normatron/extensions/active_record.rb
|
91
112
|
- lib/normatron.rb
|
92
113
|
- MIT-LICENSE
|
93
114
|
- Rakefile
|
94
115
|
- README.textile
|
95
116
|
- spec/spec_helper.rb
|
96
|
-
- spec/support/
|
97
|
-
- spec/support/
|
98
|
-
- spec/filters_spec.rb
|
117
|
+
- spec/support/user_model.rb
|
118
|
+
- spec/support/my_filters.rb
|
99
119
|
- spec/normatron_spec.rb
|
100
|
-
- spec/
|
101
|
-
- spec/
|
120
|
+
- spec/normatron/filters/downcase_filter_spec.rb
|
121
|
+
- spec/normatron/filters/dump_filter_spec.rb
|
122
|
+
- spec/normatron/filters/camelize_filter_spec.rb
|
123
|
+
- spec/normatron/filters/chomp_filter_spec.rb
|
124
|
+
- spec/normatron/filters/capitalize_filter_spec.rb
|
125
|
+
- spec/normatron/filters/upcase_filter_spec.rb
|
126
|
+
- spec/normatron/filters/strip_filter_spec.rb
|
127
|
+
- spec/normatron/filters/underscore_filter_spec.rb
|
128
|
+
- spec/normatron/filters/keep_filter_spec.rb
|
129
|
+
- spec/normatron/filters/squish_filter_spec.rb
|
130
|
+
- spec/normatron/filters/remove_filter_spec.rb
|
131
|
+
- spec/normatron/filters/blank_filter_spec.rb
|
132
|
+
- spec/normatron/filters/squeeze_filter_spec.rb
|
133
|
+
- spec/normatron/filters/swapcase_filter_spec.rb
|
134
|
+
- spec/normatron/filters/dasherize_filter_spec.rb
|
135
|
+
- spec/normatron/filters/titleize_filter_spec.rb
|
136
|
+
- spec/normatron/configuration_spec.rb
|
137
|
+
- spec/normatron/extensions/active_record_spec.rb
|
102
138
|
homepage: https://github.com/fernandors87/normatron
|
103
139
|
licenses: []
|
104
140
|
post_install_message:
|
@@ -125,10 +161,25 @@ specification_version: 3
|
|
125
161
|
summary: Normalize attributes for ActiveRecord objects.
|
126
162
|
test_files:
|
127
163
|
- spec/spec_helper.rb
|
128
|
-
- spec/support/
|
129
|
-
- spec/support/
|
130
|
-
- spec/filters_spec.rb
|
164
|
+
- spec/support/user_model.rb
|
165
|
+
- spec/support/my_filters.rb
|
131
166
|
- spec/normatron_spec.rb
|
132
|
-
- spec/
|
133
|
-
- spec/
|
167
|
+
- spec/normatron/filters/downcase_filter_spec.rb
|
168
|
+
- spec/normatron/filters/dump_filter_spec.rb
|
169
|
+
- spec/normatron/filters/camelize_filter_spec.rb
|
170
|
+
- spec/normatron/filters/chomp_filter_spec.rb
|
171
|
+
- spec/normatron/filters/capitalize_filter_spec.rb
|
172
|
+
- spec/normatron/filters/upcase_filter_spec.rb
|
173
|
+
- spec/normatron/filters/strip_filter_spec.rb
|
174
|
+
- spec/normatron/filters/underscore_filter_spec.rb
|
175
|
+
- spec/normatron/filters/keep_filter_spec.rb
|
176
|
+
- spec/normatron/filters/squish_filter_spec.rb
|
177
|
+
- spec/normatron/filters/remove_filter_spec.rb
|
178
|
+
- spec/normatron/filters/blank_filter_spec.rb
|
179
|
+
- spec/normatron/filters/squeeze_filter_spec.rb
|
180
|
+
- spec/normatron/filters/swapcase_filter_spec.rb
|
181
|
+
- spec/normatron/filters/dasherize_filter_spec.rb
|
182
|
+
- spec/normatron/filters/titleize_filter_spec.rb
|
183
|
+
- spec/normatron/configuration_spec.rb
|
184
|
+
- spec/normatron/extensions/active_record_spec.rb
|
134
185
|
has_rdoc:
|