Решение на Трета задача от Здравко Георгиев

Обратно към всички решения

Към профила на Здравко Георгиев

Резултати

  • 1 точка от тестове
  • 0 бонус точки
  • 1 точка общо
  • 5 успешни тест(а)
  • 39 неуспешни тест(а)

Код

module RBFS
class File
attr_reader :data_type
attr_accessor :data
def initialize(data = nil)
@data = data
@data_type =
:nil if data.instance_of?(NilClass)
:string if data.instance_of?(String)
:symbol if data.instance_of?(Symbol)
:number if data.instance_of?(Fixnum)
:boolean if data.instance_of?(TrueClass) || data.instance_of?(FalseClass)
end
def serialize()
self.data_type.to_s + ':' + self.data.to_s
end
def File.parse(stringified_file)
data_type = stringified_file.split(':')[0]
RBFS::File.new(nil) if data_type == 'nil'
RBFS::File.new(stringified_file.split(':')[1].to_s) if data_type == 'string'
RBFS::File.new(stringified_file.split(':')[1].to_sym) if data_type == 'symbol'
RBFS::File.new(stringified_file.split(':')[1].to_i) if data_type == 'number'
RBFS::File.new(true) if stringified_file.split(':')[1] == 'true'
RBFS::File.new(false) if stringified_file.split(':')[1] == 'false'
end
end
class Directory
def initialize
end
end
end

Лог от изпълнението

FFFFFFFFFFFFFFFFFFF.....FFFFFFFFFFFFFFFFFFFF

