core_extended 0.0.5 → 0.0.6

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/.gitignore CHANGED
@@ -15,3 +15,4 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
+ .idea/
@@ -0,0 +1,15 @@
1
+ A:
2
+ upcase: ÁÀÄÂÃÅĀĂǍ
3
+ downcase: áàäâãåāăǎ
4
+ E:
5
+ upcase: ÉÈËÊĒĔĖĚ
6
+ downcase: éèëêēĕėě
7
+ I:
8
+ upcase: ÍÌÏÎĨĬǏ
9
+ downcase: íìïîĩĭǐ
10
+ O:
11
+ upcase: ÓÒÖÔÕŌŎŐǑ
12
+ downcase: óòöôõōŏőǒ
13
+ U:
14
+ upcase: ÚÙÜÛŨŪŬŮŰǓ
15
+ downcase: úùüûũūŭůűǔ
@@ -0,0 +1,47 @@
1
+ ---
2
+ A: ĄΑΔΛ
3
+ B: ßɃΒ
4
+ C: ĆĈĊČϚ
5
+ D: ÐĎĐ
6
+ E: ĘƐЗŒΣΞ
7
+ F: ƑϜ
8
+ G: ĜĞĠĢƓǦ
9
+ H: ĤĦ
10
+ I: Įİ
11
+ J: Ĵ
12
+ K: ĶĸƘ
13
+ L: ĹĻĽĿŁ
14
+ N: ŃŅŇŊИ
15
+ O: ØƟƠΘΩ
16
+ P: ÞƤΡ
17
+ R: ŔŖŘЯƦ
18
+ S: ŚŜŞŠƧ
19
+ T: ŢŤŦГΓΤ
20
+ U: ŲƱ
21
+ W: Ŵ
22
+ X: Χ
23
+ Y: ÝŶЧ
24
+ Z: ŹŻŽ
25
+ a: ąæαδλ
26
+ b: Ƅƀƅβ
27
+ c: Ɔćĉċčɔϛ
28
+ d: ðďđ
29
+ e: Əęɛəзœɘςξ
30
+ f: ƒϝ
31
+ g: ĝğġģɠǧ
32
+ h: ĥħ
33
+ i: īį
34
+ j: ĵ
35
+ k: ķƙ
36
+ l: ĺļľŀł
37
+ n: ʼnńņňŋиȠƞ
38
+ o: øɵơθω
39
+ p: þƥρ
40
+ r: ŕŗřяʀ
41
+ s: śŝşšƨ
42
+ t: ţťŧгγτ
43
+ u: ųʊ
44
+ w: ŵ
45
+ x: ×χ
46
+ y: ÿýŷч
47
+ z: źżž
@@ -4,23 +4,25 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'core_extended/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "core_extended"
7
+ spec.name = 'core_extended'
8
8
  spec.version = CoreExtended::VERSION
9
- spec.authors = ["Gabriel Naiman"]
10
- spec.email = ["gabynaiman@gmail.com"]
9
+ spec.authors = ['Gabriel Naiman']
10
+ spec.email = ['gabynaiman@gmail.com']
11
11
  spec.description = 'Ruby core extensions'
12
12
  spec.summary = 'Ruby core extensions'
13
- spec.homepage = "https://github.com/gabynaiman/core_extended"
14
- spec.license = "MIT"
13
+ spec.homepage = 'https://github.com/gabynaiman/core_extended'
14
+ spec.license = 'MIT'
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
19
+ spec.require_paths = ['lib']
20
20
 
21
- spec.add_development_dependency "bundler", "~> 1.3"
22
- spec.add_development_dependency "rake"
23
- spec.add_development_dependency "minitest", "~> 4.7"
24
- spec.add_development_dependency "turn", "~> 0.9"
25
- spec.add_development_dependency "simplecov"
21
+ spec.add_development_dependency 'bundler', '~> 1.3'
22
+ spec.add_development_dependency 'rake'
23
+ spec.add_development_dependency 'minitest', '~> 4.7'
24
+ spec.add_development_dependency 'minitest-great_expectations'
25
+ spec.add_development_dependency 'turn', '~> 0.9'
26
+ spec.add_development_dependency 'simplecov'
27
+ spec.add_development_dependency 'json', '~> 1.7.7'
26
28
  end
