mme_tools 0.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 +7 -0
- data/.document +5 -0
- data/Gemfile +16 -0
- data/Gemfile.lock +73 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +47 -0
- data/Rakefile +53 -0
- data/examples/demo_args_proc.rb +26 -0
- data/examples/demo_config.rb +53 -0
- data/examples/demo_enumerable.rb +67 -0
- data/examples/demo_print_debug.rb +35 -0
- data/examples/demo_webparse.rb +22 -0
- data/examples/tmp/config.yml +10 -0
- data/lib/mme_tools.rb +18 -0
- data/lib/mme_tools/args_proc.rb +26 -0
- data/lib/mme_tools/concurrent.rb +52 -0
- data/lib/mme_tools/config.rb +121 -0
- data/lib/mme_tools/debug.rb +29 -0
- data/lib/mme_tools/enumerable.rb +88 -0
- data/lib/mme_tools/version.rb +16 -0
- data/lib/mme_tools/webparse.rb +109 -0
- data/mme_tools.gemspec +82 -0
- data/test/test_config.rb +96 -0
- data/test/test_enumerable.rb +32 -0
- data/test/test_webparse.rb +96 -0
- metadata +167 -0
data/mme_tools.gemspec
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
# stub: mme_tools 0.1.0 ruby lib
|
6
|
+
|
7
|
+
Gem::Specification.new do |s|
|
8
|
+
s.name = "mme_tools"
|
9
|
+
s.version = "0.1.0"
|
10
|
+
|
11
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
|
+
s.require_paths = ["lib"]
|
13
|
+
s.authors = ["Marcel Massana"]
|
14
|
+
s.date = "2014-04-03"
|
15
|
+
s.description = "generic classes and methods that may be used everywhere"
|
16
|
+
s.email = "xaxaupua@gmail.com"
|
17
|
+
s.extra_rdoc_files = [
|
18
|
+
"LICENSE.txt",
|
19
|
+
"README.rdoc"
|
20
|
+
]
|
21
|
+
s.files = [
|
22
|
+
".document",
|
23
|
+
"Gemfile",
|
24
|
+
"Gemfile.lock",
|
25
|
+
"LICENSE.txt",
|
26
|
+
"README.rdoc",
|
27
|
+
"Rakefile",
|
28
|
+
"examples/demo_args_proc.rb",
|
29
|
+
"examples/demo_config.rb",
|
30
|
+
"examples/demo_enumerable.rb",
|
31
|
+
"examples/demo_print_debug.rb",
|
32
|
+
"examples/demo_webparse.rb",
|
33
|
+
"examples/tmp/config.yml",
|
34
|
+
"lib/mme_tools.rb",
|
35
|
+
"lib/mme_tools/args_proc.rb",
|
36
|
+
"lib/mme_tools/concurrent.rb",
|
37
|
+
"lib/mme_tools/config.rb",
|
38
|
+
"lib/mme_tools/debug.rb",
|
39
|
+
"lib/mme_tools/enumerable.rb",
|
40
|
+
"lib/mme_tools/version.rb",
|
41
|
+
"lib/mme_tools/webparse.rb",
|
42
|
+
"mme_tools.gemspec",
|
43
|
+
"test/test_config.rb",
|
44
|
+
"test/test_enumerable.rb",
|
45
|
+
"test/test_webparse.rb"
|
46
|
+
]
|
47
|
+
s.homepage = "http://github.com/syborg/mme_tools"
|
48
|
+
s.licenses = ["MIT"]
|
49
|
+
s.rubygems_version = "2.2.1"
|
50
|
+
s.summary = "various homeless methods"
|
51
|
+
|
52
|
+
if s.respond_to? :specification_version then
|
53
|
+
s.specification_version = 4
|
54
|
+
|
55
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
56
|
+
s.add_runtime_dependency(%q<unicode>, [">= 0"])
|
57
|
+
s.add_runtime_dependency(%q<iconv>, [">= 0"])
|
58
|
+
s.add_development_dependency(%q<bundler>, [">= 0"])
|
59
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
60
|
+
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
61
|
+
s.add_development_dependency(%q<rr>, [">= 0"])
|
62
|
+
s.add_development_dependency(%q<minitest>, [">= 5.0.0"])
|
63
|
+
else
|
64
|
+
s.add_dependency(%q<unicode>, [">= 0"])
|
65
|
+
s.add_dependency(%q<iconv>, [">= 0"])
|
66
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
67
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
68
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
69
|
+
s.add_dependency(%q<rr>, [">= 0"])
|
70
|
+
s.add_dependency(%q<minitest>, [">= 5.0.0"])
|
71
|
+
end
|
72
|
+
else
|
73
|
+
s.add_dependency(%q<unicode>, [">= 0"])
|
74
|
+
s.add_dependency(%q<iconv>, [">= 0"])
|
75
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
76
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
77
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
78
|
+
s.add_dependency(%q<rr>, [">= 0"])
|
79
|
+
s.add_dependency(%q<minitest>, [">= 5.0.0"])
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
data/test/test_config.rb
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
require '../lib/mme_tools'
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'minitest/autorun'
|
5
|
+
require 'rr'
|
6
|
+
|
7
|
+
|
8
|
+
class TC_Config < Minitest::Test
|
9
|
+
|
10
|
+
# include RR::Adapters::TestUnit # rr's suite mock/stub adapters. Not necessary to include as of rr
|
11
|
+
|
12
|
+
def setup
|
13
|
+
@hsh = {
|
14
|
+
:param1 => 1,
|
15
|
+
:param2 => [2,2],
|
16
|
+
:param3 => {
|
17
|
+
:subparam1 => 'A',
|
18
|
+
:subparam2 => {
|
19
|
+
:subsubparam1 => 'END'
|
20
|
+
}
|
21
|
+
}
|
22
|
+
}
|
23
|
+
@c = MMETools::Config.new @hsh
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_first_level_parameter_basic
|
27
|
+
assert_equal 1, @c.param1
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_first_level_parameter_complex
|
31
|
+
assert_equal [2,2] , @c.param2
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_second_level_parameter
|
35
|
+
assert_equal 'A', @c.param3.subparam1
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_third_level_parameter
|
39
|
+
assert_equal 'END', @c.param3.subparam2.subsubparam1
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_inexistent_parameter
|
43
|
+
assert_nil @c.param_that_doesnt_exist
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_update_existent_parameter_with_hash
|
47
|
+
@c.update! :param2 => 2
|
48
|
+
assert_equal 2, @c.param2
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_update_new_parameter_with_hash
|
52
|
+
@c.update! :param4 => 4
|
53
|
+
assert_equal 4, @c.param4
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_update_existent_parameter_with_another_config
|
57
|
+
another = MMETools::Config.new :param2 => 2
|
58
|
+
@c.update! another
|
59
|
+
assert_equal 2, @c.param2
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_update_new_parameter_with_another_config
|
63
|
+
another = MMETools::Config.new :param4 => 4
|
64
|
+
@c.update! another
|
65
|
+
assert_equal 4, @c.param4
|
66
|
+
end
|
67
|
+
|
68
|
+
def test_update_argument_error
|
69
|
+
assert_raises(ArgumentError) {@c.update!([1,2])}
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_create_with_block
|
73
|
+
cfg = MMETools::Config.new do |c|
|
74
|
+
c.param1 = 1
|
75
|
+
c.param2 = [2,2]
|
76
|
+
c.param3 = {
|
77
|
+
:subparam1 => 'A',
|
78
|
+
:subparam2 => {
|
79
|
+
:subsubparam1 => 'END'
|
80
|
+
}
|
81
|
+
}
|
82
|
+
end
|
83
|
+
assert_equal @hsh, cfg.to_hash
|
84
|
+
end
|
85
|
+
|
86
|
+
def test_create_with_load
|
87
|
+
stub(YAML).load_file('dummy_config') { @hsh.dup }
|
88
|
+
cfg = MMETools::Config.load 'dummy_config'
|
89
|
+
assert_equal @hsh, cfg.to_hash
|
90
|
+
end
|
91
|
+
|
92
|
+
def test_load_file_error
|
93
|
+
assert_raises(Errno::ENOENT) {@c.load("I_dont_exist.yml")}
|
94
|
+
end
|
95
|
+
|
96
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require '../lib/mme_tools'
|
3
|
+
|
4
|
+
class TC_Enumerable < Minitest::Test
|
5
|
+
|
6
|
+
def setup
|
7
|
+
extend MMETools::Enumerable
|
8
|
+
@a=(1..12).to_a
|
9
|
+
@b=("A".."M").to_a
|
10
|
+
@c=%w{tantmateix adhuc nogensmenys urgell pocassolta carrincló bajanada casundena Massalcoreig}
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_compose
|
14
|
+
assert_equal [2,"B","adhuc"], compose(@a,@b,@c)[1]
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_classify
|
18
|
+
assert_equal "Massalcoreig", classify(@c) {|v| v.length}[12][0]
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_even_values
|
22
|
+
assert_equal [1,3,5,7,9,11], even_values(@a)
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_odd_values
|
26
|
+
assert_equal [2,4,6,8,10,12], odd_values(@a)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_compose_what_has_been_decomposed
|
30
|
+
assert_equal @c, compose(even_values(@c), odd_values(@c)).flatten.compact
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,96 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'minitest/autorun'
|
4
|
+
require '../lib/mme_tools'
|
5
|
+
require 'date'
|
6
|
+
|
7
|
+
#$KCODE = 'u'
|
8
|
+
|
9
|
+
class TC_Webparse < Minitest::Test
|
10
|
+
|
11
|
+
include MMETools::Webparse
|
12
|
+
|
13
|
+
def setup
|
14
|
+
extend MMETools::Webparse
|
15
|
+
@dirty_text1 = "\xC2\xA0Geolog\xC3\xADa,\n \n \t \xC2\xA0 \t Prevenci\xC3\xB3,\tCaçador, Sàtrapa"
|
16
|
+
@myself = "Marcel Massana Esteve"
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_clear_uri_javascript
|
20
|
+
assert_equal '/test/docs/letters/PT.DOC', clear_uri("javascript:openDoc('/test/docs/letters/PT.DOC')")
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_clear_uri_normal
|
24
|
+
assert_equal "http://www.test.tst/test", clear_uri("http://www.test.tst/test")
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_clear_string_default
|
28
|
+
assert_equal 'Geología, Prevenció, Caçador, Sàtrapa', clear_string(@dirty_text1)
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_clear_string_ascii
|
32
|
+
assert_equal 'Geologia, Prevencio, Cacador, Satrapa', clear_string(@dirty_text1, :encoding => 'ASCII')
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_asciify
|
36
|
+
assert_equal " Geologia,\n \n \t \t Prevencio,\tCacador, Satrapa", asciify(@dirty_text1)
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_acronymize
|
40
|
+
assert_equal "GPCS", acronymize(@dirty_text1)
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_acronymize_acronim
|
44
|
+
txt = "ANMS"
|
45
|
+
assert_equal "A", acronymize(txt)
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_acronymize_with_unwanted_words_and_chars
|
49
|
+
txt = "partit' socialista de :; - catalunya"
|
50
|
+
assert_equal "PSC", acronymize(txt)
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_acronymize_with_only_single_letters_and_unwanted_words
|
54
|
+
txt = "a b de c"
|
55
|
+
assert_equal "ABDC", acronymize(txt)
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_acronymize_myself
|
59
|
+
assert_equal "MME", acronymize(@myself)
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_shorten
|
63
|
+
assert_equal "GePrCaSa", shorten(@dirty_text1)
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_shorten_string_with_short_words
|
67
|
+
txt = "a b de c"
|
68
|
+
assert_equal "ABDeC", shorten(txt)
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_shorten_myself
|
72
|
+
assert_equal "MaMaEs", shorten(@myself)
|
73
|
+
end
|
74
|
+
|
75
|
+
def test_datify_yy_lt_69
|
76
|
+
res = DateTime.new(2011,12,4)
|
77
|
+
assert_equal res, datify("4/12/11")
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_datify_yy_gt_69
|
81
|
+
res = DateTime.new(1971,12,4)
|
82
|
+
assert_equal res, datify("4/12/71")
|
83
|
+
end
|
84
|
+
|
85
|
+
def test_datify_dirty_with_hour
|
86
|
+
res = DateTime.new(1977,6,1,13,33)
|
87
|
+
assert_equal res, datify("sklñ 1-6/1977 - - ,;@ 13:33 oO")
|
88
|
+
end
|
89
|
+
|
90
|
+
def test_datify_dirty_with_hour_after_other_words
|
91
|
+
res = DateTime.new(1977,6,1)
|
92
|
+
assert_equal res, datify("sklñ 1-6/1977 -hola - ,;@ 13:33 oO")
|
93
|
+
end
|
94
|
+
|
95
|
+
|
96
|
+
end
|
metadata
ADDED
@@ -0,0 +1,167 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mme_tools
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Marcel Massana
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-04-03 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: unicode
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: iconv
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: jeweler
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: simplecov
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rr
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: minitest
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 5.0.0
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 5.0.0
|
111
|
+
description: generic classes and methods that may be used everywhere
|
112
|
+
email: xaxaupua@gmail.com
|
113
|
+
executables: []
|
114
|
+
extensions: []
|
115
|
+
extra_rdoc_files:
|
116
|
+
- LICENSE.txt
|
117
|
+
- README.rdoc
|
118
|
+
files:
|
119
|
+
- .document
|
120
|
+
- Gemfile
|
121
|
+
- Gemfile.lock
|
122
|
+
- LICENSE.txt
|
123
|
+
- README.rdoc
|
124
|
+
- Rakefile
|
125
|
+
- examples/demo_args_proc.rb
|
126
|
+
- examples/demo_config.rb
|
127
|
+
- examples/demo_enumerable.rb
|
128
|
+
- examples/demo_print_debug.rb
|
129
|
+
- examples/demo_webparse.rb
|
130
|
+
- examples/tmp/config.yml
|
131
|
+
- lib/mme_tools.rb
|
132
|
+
- lib/mme_tools/args_proc.rb
|
133
|
+
- lib/mme_tools/concurrent.rb
|
134
|
+
- lib/mme_tools/config.rb
|
135
|
+
- lib/mme_tools/debug.rb
|
136
|
+
- lib/mme_tools/enumerable.rb
|
137
|
+
- lib/mme_tools/version.rb
|
138
|
+
- lib/mme_tools/webparse.rb
|
139
|
+
- mme_tools.gemspec
|
140
|
+
- test/test_config.rb
|
141
|
+
- test/test_enumerable.rb
|
142
|
+
- test/test_webparse.rb
|
143
|
+
homepage: http://github.com/syborg/mme_tools
|
144
|
+
licenses:
|
145
|
+
- MIT
|
146
|
+
metadata: {}
|
147
|
+
post_install_message:
|
148
|
+
rdoc_options: []
|
149
|
+
require_paths:
|
150
|
+
- lib
|
151
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
152
|
+
requirements:
|
153
|
+
- - '>='
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
version: '0'
|
156
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - '>='
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '0'
|
161
|
+
requirements: []
|
162
|
+
rubyforge_project:
|
163
|
+
rubygems_version: 2.2.1
|
164
|
+
signing_key:
|
165
|
+
specification_version: 4
|
166
|
+
summary: various homeless methods
|
167
|
+
test_files: []
|