Форум программистов, компьютерный форум, киберфорум
Ruby
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 08.10.2018
Сообщений: 93
1

Ruby attr_reader

08.01.2020, 21:01. Показов 1239. Ответов 2
Метки ruby (Все метки)

Author24 — интернет-сервис помощи студентам
Не хватает теста, в котором с помощью assert_kind_of проверяется, что объект класса Word2 также "наследник" Word. Как это осуществить?

Основная программа
Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# frozen_string_literal: true
 
# lb7_2.rb
# class Word
class Word
  def initialize(word = '')
    @word = word.to_s.gsub!(/\s.+/, '')
  end
 
  def all_info
    puts "Объект класса #{self.class.name} содержит поля:"
    puts "  Слово:#{@word.class.name}='#{@word}'"
  end
 
  def print
    puts @word
  end
 
  def size
    @word.size
  end
 
  def word
    @word.clone
  end
end
 
# class Word2
class Word2 < Word
  def initialize(word2 = '')
    super(word2)
    @length = @word2.size
  end
 
  def size
    @length
  end
 
  def all_info
    super
    puts "  Длина:#{@length.class.name}=#{@length}"
  end
 
  def count_of_vowels
    @word2.count 'eyuioaуеыаоэяию'
  end
end
Код тестов
Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# frozen_string_literal: true
 
# test_lb7_2.rb
require './lb7_2.rb'
require 'minitest/autorun'
# Test class
class Test1 < MiniTest::Unit::TestCase
  def test_1
    a = Word.new 'пример текста'
    assert_equal a.word, 'пример'
  end
 
  def test_2
    a = Word.new 'пример текста'
    assert_equal a.size, 6
  end
 
  def test_3
    a = Word2.new 'пример текста'
    assert_equal a.size, 6
  end
 
  def test_4
    a = Word2.new 'пример текста'
    assert_equal a.count_of_vowels, 2
  end
 
  def test_5
    a = Word2.new
    assert_equal a.size, 0
  end
end


Исполняемый файл
Ruby
1
2
3
4
5
6
7
8
9
10
11
# frozen_string_literal: true
 
# tui_lb7_2
require './lb7_2.rb'
puts 'Введите слово:'
a = Word2.new(gets.chomp)
puts 'Вывод слова:'
a.print
puts "Длина слова по запросу:#{a.size}"
a.all_info
puts "Гласных в слове:#{a.count_of_vowels}"
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.01.2020, 21:01
Ответы с готовыми решениями:

Attr_reader
Добрый день! Почему дает менять символьное имя :age ??? Я же поставил attr_reader Вот код ...

чтобы выучить Ruby on Rails, надо перед этим учить сам Ruby?
чтобы учить Ruby on Rails, надо перед этим учить сам Ruby?

Литература по Ruby и Ruby-on-Rails
Здравствуйте! Посоветуйте хороший самоучитель по Ruby для начинающих программистов! Спасибо!

Чтобы писать на Ruby on Rails - нужно учить Ruby потом Rails?
Чтобы выучить Ruby on Rails - нужно учить Ruby потом Rails?

2
the hardway first
Эксперт JS
2461 / 1836 / 906
Регистрация: 05.06.2015
Сообщений: 3,603
09.01.2020, 09:20 2
Цитата Сообщение от ArseniyPC Посмотреть сообщение
Не хватает теста
То есть в остальном у вас всё в порядке?
Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# frozen_string_literal: true
 
# lb7_2.rb
# class Word
class Word
  def initialize(word = '')
    @word = word.to_s.gsub(/\s.+/, '')
  end
 
  def all_info
    puts "Объект класса #{self.class.name} содержит поля:"
    puts "  Слово:#{@word.class.name}='#{@word}'"
  end
 
  def print
    puts @word
  end
 
  def size
    @word.size
  end
 
  def word
    @word.clone
  end
end
 
# class Word2
class Word2 < Word
  def all_info
    super
    puts "  Длина:#{size.class.name}=#{size}"
  end
 
  def count_of_vowels
    @word.count 'eyuioaуеыаоэяию'
  end
end
Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# frozen_string_literal: true
 
# test_lb7_2.rb
require './lb7_2.rb'
require 'minitest/autorun'
# Test class
class Test1 < MiniTest::Unit::TestCase # MiniTest::Unit::TestCase is now Minitest::Test.
  def test_1
    a = Word.new 'пример текста'
    assert_equal 'пример', a.word
  end
 
  def test_2
    a = Word.new 'пример текста'
    assert_equal 6, a.size
  end
end
 
class Test2 < MiniTest::Unit::TestCase # MiniTest::Unit::TestCase is now Minitest::Test.
  def test_3
    a = Word2.new 'пример текста'
    assert_equal 6, a.size
  end
 
  def test_4
    a = Word2.new 'пример текста'
    assert_equal 2, a.count_of_vowels
  end
 
  def test_5
    a = Word2.new
    assert_equal 0, a.size
  end
  
  def test_kind_of_word_class
    a = Word2.new
    assert_kind_of Word, a
  end
end
0
0 / 0 / 0
Регистрация: 08.10.2018
Сообщений: 93
11.01.2020, 01:28  [ТС] 3
Ну, проверяющий сделал замечание по этому поводу, а также сказал: "чтобы не писать лишний код, вот это (@this = aaa.to_s).gsub!(/\s.+/, '')
писать совершенно бессмысленно, потому что так же будет работать и @this = aaa.to_s.gsub(/\s.+/, ''), @length = @this.to_s.size по той же логике @length = @this.size. Переменные рекомендую назвать по-человечески, например,
aaa в конструкторе Word можно было назвать word и переменную инстанса @this, которая содержит word, назвать @word - это существенно упростит
читаемость и является де-факто соглашением в руби (и не только). То же можно проделать с остальными переменными. Еще не хватает теста, в котором с помощью assert_kind_of проверяется,
что объект класса Word2 также "наследник" Word."

Все ли замечания исправлены? Подскажите пожалуйста, очень важно.

Добавлено через 1 минуту
j2FunOnly, j2FunOnly, Здравствуйте, можете помочь мне в консультировании по Ruby?
0
11.01.2020, 01:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.01.2020, 01:28
Помогаю со студенческими работами здесь

% в ruby
(2...self).all?{|i| self % i != 0} Подскажите, пожалуйста, какую функцию здесь выполняют %. Я...

Установка Ruby
Только начал изучать Руби. Подскажите пожалуйста. Как правильно установить, его что бы Руби...

Ошибка с Ruby
Привет ребята пытаюсь запустить программу вот она Установил ruby запускаю программу вылазят...

Выборка в RUBY
Доброго всем времени суток,,у меня есть проблемка не большая,кто может,прошу помощи. В общем есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru