Решение на Трета задача от Людмила Савова

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

Към профила на Людмила Савова

Резултати

  • 2 точки от тестове
  • 0 бонус точки
  • 2 точки общо
  • 18 успешни тест(а)
  • 26 неуспешни тест(а)

Код

module RBFS
DATA_TYPE = { "String" => :string,
"Numeric" => :number,
"NilClass" => :nil,
"Symbol" => :symbol,
"TrueClass" => :boolean,
"FalseClass" => :boolean }
class File
attr_accessor :data_type
attr_accessor :data
def initialize(object = nil)
@object = object
@data_type = data_type?(@object)
@data = @object.to_s
end
def parse(string_data)
data = string_data.split(":", 2).last
case string_data.split(":", 2).first
when "string" then return File.new(data)
when "number" then return File.new(eval(data))
when "nil" then return File.new()
when "symbol" then return File.new(data.to_sym)
when "boolean" then return File.new(eval(data))
end
end
def data_type?(object)
DATA_TYPE.select{ |key, value| object.is_a? eval(key) }.values[0]
end
def serialize
@data_type.to_s + ':' + @data
end
end
class Directory
attr_accessor :files
attr_accessor :directories
def initialize()
@files = {}
@directories = {}
end
def add_file(name, file)
@files[name] = file
end
def add_directory(name = '', directory = Directory.new)
@directories[name] = directory
end
def [](name)
if @directories[name] != nil then return @directories[name] end
if @files[name] != nil then return @files[name] end
end
def serialize()
serialized_files = @files.size.to_s + ':'
serialized_directories = @directories.size.to_s + ':'
@files.each do |name, file|
serialized_files +=name + ':' + file.serialize.length.to_s + ':' + file.serialize
end
@directories.each do |name, directory|
serialized_directories += name + ':' + directory.serialize.length.to_s \
+ ':' + directory.serialize
end
serialized_files + serialized_directories
end
def parse(string_data)
end
end
end

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

▸ Покажи лога

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

Людмила обнови решението на 08.11.2014 17:08 (преди над 10 години)

▸ Покажи разликите
+module RBFS
+ DATA_TYPE = { "String" => :string,
+ "Numeric" => :number,
+ "NilClass" => :nil,
+ "Symbol" => :symbol,
+ "TrueClass" => :boolean,
+ "FalseClass" => :boolean }
+ class File
+ attr_accessor :data_type
+ attr_accessor :data
+ attr_accessor :serialize
+ attr_accessor :parse
+ def initialize(object = nil)
+ @object = object
+ @data_type = data_type?(@object)
+ @data = @object.to_s
+ end
+
+ def parse(string_data)
+ data = string_data.split(":", 2).last
+ case string_data.split(":", 2).first
+ when "string" then return File.new(data)
+ when "number" then return File.new(eval(data))
+ when "nil" then return File.new()
+ when "symbol" then return File.new(data.to_sym)
+ when "boolean" then return File.new(eval(data))
+ end
+ end
+
+ def data_type?(object)
+ DATA_TYPE.select{ |key, value| object.is_a? eval(key) }.values[0]
+ end
+
+ def serialize
+ @data_type.to_s + ':' + @data
+ end
+ end
+
+ class Directory
+ attr_accessor :files
+ attr_accessor :directories
+ def initialize()
+ @files = {}
+ @directories = {}
+ end
+
+ def add_file(name, file)
+ @files[name] = file
+ end
+
+ def add_directory(name = '', directory = Directory.new)
+ @directories[name] = directory
+ end
+
+ def [](name)
+ if @directories[name] != nil then return @directories[name] end
+ if @files[name] != nil then return @files[name] end
+ end
+
+ def serialize()
+ serialized_files = @files.size.to_s + ':'
+ serialized_directories = @directories.size.to_s + ':'
+ @files.each do |name, file|
+ serialized_files +=name + ':' + file.serialize.length.to_s + ':' + file.serialize
+ end
+ @directories.each do |name, directory|
+ serialized_directories += name + ':' + directory.serialize.length.to_s \
+ + ':' + directory.serialize
+ end
+ serialized_files.chomp + serialized_directories
+ end
+
+ def parse(string_data)
+ end
+
+ end
+end

Людмила обнови решението на 08.11.2014 18:06 (преди над 10 години)

▸ Покажи разликите
module RBFS
DATA_TYPE = { "String" => :string,
"Numeric" => :number,
"NilClass" => :nil,
"Symbol" => :symbol,
"TrueClass" => :boolean,
"FalseClass" => :boolean }
class File
attr_accessor :data_type
attr_accessor :data
- attr_accessor :serialize
- attr_accessor :parse
+
def initialize(object = nil)
@object = object
@data_type = data_type?(@object)
@data = @object.to_s
end
def parse(string_data)
data = string_data.split(":", 2).last
case string_data.split(":", 2).first
when "string" then return File.new(data)
when "number" then return File.new(eval(data))
when "nil" then return File.new()
when "symbol" then return File.new(data.to_sym)
when "boolean" then return File.new(eval(data))
end
end
def data_type?(object)
DATA_TYPE.select{ |key, value| object.is_a? eval(key) }.values[0]
end
def serialize
@data_type.to_s + ':' + @data
end
end
class Directory
attr_accessor :files
attr_accessor :directories
+
def initialize()
@files = {}
@directories = {}
end
def add_file(name, file)
@files[name] = file
end
def add_directory(name = '', directory = Directory.new)
@directories[name] = directory
end
def [](name)
if @directories[name] != nil then return @directories[name] end
if @files[name] != nil then return @files[name] end
end
def serialize()
serialized_files = @files.size.to_s + ':'
serialized_directories = @directories.size.to_s + ':'
@files.each do |name, file|
serialized_files +=name + ':' + file.serialize.length.to_s + ':' + file.serialize
end
@directories.each do |name, directory|
serialized_directories += name + ':' + directory.serialize.length.to_s \
+ ':' + directory.serialize
end
serialized_files.chomp + serialized_directories
end
def parse(string_data)
end
end
end

Людмила обнови решението на 10.11.2014 00:21 (преди над 10 години)

▸ Покажи разликите
module RBFS
DATA_TYPE = { "String" => :string,
"Numeric" => :number,
"NilClass" => :nil,
"Symbol" => :symbol,
"TrueClass" => :boolean,
"FalseClass" => :boolean }
class File
attr_accessor :data_type
attr_accessor :data
def initialize(object = nil)
@object = object
@data_type = data_type?(@object)
@data = @object.to_s
end
def parse(string_data)
data = string_data.split(":", 2).last
case string_data.split(":", 2).first
when "string" then return File.new(data)
when "number" then return File.new(eval(data))
when "nil" then return File.new()
when "symbol" then return File.new(data.to_sym)
when "boolean" then return File.new(eval(data))
end
end
def data_type?(object)
DATA_TYPE.select{ |key, value| object.is_a? eval(key) }.values[0]
end
def serialize
@data_type.to_s + ':' + @data
end
end
class Directory
attr_accessor :files
attr_accessor :directories
def initialize()
@files = {}
@directories = {}
end
def add_file(name, file)
@files[name] = file
end
def add_directory(name = '', directory = Directory.new)
@directories[name] = directory
end
def [](name)
if @directories[name] != nil then return @directories[name] end
if @files[name] != nil then return @files[name] end
end
def serialize()
serialized_files = @files.size.to_s + ':'
serialized_directories = @directories.size.to_s + ':'
@files.each do |name, file|
serialized_files +=name + ':' + file.serialize.length.to_s + ':' + file.serialize
end
@directories.each do |name, directory|
serialized_directories += name + ':' + directory.serialize.length.to_s \
+ ':' + directory.serialize
end
- serialized_files.chomp + serialized_directories
+ serialized_files + serialized_directories
end
def parse(string_data)
end
-
end
end