Решение на Четвърта задача от Камен Канев

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

Към профила на Камен Канев

Резултати

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

Код

module UI
class LabelMain
attr_accessor :result, :text
def initialize(text, border, style)
@text, @border, @style = text, border, style
stylization
end
def self.label(text:,style: nil,border: nil)
@result << LabelMain.new(name, style, border)
end
def self.temp_array(object)
if nil
@result = []
else
@result << object
end
end
def horizontal(text:, style: nil, border: nil, &block)
LabelMain.temp_array(nil)
LabelMain.class_eval{ define_method(:temp_horizontal, block) }
end
def vertical(text:, style: nil, border: nil, &block)
LabelMain.temp_array(nil)
LabelMain.class_eval{ define_method(:temp_vertical, block) }
end
def stylization
if @style.respond_to?(@style.to_sym)
@text = @text.method(@style)
end
@text = @border.to_s + @text + @border.to_s
end
end
class TextScreen
def self.draw(&block)
LabelMain.class_eval{ define_method(:temp_drawer, block) }
end
LabelMain.temp_drawer
end
end

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

/tmp/d20141126-26053-1ew9b6j/solution.rb:45:in `<class:TextScreen>': undefined method `temp_drawer' for UI::LabelMain:Class (NoMethodError)
	from /tmp/d20141126-26053-1ew9b6j/solution.rb:40:in `<module:UI>'
	from /tmp/d20141126-26053-1ew9b6j/solution.rb:1:in `<top (required)>'
	from /data/rails/evans-2014/shared/bundle/ruby/2.1.0/gems/rspec-core-2.14.7/lib/rspec/core/configuration.rb:867:in `require'
	from /data/rails/evans-2014/shared/bundle/ruby/2.1.0/gems/rspec-core-2.14.7/lib/rspec/core/configuration.rb:867:in `block in setup_load_path_and_require'
	from /data/rails/evans-2014/shared/bundle/ruby/2.1.0/gems/rspec-core-2.14.7/lib/rspec/core/configuration.rb:867:in `each'
	from /data/rails/evans-2014/shared/bundle/ruby/2.1.0/gems/rspec-core-2.14.7/lib/rspec/core/configuration.rb:867:in `setup_load_path_and_require'
	from /data/rails/evans-2014/shared/bundle/ruby/2.1.0/gems/rspec-core-2.14.7/lib/rspec/core/configuration_options.rb:25:in `configure'
	from /data/rails/evans-2014/shared/bundle/ruby/2.1.0/gems/rspec-core-2.14.7/lib/rspec/core/command_line.rb:21:in `run'
	from /data/rails/evans-2014/shared/bundle/ruby/2.1.0/gems/rspec-core-2.14.7/lib/rspec/core/runner.rb:80:in `run'
	from /data/rails/evans-2014/shared/bundle/ruby/2.1.0/gems/rspec-core-2.14.7/lib/rspec/core/runner.rb:17:in `block in autorun'

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

Камен обнови решението на 26.11.2014 16:55 (преди над 9 години)

+module UI
+
+ class LabelMain
+ attr_accessor :result, :text
+ def initialize(text, border, style)
+ @text, @border, @style = text, border, style
+ stylization
+ end
+
+ def self.label(text:,style: nil,border: nil)
+ @result << LabelMain.new(name, style, border)
+ end
+
+ def self.temp_array(object)
+ if nil
+ @result = []
+ else
+ @result << object
+ end
+ end
+
+ def horizontal(text:, style: nil, border: nil, &block)
+ LabelMain.temp_array(nil)
+ LabelMain.class_eval{ define_method(:temp_horizontal, block) }
+ end
+
+ def vertical(text:, style: nil, border: nil, &block)
+ LabelMain.temp_array(nil)
+ LabelMain.class_eval{ define_method(:temp_vertical, block) }
+ end
+
+ def stylization
+ if @style.respond_to?(@style.to_sym)
+ @text = @text.method(@style)
+ end
+ @text = @border.to_s + @text + @border.to_s
+ end
+ end
+
+ class TextScreen
+
+ def self.draw(&block)
+ LabelMain.class_eval{ define_method(:temp_drawer, block) }
+ end
+ LabelMain.temp_drawer
+ end
+end