rdoba 0.9.1 → 0.9.2

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.
Files changed (80) hide show
  1. checksums.yaml +7 -7
  2. data/.gitignore +4 -0
  3. data/.travis.yml +28 -0
  4. data/CHANGES.md +6 -0
  5. data/Gemfile +5 -0
  6. data/README.md +75 -90
  7. data/Rakefile +61 -55
  8. data/TODO +6 -0
  9. data/features/log.feature +100 -29
  10. data/features/mixin.feature +85 -0
  11. data/features/step_definitions/log_steps.rb +58 -22
  12. data/features/step_definitions/mixin_steps.rb +266 -0
  13. data/features/support/env.rb +48 -24
  14. data/features/support/fulltest_as_log.rb.in +143 -0
  15. data/features/support/fulltest_as_self.rb.in +144 -0
  16. data/features/support/mixin_support.rb +13 -0
  17. data/html/.keep +0 -0
  18. data/html/created.rid +28 -0
  19. data/html/css/fonts.css +167 -0
  20. data/html/css/rdoc.css +590 -0
  21. data/html/fonts/Lato-Light.ttf +0 -0
  22. data/html/fonts/Lato-LightItalic.ttf +0 -0
  23. data/html/fonts/Lato-Regular.ttf +0 -0
  24. data/html/fonts/Lato-RegularItalic.ttf +0 -0
  25. data/html/fonts/SourceCodePro-Bold.ttf +0 -0
  26. data/html/fonts/SourceCodePro-Regular.ttf +0 -0
  27. data/html/images/add.png +0 -0
  28. data/html/images/arrow_up.png +0 -0
  29. data/html/images/brick.png +0 -0
  30. data/html/images/brick_link.png +0 -0
  31. data/html/images/bug.png +0 -0
  32. data/html/images/bullet_black.png +0 -0
  33. data/html/images/bullet_toggle_minus.png +0 -0
  34. data/html/images/bullet_toggle_plus.png +0 -0
  35. data/html/images/date.png +0 -0
  36. data/html/images/delete.png +0 -0
  37. data/html/images/find.png +0 -0
  38. data/html/images/loadingAnimation.gif +0 -0
  39. data/html/images/macFFBgHack.png +0 -0
  40. data/html/images/package.png +0 -0
  41. data/html/images/page_green.png +0 -0
  42. data/html/images/page_white_text.png +0 -0
  43. data/html/images/page_white_width.png +0 -0
  44. data/html/images/plugin.png +0 -0
  45. data/html/images/ruby.png +0 -0
  46. data/html/images/tag_blue.png +0 -0
  47. data/html/images/tag_green.png +0 -0
  48. data/html/images/transparent.png +0 -0
  49. data/html/images/wrench.png +0 -0
  50. data/html/images/wrench_orange.png +0 -0
  51. data/html/images/zoom.png +0 -0
  52. data/html/js/darkfish.js +161 -0
  53. data/html/js/jquery.js +4 -0
  54. data/html/js/navigation.js +142 -0
  55. data/html/js/navigation.js.gz +0 -0
  56. data/html/js/search.js +109 -0
  57. data/html/js/search_index.js +1 -0
  58. data/html/js/search_index.js.gz +0 -0
  59. data/html/js/searcher.js +228 -0
  60. data/html/js/searcher.js.gz +0 -0
  61. data/lib/rdoba/_version_.rb +1 -1
  62. data/lib/rdoba/common.rb +0 -15
  63. data/lib/rdoba/debug.rb +5 -1
  64. data/lib/rdoba/log.rb +360 -189
  65. data/lib/rdoba/merge.rb +21 -0
  66. data/lib/rdoba/mixin/time.rb +11 -0
  67. data/lib/rdoba/mixin/try.rb +6 -0
  68. data/lib/rdoba/mixin/try_1_9_0.rb +4 -0
  69. data/lib/rdoba/mixin/wait_if.rb +21 -0
  70. data/lib/rdoba/mixin.rb +270 -6
  71. data/lib/rdoba/strings.rb +4 -141
  72. data/lib/rdoba.rb +13 -19
  73. data/rdoba.gemspec +30 -24
  74. data/tddium.yml +11 -0
  75. metadata +260 -65
  76. data/features/bcd.feature +0 -29
  77. data/features/step_definitions/bcd_steps.rb +0 -69
  78. data/test/helper.rb +0 -18
  79. data/test/rdoba_test.rb.stub +0 -59
  80. data/test/test_rdoba.rb +0 -7