data/lib/core_extended.rb CHANGED
@@ -1,6 +1,5 @@
1
- require 'core_extended/version'
2
- require 'core_extended/os'
3
- require 'core_extended/marshal'
4
- require 'core_extended/file'
5
- require 'core_extended/string'
1
+ require 'yaml'
2
+ require 'base64'
6
3
 
4
+ require 'core_extended/config_reader'
5
+ Dir.glob("#{File.dirname(__FILE__)}/core_extended/*.rb") { |f| require f }
@@ -0,0 +1,7 @@
1
+ class Array
2
+
3
+ def page(number, size=nil)
4
+ Paginator.new self, page: number, size: size
5
+ end
6
+
7
+ end
@@ -0,0 +1,17 @@
1
+ class ConfigReader
2
+
3
+ CONFIG_PATH = File.expand_path(File.join(File.dirname(__FILE__), '../../config'))
4
+
5
+ def self.yaml(filename)
6
+ YAML.load_file File.join(CONFIG_PATH, filename)
7
+ end
8
+
9
+ def self.similar_character_mapping
10
+ @similar_character_mapping ||= yaml('similar_character_mapping.yml').freeze
11
+ end
12
+
13
+ def self.accents_mapping
14
+ @accents_mapping ||= yaml('accents_mapping.yml').freeze
15
+ end
16
+
17
+ end
@@ -1,9 +1,9 @@
1
1
  class File
2
2
 
3
- if OS.windows? && RUBY_PLATFORM == 'java'
4
- def size
5
- lstat.size
6
- end
3
+ alias_method :__size__, :size
4
+ def size
5
+ return lstat.size if OS.windows? && Ruby.jruby?
6
+ __size__
7
7
  end
8
8
 
9
9
  end
@@ -0,0 +1,49 @@
1
+ class Hash
2
+
3
+ Inflector = Struct.new :method, :arguments
4
+
5
+ def self.inflectors
6
+ @inflectors ||= []
7
+ end
8
+
9
+ def self.inflect(method, *args)
10
+ inflectors << Inflector.new(method, args)
11
+ end
12
+
13
+ def self.inflections(key)
14
+ [key.to_s, key.to_s.to_sym].tap do |list|
15
+ inflectors.each do |i|
16
+ k = key.to_s.send i.method, *i.arguments
17
+ list.concat [k, k.to_sym]
18
+ end
19
+ end.uniq
20
+ end
21
+
22
+ def methods(*args)
23
+ keys.flat_map{ |k| self.class.inflections(k).map(&:to_sym) }.uniq.concat(super)
24
+ end
25
+
26
+ def respond_to?(method, *args)
27
+ super || methods.include?(method.to_sym)
28
+ end
29
+
30
+ def get(key)
31
+ indiferent_access = [key, key.to_s, key.to_s.to_sym].uniq
32
+
33
+ indiferent_access.each do |k|
34
+ return self[k] if key?(k)
35
+ end
36
+
37
+ Hash[keys.map{ |k| [k, self.class.inflections(k)] }].each do |k,v|
38
+ return self[k] if (v & indiferent_access).any?
39
+ end
40
+
41
+ nil
42
+ end
43
+
44
+ def method_missing(method, *args, &block)
45
+ return get(method) if respond_to?(method.to_sym)
46
+ super
47
+ end
48
+
49
+ end
@@ -1,5 +1,3 @@
1
- require 'base64'
2
-
3
1
  module Marshal
4
2
 
5
3
  def self.encode64(object)