Failures:

  1) RBFS Directory can add a file
     Failure/Error: directory.add_file 'README', file
     NoMethodError:
       undefined method `add_file' for #<RBFS::Directory:0xb9f9b2d0>
     # /tmp/d20141111-26053-ypyit0/spec.rb:144:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  2) RBFS Directory can create empty directory
     Failure/Error: directory.add_directory 'home'
     NoMethodError:
       undefined method `add_directory' for #<RBFS::Directory:0xb9f9a3f8>
     # /tmp/d20141111-26053-ypyit0/spec.rb:150:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  3) RBFS Directory can add a directory
     Failure/Error: directory.add_directory 'home', subdirectory
     NoMethodError:
       undefined method `add_directory' for #<RBFS::Directory:0xb9f99854>
     # /tmp/d20141111-26053-ypyit0/spec.rb:159:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  4) RBFS Directory without files returns empty hash for the files
     Failure/Error: expect(directory.files).to eq({})
     NoMethodError:
       undefined method `files' for #<RBFS::Directory:0xb9f98af8>
     # /tmp/d20141111-26053-ypyit0/spec.rb:7:in `block (4 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  5) RBFS Directory without files can be serialized
     Failure/Error: expect(directory.serialize).to eq '0:0:'
     NoMethodError:
       undefined method `serialize' for #<RBFS::Directory:0xb9f97f7c>
     # /tmp/d20141111-26053-ypyit0/spec.rb:11:in `block (4 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  6) RBFS Directory without directories returns empty hash for the directories
     Failure/Error: expect(directory.directories).to eq({})
     NoMethodError:
       undefined method `directories' for #<RBFS::Directory:0xb9f97234>
     # /tmp/d20141111-26053-ypyit0/spec.rb:17:in `block (4 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  7) RBFS Directory with files and directories returns correct file hash
     Failure/Error: directory.add_file('README',  readme)
     NoMethodError:
       undefined method `add_file' for #<RBFS::Directory:0xb9f9626c>
     # /tmp/d20141111-26053-ypyit0/spec.rb:27:in `block (4 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  8) RBFS Directory with files and directories returns correct directory hash
     Failure/Error: directory.add_file('README',  readme)
     NoMethodError:
       undefined method `add_file' for #<RBFS::Directory:0xb9f954c0>
     # /tmp/d20141111-26053-ypyit0/spec.rb:27:in `block (4 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  9) RBFS Directory serialization #serialize can serialize
     Failure/Error: directory.add_file 'README',  RBFS::File.new('Hello world!')
     NoMethodError:
       undefined method `add_file' for #<RBFS::Directory:0xb9f93f08>
     # /tmp/d20141111-26053-ypyit0/spec.rb:77:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  10) RBFS Directory serialization #serialize can serialize multiple directories recursively
     Failure/Error: directory.add_file 'README',  RBFS::File.new('Hello world!')
     NoMethodError:
       undefined method `add_file' for #<RBFS::Directory:0xb9f930e4>
     # /tmp/d20141111-26053-ypyit0/spec.rb:85:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  11) RBFS Directory serialization ::parse can parse empty directories
     Failure/Error: parsed_directory = RBFS::Directory.parse('0:0:')
     NoMethodError:
       undefined method `parse' for RBFS::Directory:Class
     # /tmp/d20141111-26053-ypyit0/spec.rb:101:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  12) RBFS Directory serialization ::parse can parse directories with files
     Failure/Error: parsed_directory = RBFS::Directory.parse(simple_serialized_string)
     NoMethodError:
       undefined method `parse' for RBFS::Directory:Class
     # /tmp/d20141111-26053-ypyit0/spec.rb:108:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  13) RBFS Directory serialization ::parse can parse directory trees without files
     Failure/Error: parsed_directory = RBFS::Directory.parse('0:2:dir1:15:0:1:dir2:4:0:0:dir3:4:0:0:')
     NoMethodError:
       undefined method `parse' for RBFS::Directory:Class
     # /tmp/d20141111-26053-ypyit0/spec.rb:117:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  14) RBFS Directory serialization ::parse can parse directories recursively
     Failure/Error: parsed_directory = RBFS::Directory.parse(recursive_serialized_string)
     NoMethodError:
       undefined method `parse' for RBFS::Directory:Class
     # /tmp/d20141111-26053-ypyit0/spec.rb:125:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  15) RBFS Directory #[] can walk a single directory
     Failure/Error: directory.add_directory 'home', home
     NoMethodError:
       undefined method `add_directory' for #<RBFS::Directory:0xb9f8e9b8>
     # /tmp/d20141111-26053-ypyit0/spec.rb:171:in `block (4 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  16) RBFS Directory #[] can walk multiple directories
     Failure/Error: directory.add_directory 'home', home
     NoMethodError:
       undefined method `add_directory' for #<RBFS::Directory:0xb9f8d658>
     # /tmp/d20141111-26053-ypyit0/spec.rb:171:in `block (4 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  17) RBFS Directory #[] can get files
     Failure/Error: directory.add_directory 'home', home
     NoMethodError:
       undefined method `add_directory' for #<RBFS::Directory:0xb9f8c9d8>
     # /tmp/d20141111-26053-ypyit0/spec.rb:171:in `block (4 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  18) RBFS Directory #[] returns nil if directory or file doesnt exist
     Failure/Error: directory.add_directory 'home', home
     NoMethodError:
       undefined method `add_directory' for #<RBFS::Directory:0xb9f8be48>
     # /tmp/d20141111-26053-ypyit0/spec.rb:171:in `block (4 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  19) RBFS Directory #[] is case-sensitive
     Failure/Error: directory.add_directory 'home', home
     NoMethodError:
       undefined method `add_directory' for #<RBFS::Directory:0xb9f8ac50>
     # /tmp/d20141111-26053-ypyit0/spec.rb:171:in `block (4 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  20) RBFS File data type nil can be parsed
     Failure/Error: expect(file.data     ).to eq nil
     NoMethodError:
       undefined method `data' for nil:NilClass
     # /tmp/d20141111-26053-ypyit0/spec.rb:231:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  21) RBFS File data type string can be detected
     Failure/Error: expect(file.data_type).to eq :string
       
       expected: :string
            got: :nil
       
       (compared using ==)
       
       Diff:
       @@ -1,2 +1,2 @@
       -:string
       +:nil
     # /tmp/d20141111-26053-ypyit0/spec.rb:240:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  22) RBFS File data type string can be serialized
     Failure/Error: expect(file.serialize).to eq 'string:Hi'
       
       expected: "string:Hi"
            got: "nil:Hi"
       
       (compared using ==)
     # /tmp/d20141111-26053-ypyit0/spec.rb:244:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  23) RBFS File data type string can be parsed
     Failure/Error: expect(file.data     ).to eq 'Hey there'
     NoMethodError:
       undefined method `data' for nil:NilClass
     # /tmp/d20141111-26053-ypyit0/spec.rb:250:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  24) RBFS File data type string can parse a string with colons
     Failure/Error: expect(file.data     ).to eq 'Hay :)'
     NoMethodError:
       undefined method `data' for nil:NilClass
     # /tmp/d20141111-26053-ypyit0/spec.rb:257:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  25) RBFS File data type symbol can be detected
     Failure/Error: expect(file.data_type).to eq :symbol
       
       expected: :symbol
            got: :nil
       
       (compared using ==)
       
       Diff:
       @@ -1,2 +1,2 @@
       -:symbol
       +:nil
     # /tmp/d20141111-26053-ypyit0/spec.rb:266:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  26) RBFS File data type symbol can be serialized
     Failure/Error: expect(file.serialize).to eq 'symbol:yo'
       
       expected: "symbol:yo"
            got: "nil:yo"
       
       (compared using ==)
     # /tmp/d20141111-26053-ypyit0/spec.rb:270:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  27) RBFS File data type symbol can be parsed
     Failure/Error: expect(file.data     ).to eq :hello
     NoMethodError:
       undefined method `data' for nil:NilClass
     # /tmp/d20141111-26053-ypyit0/spec.rb:276:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  28) RBFS File data type number can be detected
     Failure/Error: expect(file.data_type).to eq :number
       
       expected: :number
            got: :nil
       
       (compared using ==)
       
       Diff:
       @@ -1,2 +1,2 @@
       -:number
       +:nil
     # /tmp/d20141111-26053-ypyit0/spec.rb:285:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  29) RBFS File data type number can be serialized
     Failure/Error: expect(file.serialize).to eq 'number:666'
       
       expected: "number:666"
            got: "nil:666"
       
       (compared using ==)
     # /tmp/d20141111-26053-ypyit0/spec.rb:289:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  30) RBFS File data type number can be parsed
     Failure/Error: expect(file.data     ).to eq 1234
     NoMethodError:
       undefined method `data' for nil:NilClass
     # /tmp/d20141111-26053-ypyit0/spec.rb:295:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  31) RBFS File data type float number can be detected
     Failure/Error: expect(file.data_type).to eq :number
       
       expected: :number
            got: :nil
       
       (compared using ==)
       
       Diff:
       @@ -1,2 +1,2 @@
       -:number
       +:nil
     # /tmp/d20141111-26053-ypyit0/spec.rb:304:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  32) RBFS File data type float number can be serialized
     Failure/Error: expect(file.serialize).to eq 'number:666.6'
       
       expected: "number:666.6"
            got: "nil:666.6"
       
       (compared using ==)
     # /tmp/d20141111-26053-ypyit0/spec.rb:308:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  33) RBFS File data type float number can be parsed
     Failure/Error: expect(file.data     ).to eq 3.14
     NoMethodError:
       undefined method `data' for nil:NilClass
     # /tmp/d20141111-26053-ypyit0/spec.rb:314:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  34) RBFS File data type boolean true can be detected
     Failure/Error: expect(file.data_type).to eq :boolean
       
       expected: :boolean
            got: :nil
       
       (compared using ==)
       
       Diff:
       @@ -1,2 +1,2 @@
       -:boolean
       +:nil
     # /tmp/d20141111-26053-ypyit0/spec.rb:323:in `block (6 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  35) RBFS File data type boolean true can be serialized
     Failure/Error: expect(file.serialize).to eq 'boolean:true'
       
       expected: "boolean:true"
            got: "nil:true"
       
       (compared using ==)
     # /tmp/d20141111-26053-ypyit0/spec.rb:328:in `block (6 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  36) RBFS File data type boolean true can be parsed
     Failure/Error: expect(file.data     ).to eq true
     NoMethodError:
       undefined method `data' for nil:NilClass
     # /tmp/d20141111-26053-ypyit0/spec.rb:334:in `block (6 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  37) RBFS File data type boolean false can be detected
     Failure/Error: expect(file.data_type).to eq :boolean
       
       expected: :boolean
            got: :nil
       
       (compared using ==)
       
       Diff:
       @@ -1,2 +1,2 @@
       -:boolean
       +:nil
     # /tmp/d20141111-26053-ypyit0/spec.rb:342:in `block (6 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  38) RBFS File data type boolean false can be serialized
     Failure/Error: expect(file.serialize).to eq 'boolean:false'
       
       expected: "boolean:false"
            got: "nil:false"
       
       (compared using ==)
     # /tmp/d20141111-26053-ypyit0/spec.rb:347:in `block (6 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  39) RBFS File data type boolean false can be parsed
     Failure/Error: expect(file.data_type).to eq :boolean
       
       expected: :boolean
            got: nil
       
       (compared using ==)
     # /tmp/d20141111-26053-ypyit0/spec.rb:354:in `block (6 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