data/lib/rdoba/mixin.rb CHANGED
@@ -1,8 +1,209 @@
1
1
  #!/usr/bin/ruby -KU
2
2
  #encoding:utf-8
3
+
4
+ class String
5
+ # TODO obsolete
6
+ ByteByByte = 0
7
+ FirstChar = 1
8
+ end
3
9
 
4
10
  module Rdoba
5
11
  module Mixin
12
+ class InvalidOption < StandardError ; end
13
+
14
+ module CompareString
15
+ def compare_to value, opts = {}
16
+ if ( opts == :ignore_diacritics ||
17
+ opts.class == Hash && opts.key?( :ignore_diacritics ) )
18
+ # TODO verify composite range
19
+ def crop_diacritics(x)
20
+ (x < 0x300 ||
21
+ x > 0x36f && x < 0x483 ||
22
+ x > 0x487 && x < 0xa67c ||
23
+ x > 0xa67d) && x || nil
24
+ end
25
+
26
+ ( self.unpack( 'U*' ).map do |x|
27
+ crop_diacritics( x ) ; end.compact ) <=>
28
+ ( value.unpack( 'U*' ).map do |x|
29
+ crop_diacritics( x ) ; end.compact )
30
+ else
31
+ self <=> value ; end ; end ; end
32
+
33
+ module ReverseString
34
+
35
+ Fixups = [ :reverse ]
36
+
37
+ Aliases = {
38
+ :__rdoba_mixin_reverse_orig__ => :reverse
39
+ }
40
+
41
+
42
+ def __rdoba_mixin_reverse__ step = 1
43
+ if ( !step.is_a?( Numeric ) || step < 0 ) && step != :byte_by_byte
44
+ raise "Invalid step value #{step.inspect}" ; end
45
+
46
+ if step == :byte_by_byte || step == String::ByteByByte
47
+ arr = []
48
+ self.each_byte do | byte |
49
+ arr << byte.chr ; end
50
+ arr.reverse.join.force_encoding( self.encoding )
51
+ elsif step == 1
52
+ __rdoba_mixin_reverse_orig__
53
+ elsif step > 1
54
+ res = ''
55
+ offset = (self.size + 1) / step * step - step
56
+ ( 0..offset ).step( step ) do | shift |
57
+ res += self[ offset - shift..offset - shift + 1 ] ; end
58
+ res ; end ; end ; end
59
+
60
+ module CaseString
61
+ Fixups = [ :upcase, :downcase ]
62
+
63
+ Aliases = {
64
+ :__rdoba_mixin_upcase_orig__ => :upcase,
65
+ :__rdoba_mixin_downcase_orig__ => :downcase
66
+ }
67
+
68
+ ConvertTable = {
69
+ :up => {
70
+ :ranges => [ {
71
+ :ords => [ (0xE0..0xFF), (0x3B1..0x3CB),
72
+ (0x430..0x44F) ],
73
+ :change => proc { | chr, value | chr -= 0x20 },
74
+ }, {
75
+ :ords => [ (0x3AC..0x3AC) ],
76
+ :change => proc { | ord | ord -= 0x26 },
77
+ }, {
78
+ :ords => [ (0x3AD..0x3AF) ],
79
+ :change => proc { | ord | ord -= 0x25 },
80
+ }, {
81
+ :ords => [ (0x3B0..0x3B0) ],
82
+ :change => proc { | ord | ord -= 0x22 },
83
+ }, {
84
+ :ords => [ (0x1F00..0x1F07), (0x1F10..0x1F17),
85
+ (0x1F20..0x1F27), (0x1F30..0x1F37),
86
+ (0x1F40..0x1F47), (0x1F50..0x1F57),
87
+ (0x1F60..0x1F67), (0x1F80..0x1F87),
88
+ (0x1F90..0x1F97), (0x1Fa0..0x1Fa7),
89
+ (0x1Fb0..0x1Fb3), ],
90
+ :change => proc { | ord | ord += 0x8 },
91
+ }, {
92
+ :ords => [ (0x450..0x45F) ],
93
+ :change => proc { | ord | ord -= 0x50 },
94
+ }, {
95
+ :ords => [ (0x100..0x1B9), (0x1C4..0x233),
96
+ (0x460..0x481), (0x48A..0x523),
97
+ (0x1E00..0x1E95), (0x1EA0..0x1EFF),
98
+ (0x0A642..0xA667), (0x0A680..0x0A697),
99
+ (0xA722..0xA7A9) ],
100
+ :change => proc { | ord | ord.odd? && ( ord - 1 ) || ord },
101
+ } ],
102
+ :default => proc do | ord |
103
+ [ ord ].pack( 'U' ).__rdoba_mixin_upcase_orig__ ; end },
104
+ :down => {
105
+ :ranges => [ {
106
+ :ords => [ (0xC0..0xDF), (0x391..0x3AB),
107
+ (0x410..0x42F) ],
108
+ :change => proc { |chr, value| chr += 0x20 },
109
+ }, {
110
+ :ords => [ (0x386..0x386) ],
111
+ :change => proc { | ord | ord += 0x26 },
112
+ }, {
113
+ :ords => [ (0x388..0x38A) ],
114
+ :change => proc { | ord | ord += 0x25 },
115
+ }, {
116
+ :ords => [ (0x38E..0x38E) ],
117
+ :change => proc { | ord | ord += 0x22 },
118
+ }, {
119
+ :ords => [ (0x1F08..0x1F0F), (0x1F18..0x1F1F),
120
+ (0x1F28..0x1F2F), (0x1F38..0x1F3F),
121
+ (0x1F48..0x1F4F), (0x1F58..0x1F5F),
122
+ (0x1F68..0x1F6F), (0x1F88..0x1F8F),
123
+ (0x1F98..0x1F9F), (0x1Fa8..0x1FaF),
124
+ (0x1Fb8..0x1FbA), ],
125
+ :change => proc { | ord | ord -= 0x8 },
126
+ }, {
127
+ :ords => [ (0x400..0x40F) ],
128
+ :change => proc { | ord | ord += 0x50 },
129
+ }, {
130
+ :ords => [ (0x100..0x1B9), (0x1C4..0x233),
131
+ (0x450..0x481), (0x48A..0x523),
132
+ (0x1E00..0x1E95), (0x1EA0..0x1EFF),
133
+ (0x0A642..0xA667), (0x0A680..0x0A697),
134
+ (0xA722..0xA7A9) ],
135
+ :change => proc { | ord | ord.even? && ( ord + 1 ) || ord },
136
+ } ],
137
+ :default => proc do | ord |
138
+ [ ord ].pack( 'U' ).__rdoba_mixin_downcase_orig__ ; end } }
139
+
140
+ def self.change_case_char dest, char
141
+ ord = char.is_a?( String ) ? char.ord : char.to_i
142
+ table = ConvertTable[ dest ]
143
+ nord = table[ :ranges ].each do |range|
144
+ c = range[ :ords ].each do |r|
145
+ if r.include?( ord )
146
+ break false ; end ; end
147
+ if !c
148
+ break range[ :change ].call ord ; end ; end
149
+
150
+ if !nord.is_a? Numeric
151
+ return table[ :default ].call ord ; end
152
+
153
+ [ nord ].pack( 'U' ) ; end
154
+
155
+ def self.up_char char
156
+ CaseString.change_case_char :up, char ; end
157
+
158
+ def self.downcase_char char
159
+ CaseString.change_case_char :down, char ; end
160
+
161
+ if RUBY_VERSION < '1.9'
162
+ alias :setbyte :[]=
163
+
164
+ def encoding
165
+ 'UTF-8'
166
+ end
167
+
168
+ def force_encoding(*args)
169
+ self
170
+ end
171
+
172
+ def ord
173
+ a = nil
174
+ self.each_byte do |b|
175
+ case ( b & 0xC0 )
176
+ when 0xc0
177
+ a = (b & 0x3F)
178
+ when 0x80
179
+ return (a << 6) + (b & 0x3F)
180
+ else
181
+ return b ; end ; end ; end ; end
182
+
183
+ def __rdoba_mixin_downcase__ options = {}
184
+ self.__rdoba_mixin_changecase__ :down, options ; end
185
+
186
+ def __rdoba_mixin_upcase__ options = {}
187
+ self.__rdoba_mixin_changecase__ :up, options ; end
188
+
189
+ def __rdoba_mixin_changecase__ reg, options = {}
190
+ if ![ :up, :down ].include? reg
191
+ return self ; end
192
+
193
+ re = Regexp.new '[\x80-\xFF]', nil, 'n'
194
+ if options == String::FirstChar || options.include?( :first_char )
195
+ r = self.dup
196
+ r[0] = CaseString.change_case_char reg, self.ord
197
+ r
198
+ elsif self.dup.force_encoding( 'ASCII-8BIT' ).match re
199
+ self.unpack('U*').map do | chr |
200
+ CaseString.change_case_char reg, chr
201
+ end.join
202
+ elsif reg == :up
203
+ self.__rdoba_mixin_upcase_orig__
204
+ else
205
+ self.__rdoba_mixin_downcase_orig__ ; end ; end ; end
206
+
6
207
  module To_hArray