@@ -0,0 +1,34 @@
1
+ class Paginator
2
+
3
+ include Enumerable
4
+
5
+ attr_reader :page, :size
6
+
7
+ def initialize(collection, options={})
8
+ @collection = collection
9
+ @page = options[:page] ? options[:page].to_i : 1
10
+ @size = options[:size] ? options[:size].to_i : 10
11
+ end
12
+
13
+ def each(&block)
14
+ from = size * (page - 1)
15
+ (@collection.slice(from, size) || []).each(&block)
16
+ end
17
+
18
+ def total
19
+ @collection.count
20
+ end
21
+
22
+ def pages
23
+ (total / size.to_f).ceil
24
+ end
25
+
26
+ def first?
27
+ page == 1
28
+ end
29
+
30
+ def last?
31
+ page == pages
32
+ end
33
+
34
+ end
@@ -0,0 +1,23 @@
1
+ class Ruby
2
+
3
+ def self.engine
4
+ RUBY_ENGINE
5
+ end
6
+
7
+ def self.platform
8
+ RUBY_PLATFORM
9
+ end
10
+
11
+ def self.version
12
+ RUBY_VERSION
13
+ end
14
+
15
+ def self.mri?
16
+ engine == 'ruby'
17
+ end
18
+
19
+ def self.jruby?
20
+ engine == 'jruby'
21
+ end
22
+
23
+ end
@@ -1,17 +1,11 @@
1
- # encoding: utf-8
2
1
  class String
3
2
 
4
- ACCENTS_MAPPING = [
5
- {letter: 'A', upcase: 'ÁÀÄÂ', downcase: 'áàäâ'},
6
- {letter: 'E', upcase: 'ÉÈËÊ', downcase: 'éèëê'},
7
- {letter: 'I', upcase: 'ÍÌÏÎ', downcase: 'íìïî'},
8
- {letter: 'O', upcase: 'ÓÒÖÔ', downcase: 'óòöô'},
9
- {letter: 'U', upcase: 'ÚÙÜÛ', downcase: 'úùüû'}
10
- ]
3
+ ACCENTS_MAPPING = ConfigReader.accents_mapping
4
+ SIMILAR_CHARACTER_MAPPING = ConfigReader.similar_character_mapping
11
5
 
12
6
  alias_method :upcase_ignoring_accents!, :upcase!
13
7
  def upcase!
14
- ACCENTS_MAPPING.each { |map| tr! map[:downcase], map[:upcase] }
8
+ ACCENTS_MAPPING.values.each { |map| tr! map['downcase'], map['upcase'] }
15
9
  upcase_ignoring_accents!
16
10
  end
17
11
 
@@ -21,7 +15,7 @@ class String
21
15
 
22
16
  alias_method :downcase_ignoring_accents!, :downcase!
23
17
  def downcase!
24
- ACCENTS_MAPPING.each { |map| tr! map[:upcase], map[:downcase] }
18
+ ACCENTS_MAPPING.values.each { |map| tr! map['upcase'], map['downcase'] }
25
19
  downcase_ignoring_accents!
26
20
  end
27
21
 
@@ -30,9 +24,9 @@ class String
30
24
  end
31
25
 
32
26
  def unaccented!
33
- ACCENTS_MAPPING.each do |map|
34
- tr! map[:upcase], map[:letter]
35
- tr! map[:downcase], map[:letter].downcase
27
+ ACCENTS_MAPPING.each do |letter,map|
28
+ tr! map['upcase'], letter
29
+ tr! map['downcase'], letter.downcase
36
30
  end
37
31
  nil
38
32
  end
@@ -41,10 +35,21 @@ class String
41
35
  self.dup.tap(&:unaccented!)
42
36
  end
43
37
 
38
+ def letterize!
39
+ SIMILAR_CHARACTER_MAPPING.each do |letter, similar_chars|
40
+ tr! similar_chars, letter.to_s
41
+ end
42
+ end
43
+
44
+ def letterize
45
+ self.dup.tap(&:letterize!)
46
+ end
47
+
44
48
  def normalized!