Finished in 0.04692 seconds
44 examples, 39 failures

Failed examples:

rspec /tmp/d20141111-26053-ypyit0/spec.rb:141 # RBFS Directory can add a file
rspec /tmp/d20141111-26053-ypyit0/spec.rb:149 # RBFS Directory can create empty directory
rspec /tmp/d20141111-26053-ypyit0/spec.rb:156 # RBFS Directory can add a directory
rspec /tmp/d20141111-26053-ypyit0/spec.rb:6 # RBFS Directory without files returns empty hash for the files
rspec /tmp/d20141111-26053-ypyit0/spec.rb:10 # RBFS Directory without files can be serialized
rspec /tmp/d20141111-26053-ypyit0/spec.rb:16 # RBFS Directory without directories returns empty hash for the directories
rspec /tmp/d20141111-26053-ypyit0/spec.rb:33 # RBFS Directory with files and directories returns correct file hash
rspec /tmp/d20141111-26053-ypyit0/spec.rb:37 # RBFS Directory with files and directories returns correct directory hash
rspec /tmp/d20141111-26053-ypyit0/spec.rb:76 # RBFS Directory serialization #serialize can serialize
rspec /tmp/d20141111-26053-ypyit0/spec.rb:84 # RBFS Directory serialization #serialize can serialize multiple directories recursively
rspec /tmp/d20141111-26053-ypyit0/spec.rb:100 # RBFS Directory serialization ::parse can parse empty directories
rspec /tmp/d20141111-26053-ypyit0/spec.rb:107 # RBFS Directory serialization ::parse can parse directories with files
rspec /tmp/d20141111-26053-ypyit0/spec.rb:116 # RBFS Directory serialization ::parse can parse directory trees without files
rspec /tmp/d20141111-26053-ypyit0/spec.rb:124 # RBFS Directory serialization ::parse can parse directories recursively
rspec /tmp/d20141111-26053-ypyit0/spec.rb:177 # RBFS Directory #[] can walk a single directory
rspec /tmp/d20141111-26053-ypyit0/spec.rb:181 # RBFS Directory #[] can walk multiple directories
rspec /tmp/d20141111-26053-ypyit0/spec.rb:185 # RBFS Directory #[] can get files
rspec /tmp/d20141111-26053-ypyit0/spec.rb:189 # RBFS Directory #[] returns nil if directory or file doesnt exist
rspec /tmp/d20141111-26053-ypyit0/spec.rb:193 # RBFS Directory #[] is case-sensitive
rspec /tmp/d20141111-26053-ypyit0/spec.rb:229 # RBFS File data type nil can be parsed
rspec /tmp/d20141111-26053-ypyit0/spec.rb:239 # RBFS File data type string can be detected
rspec /tmp/d20141111-26053-ypyit0/spec.rb:243 # RBFS File data type string can be serialized
rspec /tmp/d20141111-26053-ypyit0/spec.rb:247 # RBFS File data type string can be parsed
rspec /tmp/d20141111-26053-ypyit0/spec.rb:254 # RBFS File data type string can parse a string with colons
rspec /tmp/d20141111-26053-ypyit0/spec.rb:265 # RBFS File data type symbol can be detected
rspec /tmp/d20141111-26053-ypyit0/spec.rb:269 # RBFS File data type symbol can be serialized
rspec /tmp/d20141111-26053-ypyit0/spec.rb:273 # RBFS File data type symbol can be parsed
rspec /tmp/d20141111-26053-ypyit0/spec.rb:284 # RBFS File data type number can be detected
rspec /tmp/d20141111-26053-ypyit0/spec.rb:288 # RBFS File data type number can be serialized
rspec /tmp/d20141111-26053-ypyit0/spec.rb:292 # RBFS File data type number can be parsed
rspec /tmp/d20141111-26053-ypyit0/spec.rb:303 # RBFS File data type float number can be detected
rspec /tmp/d20141111-26053-ypyit0/spec.rb:307 # RBFS File data type float number can be serialized
rspec /tmp/d20141111-26053-ypyit0/spec.rb:311 # RBFS File data type float number can be parsed
rspec /tmp/d20141111-26053-ypyit0/spec.rb:321 # RBFS File data type boolean true can be detected
rspec /tmp/d20141111-26053-ypyit0/spec.rb:326 # RBFS File data type boolean true can be serialized
rspec /tmp/d20141111-26053-ypyit0/spec.rb:331 # RBFS File data type boolean true can be parsed
rspec /tmp/d20141111-26053-ypyit0/spec.rb:340 # RBFS File data type boolean false can be detected
rspec /tmp/d20141111-26053-ypyit0/spec.rb:345 # RBFS File data type boolean false can be serialized
rspec /tmp/d20141111-26053-ypyit0/spec.rb:350 # RBFS File data type boolean false can be parsed