7
208
  def to_h options = {}
8
209
  h = {}
@@ -34,24 +235,87 @@ module Rdoba
34
235
 
35
236
  h ; end ; end
36
237
 
238
+ module Split_byArray
239
+ #
240
+ # +split_by+ method splits the +self+ array by a condition,
241
+ # which is evaliated in a passed block, in two versions that are
242
+ # the return value. Usage:
243
+ #
244
+ # require 'rdoba'
245
+ #
246
+ # rdoba mixin: :split_by
247
+ #
248
+ # (first, second) = [0,1,2,3].split_by { |value| value % 2 == 0 }
249
+ # first # => [0,2]
250
+ # second # => [1,3]
251
+ #
252
+ def split_by &block
253
+ idxs = []
254
+ rejected = self.reject.with_index do |v, i|
255
+ yield( v ) && ( idxs << i ) ; end
256
+ [ self.values_at(*idxs), rejected ] ; end ; end
257
+
37
258
  module EmptyObject
38
259
  def empty?
39
260
  false ; end ; end
40
261
 
41
262
  module EmptyNilClass
42
263
  def empty?
43
- true ; end ; end ; end
264
+ true ; end ; end ; end ; end
44
265
 
266
+ if RUBY_VERSION >= "2.0.0"
267
+ require_relative 'mixin/try'
268
+ else
269
+ require_relative 'mixin/try_1_9_0' ; end
270
+
271
+ require_relative 'mixin/wait_if'
272
+
273
+ module Rdoba
45
274
  def self.mixin options