45
49
  self.strip!
46
50
  self.gsub! /\s/, '_'
47
51
  self.unaccented!
52
+ self.letterize!
48
53
  self.downcase!
49
54
  end
50
55
 
@@ -52,4 +57,25 @@ class String
52
57
  self.dup.tap(&:normalized!)
53
58
  end
54
59
 
60
+ unless method_defined? :underscore
61
+ def underscore
62
+ self.gsub(/::/, '/').
63
+ gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
64
+ gsub(/([a-z\d])([A-Z])/,'\1_\2').
65
+ tr("-", "_").
66
+ downcase
67
+ end
68
+ end
69
+
70
+ unless method_defined? :camelize
71
+ def camelize(upper_case_first_letter=true)
72
+ return self if self !~ /_/ && self =~ /[A-Z]+.*/
73
+ if upper_case_first_letter
74
+ split('_').map{|e| e.capitalize}.join
75
+ else
76
+ split('_').inject([]){ |buffer,e| buffer.push(buffer.empty? ? e : e.capitalize) }.join
77
+ end
78
+ end
79
+ end
80
+
55
81
  end
@@ -1,3 +1,3 @@
1
1
  module CoreExtended
2
- VERSION = '0.0.5'
2
+ VERSION = '0.0.6'
3
3
  end
@@ -0,0 +1,21 @@
1
+ require 'minitest_helper'
2
+
3
+ describe Array do
4
+
5
+ it 'Paginate' do
6
+ array = (1..20).to_a
7
+ paginator = array.page(2, 5)
8
+
9
+ paginator.page.must_equal 2
10
+ paginator.size.must_equal 5
11
+
12
+ paginator.total.must_equal 20
13
+ paginator.pages.must_equal 4
14
+
15
+ paginator.wont_be :first?
16
+ paginator.wont_be :last?
17
+
18
+ paginator.to_a.must_equal_contents (6..10).to_a
19
+ end
20
+
21
+ end
data/spec/file_spec.rb CHANGED
@@ -1,10 +1,24 @@
1
- RbConfig::CONFIG['host_os'] = 'mswin'
2
1
  require 'minitest_helper'
3
2
 
4
3
  describe File do
5
4
 
5
+ windows_method = OS.method(:windows?)
6
+ jruby_method = Ruby.method(:jruby?)
7
+
8
+ after do
9
+ OS.define_singleton_method :windows?, &windows_method
10
+ Ruby.define_singleton_method :jruby?, &jruby_method
11
+ end
12
+
6
13
  it 'Fix size for windows and jruby' do
7
- File.open(__FILE__, 'r') { |f| f.size.must_equal 193 }
14
+ OS.define_singleton_method(:windows?) { true }
15
+ Ruby.define_singleton_method(:jruby?) { true }
16
+
17
+ File.open("#{File.dirname(__FILE__)}/../LICENSE.txt", 'r') { |f| f.size.must_equal 1071 }
18
+ end
19
+
20
+ it 'Default size for other platforms' do
21
+ File.open("#{File.dirname(__FILE__)}/../LICENSE.txt", 'r') { |f| f.size.must_equal 1071 }
8
22
  end
9
23
 
10
24
  end