История (1 версия и 0 коментара)

Здравко обнови решението на 09.11.2014 19:08 (преди над 9 години)

+module RBFS
+ class File
+ attr_reader :data_type
+ attr_accessor :data
+
+ def initialize(data = nil)
+ @data = data
+ @data_type =
+ :nil if data.instance_of?(NilClass)
+ :string if data.instance_of?(String)
+ :symbol if data.instance_of?(Symbol)
+ :number if data.instance_of?(Fixnum)
+ :boolean if data.instance_of?(TrueClass) || data.instance_of?(FalseClass)
+ end
+
+ def serialize()
+ self.data_type.to_s + ':' + self.data.to_s
+ end
+
+ def File.parse(stringified_file)
+ data_type = stringified_file.split(':')[0]
+ RBFS::File.new(nil) if data_type == 'nil'
+
+ RBFS::File.new(stringified_file.split(':')[1].to_s) if data_type == 'string'
+
+ RBFS::File.new(stringified_file.split(':')[1].to_sym) if data_type == 'symbol'
+
+ RBFS::File.new(stringified_file.split(':')[1].to_i) if data_type == 'number'
+
+ RBFS::File.new(true) if stringified_file.split(':')[1] == 'true'
+
+ RBFS::File.new(false) if stringified_file.split(':')[1] == 'false'
+ end
+ end
+
+ class Directory
+ def initialize
+
+ end
+ end
+end
+
+