46
- ( options || [] ).each do |value|
275
+ [ options[ :value ] ].flatten.each do |value|
47
276
  case value
277
+ when :case
278
+ Mixin::CaseString::Aliases.each do |k,v|
279
+ ::String.send :alias_method, k, v ; end
280
+ Mixin::CaseString::Fixups.each do |e|
281
+ ::String.class_eval "def #{e}(*args);self.__rdoba_mixin_#{e}__(*args);end"
282
+ end # trap NameError
283
+ ::String.send :include, Mixin::CaseString
284
+ when :reverse
285
+ Mixin::ReverseString::Aliases.each do |k,v|
286
+ ::String.send :alias_method, k, v ; end
287
+ Mixin::ReverseString::Fixups.each do |e|
288
+ ::String.class_eval "def #{e}(*args);self.__rdoba_mixin_#{e}__(*args);end"
289
+ end # trap NameError
290
+ String.send :include, Mixin::ReverseString
291
+ when :compare
292
+ String.send :include, Mixin::CompareString
48
293
  when :to_h
49
- Array.send :include, Rdoba::Mixin::To_hArray
294
+ if [].respond_to?( :to_h )
295
+ m = Mixin::To_hArray.instance_method( :to_h )
296
+ Array.send( :define_method, :to_h, m )
297
+ else
298
+ Array.send( :include, Mixin::To_hArray ) ; end
299
+ when :time
300
+ require_relative 'mixin/time'
301
+ if File.respond_to?( :mtime )
302
+ [ :mtime, :atime, :ctime ].each do |name|
303
+ m = Mixin::Time.instance_method( name )
304
+ ::File.send( :define_singleton_method, name, m ) ; end
305
+ else
306
+ ::File.send( :extend, Mixin::Time ) ; end
307
+ when :wait_if
308
+ Object.send :include, Mixin::Wait_ifKernel
309
+ when :split_by
310
+ Array.send :include, Mixin::Split_byArray
311
+ when :try
312
+ Object.send :include, Mixin::TryObject
50
313
  when :empty
51
- Object.send :include, Rdoba::Mixin::EmptyObject
52
- NilClass.send :include, Rdoba::Mixin::EmptyNilClass
314
+ Object.send :include, Mixin::EmptyObject
315
+ NilClass.send :include, Mixin::EmptyNilClass
53
316
  else
54
- Kernel.puts STDERR, "Invalid rdoba-mixin options key: #{value.to_s}"
317
+ raise( Mixin::InvalidOption, "Invalid rdoba-mixin options key: " +
318
+ "#{value.to_s}" )
55
319
  end ; end ; end ; end
56
320
 
57
321
 
data/lib/rdoba/strings.rb CHANGED
@@ -1,149 +1,12 @@
1
1
  #!/usr/bin/ruby -KU
2
2
  #coding:utf-8
3
3
 
4
- class String
5
-
6
- def self.upcase(char)
7
- chr = char.class == String ? char.ord : char.to_i
8
- if chr >= 0x430 and chr < 0x450
9
- chr -= 0x20
10
- elsif chr >= 0x410 and chr < 0x430
11
- elsif chr >= 0x400 and chr < 0x410 or
12
- chr >= 0x450 and chr < 0x482 or
13
- chr >= 0x48A and chr < 0x524 or
14
- chr >= 0xA642 and chr < 0xA668 or
15
- chr >= 0xA680 and chr < 0xA698
16
- chr -= 1 if (chr % 1) == 1
17
- else
18
- return chr.chr.__upcase__
19
- end
20
- chr.chr
21
- end
22
-
23
- def self.downcase(char)
24
- chr = (char.class == String) ? char.ord : char.to_i
25
- if chr >= 0x410 and chr < 0x430
26
- chr += 0x20
27
- elsif chr >= 0x430 and chr < 0x450
28
- elsif chr >= 0x400 and chr < 0x410 or
29
- chr >= 0x450 and chr < 0x482 or
30
- chr >= 0x48A and chr < 0x524 or
31
- chr >= 0xA642 and chr < 0xA668 or
32
- chr >= 0xA680 and chr < 0xA698
33
- chr += 1 if (chr % 1) == 0
34
- else
35
- return chr.chr.__downcase__
36
- end
37
- chr.chr
38
- end
39
-
40
- if RUBY_VERSION < '1.9'
41
-
42
- alias :setbyte :[]=
43
-
44
- def encoding
45
- 'UTF-8'
46
- end
47
-
48
- def force_encoding(*args)
49
- self
50
- end
51
-
52
- def ord
53
- a = nil
54
- self.each_byte do |b|
55
- c = b & 0xC0
56
- case c
57
- when 0xc0
58
- a = (b & 0x3F)
59
- when 0x80
60
- return (a << 6) + (b & 0x3F)
61
- else
62
- return b
63
- end
64
- end
65
- end
66
-
67
- end
68
-
69
- FirstChar = 0
70
- alias :__upcase__ :upcase
71
- def upcase(option = nil)
72
- if option == FirstChar
73
- r = self.dup
74
- r[0] = String.upcase(self.ord)
75
- r
76
- elsif self.match(/[Ѐ-ҁҊ-ԣꙀ-ꙧꚀꚗ]/u)
77
- self.unpack('U*').map do |chr| String.upcase(chr) end.join
78
- else; __upcase__ end
79
- end
80
-
81
- alias :__downcase__ :downcase
82
- def downcase(option = nil)
83
- if option == FirstChar
84
- r = self.dup
85
- r[0] = String.downcase(self.ord)
86
- r
87
- elsif self.match(/[Ѐ-ҁҊ-ԣꙀ-ꙧꚀꚗ]/u)
88
- self.unpack('U*').map do |chr| String.downcase(chr) end.join
89
- else; __downcase__ end
90
- end
4
+ STDERR.puts "Warning: the module 'string' has kept only for backward " \
5
+ "compatibility\nPlease use 'rdoba :mixin' form instead"
91
6
 
7
+ class String
92
8
  alias :to_p :to_s
93
-
94
- ByteByByte = 0
95
- alias :__reverse__ :reverse
96
- def reverse(step = 1)
97
- case step
98
- when ByteByByte
99
- arr = []
100
- self.each_byte do |byte| arr << byte.chr end
101
- arr.reverse.join
102
- when 1
103
- __reverse__
104
- else
105
- res = ''
106
- offset = (self.size + 1) / step * step - step
107
- (0..offset).step(step) do |shift|
108
- res += self[offset - shift..offset - shift + 1]
109
- end
110
- res
111
- end
112
- end
113
-
114
- def compare_to(value, opts = {} )
115
- if opts == :ignore_diacritics or
116
- (opts.class == Hash and opts.key? :ignore_diacritics)
117
- # TODO verify composite range
118
- def crop_diacritics(x)
119
- (x < 0x300 or
120
- x > 0x36f and x < 0x483 or
121
- x > 0x487 and x < 0xa67c or
122
- x > 0xa67d) && x || nil
123
- end
124
-
125
- (self.unpack('U*').map do |x| crop_diacritics(x)
126
- end.compact) <=> (value.unpack('U*').map do |x| crop_diacritics(x)
127
- end.compact)
128
- else
129
- self <=> value
130
- end
131
- end
132
9
  end
133
10
 
134
- class Fixnum
135
- alias :__chr__ :chr
136
- def chr
137
- if self >= 256
138
- num = self; s = "\0"; byte = 0x80; a = []
139
- while num >= 0x40
140
- s.setbyte(0, byte + (num & 0x3F))
141
- a << s.dup; num >>= 6; byte = 0x40
142
- end
143
- s.setbyte(0, 0xC0 + (num & 0x3F))
144
- a << s
145
- a.reverse.join.force_encoding('UTF-8')
146
- else; __chr__ end
147
- end
148
- end
11
+ rdoba :mixin => [ :case, :reverse, :compare ]
149
12
 
data/lib/rdoba.rb CHANGED
@@ -1,26 +1,20 @@
1
1
  #encoding: utf-8
2
2
 
3
3
  module Kernel
4
- Modules = [ :bcd ]
4
+ Modules = [ :bcd, :mixin, :log, :debug ]
5
5
 
6
- def rdoba *options
7
- options.each do |option|
8
- key, value = ( option.is_a?( Hash ) &&
9
- [ ( k = option.keys.shift ).to_s.to_sym, option[ k ] ] ||
10
- [ option.to_s.to_sym ] )
11
- case key
12
- when :mixin
13
- require "rdoba/mixin"
14
- Rdoba.mixin value
15
- when :log, :debug
16
- require "rdoba/#{key}"
17
- Rdoba.log( { :in => self }.merge( value || {} ) ) # TODO move log method into module
18
- # TODO and resolve some troubles with eval in main
19
- else
20
- Kernel.puts STDERR, "Unknown rdoba module named as '#{key.to_s}'"
21
- nil; end ||
22
- if Modules.include? key
23
- require "rdoba/#{key}"; end; end; end; end
6
+ def rdoba *options
7
+ options.each do |option|
8
+ ( option.is_a?( Hash ) &&
9
+ option || { option.to_s.to_sym => {} }
10
+ ).each_pair do |key, value|
11
+ if Modules.include? key
12
+ require "rdoba/#{key}"
13
+ if Rdoba.methods.include? key
14
+ if !value.is_a? Hash
15
+ value = { :value => value } ; end
16
+ value.replace( { :self => self }.merge value )
17
+ Rdoba.send key, value ; end ; end ; end; end ; end ; end
24
18
 
25
19
  require 'rbconfig'
26
20
 
data/rdoba.gemspec CHANGED
@@ -3,30 +3,36 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
  require "rdoba/_version_"
4
4
 
5
5
  Gem::Specification.new do |s|
6
- s.name = "rdoba"
7
- s.version = Rdoba::VERSION
8
- s.platform = Gem::Platform::RUBY
9
- s.authors = [ 'Малъ Скрылёвъ (Malo Skrylevo)' ]
10
- s.email = [ '3aHyga@gmail.com' ]
11
- s.homepage = 'https://github.com/3aHyga/rdoba'
12
- s.summary = 'Ruby extension library (Ruby DOBAvka)'
13
- s.description = 'Ruby extension library. It extends Kernel, Object, ' +
14
- 'String, Hash, Array, and some other classes. Also allows ' +
15
- 'to log application state with debug lines to an io'
16
- s.license = 'MIT'
6
+ s.name = "rdoba"
7
+ s.version = Rdoba::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = [ 'Малъ Скрылёвъ (Malo Skrylevo)' ]
10
+ s.email = [ '3aHyga@gmail.com' ]
11
+ s.homepage = 'https://github.com/3aHyga/rdoba'
12
+ s.summary = 'Ruby extension library (Ruby DOBAvka)'
13
+ s.description = 'Ruby extension library. It extends Kernel, Object, ' \
14
+ 'String, Hash, Array, and some other classes. Also allows ' \
15
+ 'to log application state with debug lines to an io'
16
+ s.license = 'MIT'
17
17
 
18
- s.rubyforge_project = "rdoba"
19
- s.files = `git ls-files`.split("\n")
20
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
21
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
22
- s.require_paths = [ "lib" ]
23
- s.extra_rdoc_files = [ 'README.md', 'LICENSE' ]
18
+ s.rubyforge_project = "rdoba"
19
+ s.files = `git ls-files`.split("\n")
20
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
21
+ s.executables = `git ls-files -- bin/*`.split( "\n" ).map{ |f| File.basename(f) }
22
+ s.require_paths = [ "lib" ]
23
+ s.extra_rdoc_files = [ 'README.md', 'LICENSE', 'CHANGES.md' ] |
24
+ `find html/`.split( "\n" )
24
25
 
25
- s.required_rubygems_version = '>= 1.6.0'
26
- s.required_ruby_version = '>= 1.9.0'
26
+ s.add_development_dependency 'simplecov', '~> 0'
27
+ s.add_development_dependency 'tddium', '~> 0'
28
+ s.add_development_dependency 'rake', '~> 0'
29
+ s.add_development_dependency 'bundler', '~> 1.5'
30
+ s.add_development_dependency 'cucumber', '~> 1.3'
31
+ s.add_development_dependency 'coveralls', '~> 0'
32
+ s.add_development_dependency 'rdiscount', '~> 2.1'
33
+ s.add_development_dependency 'rdoc', '~> 4.2'
34
+ s.add_development_dependency 'rspec-expectations', '~> 3.3'
35
+ s.add_development_dependency 'ffi-stat', '~> 0.4'
27
36
 
28
- s.add_development_dependency 'rake'
29
- s.add_development_dependency 'bundler', '~> 1.3'
30
- s.add_development_dependency 'cucumber', '~> 1.3'
31
- s.add_development_dependency 'coveralls'
32
- end
37
+ s.required_rubygems_version = '>= 1.6.0'
38
+ s.required_ruby_version = '>= 1.9.0' ; end
data/tddium.yml ADDED
@@ -0,0 +1,11 @@
1
+ :tddium:
2
+ :ruby_version: ruby-1.9.3-p547
3
+ :bundler_version: '~> 1.6.5'
4
+ :test_pattern:
5
+ - features/\*.feature
6
+ :tests:
7
+ - bundle exec cucumber
8
+ :coverage: true
9
+ :postgresql: false
10
+ :mysql: false
11
+ :sqlite: false