data/spec/hash_spec.rb ADDED
@@ -0,0 +1,116 @@
1
+ require 'minitest_helper'
2
+
3
+ describe Hash do
4
+
5
+ after do
6
+ Hash.inflectors.clear
7
+ end
8
+
9
+ describe 'Without inflectors' do
10
+
11
+ before do
12
+ Hash.inflectors.clear
13
+ end
14
+
15
+ hash = {keyName1: 1, 'keyName2' => 2}
16
+
17
+ it 'Inflections' do
18
+ Hash.inflections('keyName').must_equal_contents ['keyName', :keyName]
19
+ end
20
+
21
+ it 'Get with indiferent access' do
22
+ hash.get(:keyName1).must_equal 1
23
+ hash.get('keyName1').must_equal 1
24
+
25
+ hash.get(:keyName2).must_equal 2
26
+ hash.get('keyName2').must_equal 2
27
+
28
+ hash.get(:keyName3).must_be_nil
29
+ hash.get('keyName3').must_be_nil
30
+ end
31
+
32
+ it 'Methods for all keys' do
33
+ hash.methods.must_include :keyName1
34
+ hash.methods.must_include :keyName2
35
+ hash.methods.wont_include :keyName3
36
+ end
37
+
38
+ it 'Respond to all keys' do
39
+ hash.must_be :respond_to?, :keyName1
40
+ hash.must_be :respond_to?, :keyName2
41
+ hash.wont_be :respond_to?, :keyName3
42
+ end
43
+
44
+ it 'Key method accessors' do
45
+ hash.keyName1.must_equal 1
46
+ hash.keyName2.must_equal 2
47
+ proc { hash.keyName3 }.must_raise NoMethodError
48
+ end
49
+
50
+ end
51
+
52
+ describe 'With inflectors' do
53
+
54
+ before do
55
+ Hash.inflect :underscore
56
+ end
57
+
58
+ hash = {keyName1: 1, 'KeyName2' => 2, key_name3: 3}
59
+
60
+ it 'Inflections' do
61
+ Hash.inflections('keyName').must_equal_contents ['keyName', :keyName, 'key_name', :key_name]
62
+ end
63
+
64
+ it 'Get with indiferent access' do
65
+ hash.get(:keyName1).must_equal 1
66
+ hash.get('keyName1').must_equal 1
67
+ hash.get(:key_name1).must_equal 1
68
+ hash.get('key_name1').must_equal 1
69
+
70
+ hash.get(:KeyName2).must_equal 2
71
+ hash.get('KeyName2').must_equal 2
72
+ hash.get(:key_name2).must_equal 2
73
+ hash.get('key_name2').must_equal 2
74
+
75
+ hash.get(:keyName3).must_be_nil
76
+ hash.get('keyName3').must_be_nil
77
+ hash.get(:key_name3).must_equal 3
78
+ hash.get('key_name3').must_equal 3
79
+ end
80
+
81
+ it 'Methods for all keys' do
82
+ hash.methods.must_include :keyName1
83
+ hash.methods.must_include :key_name1
84
+
85
+ hash.methods.must_include :KeyName2
86
+ hash.methods.must_include :key_name2
87
+
88
+ hash.methods.wont_include :keyName3
89
+ hash.methods.must_include :key_name3
90
+ end
91
+
92
+ it 'Respond to all keys' do
93
+ hash.must_be :respond_to?, :keyName1
94
+ hash.must_be :respond_to?, :key_name1
95
+
96
+ hash.must_be :respond_to?, :KeyName2
97
+ hash.must_be :respond_to?, :key_name2
98
+
99
+ hash.wont_be :respond_to?, :keyName3
100
+ hash.must_be :respond_to?, :key_name3
101
+ end
102
+
103
+ it 'Key method accessors' do
104
+ hash.keyName1.must_equal 1
105
+ hash.key_name1.must_equal 1
106
+
107
+ hash.KeyName2.must_equal 2
108
+ hash.key_name2.must_equal 2
109
+
110
+ proc { hash.keyName3 }.must_raise NoMethodError
111
+ hash.key_name3.must_equal 3
112
+ end
113
+
114
+ end
115
+
116
+ end
@@ -1,5 +1,6 @@
1
1
  require 'coverage_helper'
2
2
  require 'minitest/autorun'
3
+ require 'minitest/great_expectations'
3
4
  require 'turn'
4
5
  require 'core_extended'
5
6
 
@@ -0,0 +1,37 @@
1
+ require 'minitest_helper'
2
+
3
+ describe Paginator do
4
+
5
+ array = (1..50).to_a
6
+
7
+ it 'Defaults' do
8
+ paginator = Paginator.new array
9
+
10
+ paginator.page.must_equal 1
11
+ paginator.size.must_equal 10
12
+
13
+ paginator.total.must_equal 50
14
+ paginator.pages.must_equal 5
15
+
16
+ paginator.must_be :first?
17
+ paginator.wont_be :last?
18
+
19
+ paginator.to_a.must_equal_contents (1..10).to_a
20
+ end
21
+
22
+ it 'With arguments' do
23
+ paginator = Paginator.new array, page: 3, size: 20
24
+
25
+ paginator.page.must_equal 3
26
+ paginator.size.must_equal 20
27
+
28
+ paginator.total.must_equal 50
29
+ paginator.pages.must_equal 3
30
+
31
+ paginator.wont_be :first?
32
+ paginator.must_be :last?
33
+
34
+ paginator.to_a.must_equal_contents (41..50).to_a
35
+ end
36
+
37
+ end
data/spec/ruby_spec.rb ADDED
@@ -0,0 +1,25 @@
1
+ require 'minitest_helper'
2
+
3
+ describe Ruby do
4
+
5
+ it 'Engine' do
6
+ Ruby.engine.must_equal RUBY_ENGINE
7
+ end
8
+
9
+ it 'Platform' do
10
+ Ruby.platform.must_equal RUBY_PLATFORM
11
+ end
12
+
13
+ it 'Version' do
14
+ Ruby.version.must_equal RUBY_VERSION
15
+ end
16
+
17
+ it 'MRI' do
18
+ Ruby.mri?.must_equal RUBY_ENGINE == 'ruby'
19
+ end
20
+
21
+ it 'JRuby' do
22
+ Ruby.jruby?.must_equal RUBY_ENGINE == 'jruby'
23
+ end
24
+
25
+ end
data/spec/string_spec.rb CHANGED
@@ -71,6 +71,33 @@ describe String do
71
71
 
72
72
  end
73
73
 
74
+ describe 'Letterize' do
75
+
76
+ it 'Transform all similar letters' do
77
+ ConfigReader.similar_character_mapping.each do |letter, similar_chars|
78
+ similar_chars.chars.each do |char|
79
+ char.letterize.must_equal letter
80
+ end
81
+ end
82
+ end
83
+
84
+ it 'Transform keeping case' do
85
+ 'ßΔЯƦą'.letterize.must_equal 'BARRa'
86
+ end
87
+
88
+ it 'Keep itself' do
89
+ string = 'ßΔЯƦą'
90
+ string.letterize.must_equal 'BARRa'
91
+ string.must_equal 'ßΔЯƦą'
92
+ end
93
+
94
+ it 'Change itself' do
95
+ string = 'ßΔЯƦą'
96
+ string.letterize!
97
+ string.must_equal 'BARRa'
98
+ end
99
+ end
100
+
74
101
  describe 'Normalized' do
75
102
 
76
103
  it 'Downcase' do
@@ -103,4 +130,44 @@ describe String do
103
130
 
104
131
  end
105
132
 
133
+ describe 'Underscore' do
134
+
135
+ it 'Camel case' do
136
+ 'CamelCase'.underscore.must_equal 'camel_case'
137
+ end
138
+
139
+ it 'Camel case start with downcase' do
140
+ 'camelCase'.underscore.must_equal 'camel_case'
141
+ end
142
+
143
+ it 'Lower case' do
144
+ 'lowercase'.underscore.must_equal 'lowercase'
145
+ end
146
+
147
+ it 'Upper case' do
148
+ 'UPPERCASE'.underscore.must_equal 'uppercase'
149
+ end
150
+
151
+ end
152
+
153
+ describe 'Camelize' do
154
+
155
+ it 'Underscore' do
156
+ 'under_score'.camelize.must_equal 'UnderScore'
157
+ end
158
+
159
+ it 'Underscore convert staring with downcase' do
160
+ 'under_score'.camelize(false).must_equal 'underScore'
161
+ end
162
+
163
+ it 'Lower case' do
164
+ 'lowercase'.camelize.must_equal 'Lowercase'
165
+ end
166
+
167
+ it 'Upper case' do
168
+ 'UPPERCASE'.camelize.must_equal 'UPPERCASE'
169
+ end
170
+
171
+ end
172
+
106
173
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: core_extended
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
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: 2013-06-04 00:00:00.000000000 Z
12
+ date: 2013-09-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -59,6 +59,22 @@ dependencies:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: '4.7'
62
+ - !ruby/object:Gem::Dependency
63
+ name: minitest-great_expectations
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
62
78
  - !ruby/object:Gem::Dependency
63
79
  name: turn
64
80
  requirement: !ruby/object:Gem::Requirement
@@ -91,6 +107,22 @@ dependencies:
91
107
  - - ! '>='
92
108
  - !ruby/object:Gem::Version
93
109
  version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: json
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: 1.7.7
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: 1.7.7
94
126
  description: Ruby core extensions
95
127
  email:
96
128
  - gabynaiman@gmail.com
@@ -105,18 +137,29 @@ files:
105
137
  - LICENSE.txt
106
138
  - README.md
107
139
  - Rakefile
140
+ - config/accents_mapping.yml
141
+ - config/similar_character_mapping.yml
108
142
  - core_extended.gemspec
109
143
  - lib/core_extended.rb
144
+ - lib/core_extended/array.rb
145
+ - lib/core_extended/config_reader.rb
110
146
  - lib/core_extended/file.rb
147
+ - lib/core_extended/hash.rb
111
148
  - lib/core_extended/marshal.rb
112
149
  - lib/core_extended/os.rb
150
+ - lib/core_extended/paginator.rb
151
+ - lib/core_extended/ruby.rb
113
152
  - lib/core_extended/string.rb
114
153
  - lib/core_extended/version.rb
154
+ - spec/array_spec.rb
115
155
  - spec/coverage_helper.rb
116
156
  - spec/file_spec.rb
157
+ - spec/hash_spec.rb
117
158
  - spec/marshal_spec.rb
118
159
  - spec/minitest_helper.rb
119
160
  - spec/os_spec.rb
161
+ - spec/paginator_spec.rb
162
+ - spec/ruby_spec.rb
120
163
  - spec/string_spec.rb
121
164
  homepage: https://github.com/gabynaiman/core_extended
122
165
  licenses:
@@ -131,23 +174,32 @@ required_ruby_version: !ruby/object:Gem::Requirement
131
174
  - - ! '>='
132
175
  - !ruby/object:Gem::Version
133
176
  version: '0'
177
+ segments:
178
+ - 0
179
+ hash: 2176153387559094585
134
180
  required_rubygems_version: !ruby/object:Gem::Requirement
135
181
  none: false
136
182
  requirements:
137
183
  - - ! '>='
138
184
  - !ruby/object:Gem::Version
139
185
  version: '0'
186
+ segments:
187
+ - 0
188
+ hash: 2176153387559094585
140
189
  requirements: []
141
190
  rubyforge_project:
142
- rubygems_version: 1.8.24
191
+ rubygems_version: 1.8.25
143
192
  signing_key:
144
193
  specification_version: 3
145
194
  summary: Ruby core extensions
146
195
  test_files:
196
+ - spec/array_spec.rb
147
197
  - spec/coverage_helper.rb
148
198
  - spec/file_spec.rb
199
+ - spec/hash_spec.rb
149
200
  - spec/marshal_spec.rb
150
201
  - spec/minitest_helper.rb
151
202
  - spec/os_spec.rb
203
+ - spec/paginator_spec.rb
204
+ - spec/ruby_spec.rb
152
205
  - spec/string_spec.rb
153
- has_rdoc: