require "./setup"
# my_page = Swars::Agent::MyPage.new(user_key: "testarossa00", run_remote: true)
# my_page.rule_grade_list             # => #<Swars::Agent::RuleGradeList:0x0000000160d167b0 @list=[{rule: #<Swars::RuleInfo:0x000000013db36cd8 @attributes={key: :ten_min, name: "10分", long_name: "10分切れ負け", sw_side_key: "", csa_time_limit: "00:10+00", life_time: 10 minutes, real_life_time: nil, ittezume_jirasi_sec: 1.0 minute, kangaesugi_sec: 2.5 minutes, kangaesugi_like_houti_sec: 3 minutes, toryo_houti_sec: 1 minute, taisekimati_sec: 5 minutes, related_time_p: true, resignation_limit: 3 minutes, most_min_turn_max_limit: 35, code: 0}>, grade: #<Swars::GradeInfo:0x000000013fc336c0 @attributes={key: :"10000級", visualize: false, select_option: false, show_in_search_script: false, teacher: false, hourly_active_user: false, lose_pattern: false, range_10kyu_to_9dan: false, range_30kyu_to_9dan: false, code: 40}>}, {rule: #<Swars::RuleInfo:0x000000013db36b48 @attributes={key: :three_min, name: "3分", long_name: "3分切れ負け", sw_side_key: "sb", csa_time_limit: "00:03+00", life_time: 3 minutes, real_life_time: nil, ittezume_jirasi_sec: 45 seconds, kangaesugi_sec: 30 seconds, kangaesugi_like_houti_sec: 1 minute, toryo_houti_sec: 1 minute, taisekimati_sec: 2 minutes, related_time_p: true, resignation_limit: 1 minute, most_min_turn_max_limit: 35, code: 1}>, grade: #<Swars::GradeInfo:0x000000013fc363e8 @attributes={key: :"1級", visualize: true, select_option: true, show_in_search_script: true, teacher: false, hourly_active_user: true, lose_pattern: true, range_10kyu_to_9dan: true, range_30kyu_to_9dan: true, code: 10}>}, {rule: #<Swars::RuleInfo:0x000000013db36b20 @attributes={key: :ten_sec, name: "10秒", long_name: "1手10秒", sw_side_key: "s1", csa_time_limit: "00:00+10", life_time: 1 hour, real_life_time: 0, ittezume_jirasi_sec: nil, kangaesugi_sec: nil, kangaesugi_like_houti_sec: nil, toryo_houti_sec: nil, taisekimati_sec: nil, related_time_p: false, resignation_limit: 1 minute, most_min_turn_max_limit: 35, code: 2}>, grade: #<Swars::GradeInfo:0x000000013fc37e00 @attributes={key: :十段, visualize: false, select_option: true, show_in_search_script: true, teacher: true, hourly_active_user: false, lose_pattern: true, range_10kyu_to_9dan: false, range_30kyu_to_9dan: false, code: 0}>}]>
# my_page.ban?                        # => true
# my_page.page_not_found?             # => false
# my_page.rule_grade_list             # => #<Swars::Agent::RuleGradeList:0x0000000160d167b0 @list=[{rule: #<Swars::RuleInfo:0x000000013db36cd8 @attributes={key: :ten_min, name: "10分", long_name: "10分切れ負け", sw_side_key: "", csa_time_limit: "00:10+00", life_time: 10 minutes, real_life_time: nil, ittezume_jirasi_sec: 1.0 minute, kangaesugi_sec: 2.5 minutes, kangaesugi_like_houti_sec: 3 minutes, toryo_houti_sec: 1 minute, taisekimati_sec: 5 minutes, related_time_p: true, resignation_limit: 3 minutes, most_min_turn_max_limit: 35, code: 0}>, grade: #<Swars::GradeInfo:0x000000013fc336c0 @attributes={key: :"10000級", visualize: false, select_option: false, show_in_search_script: false, teacher: false, hourly_active_user: false, lose_pattern: false, range_10kyu_to_9dan: false, range_30kyu_to_9dan: false, code: 40}>}, {rule: #<Swars::RuleInfo:0x000000013db36b48 @attributes={key: :three_min, name: "3分", long_name: "3分切れ負け", sw_side_key: "sb", csa_time_limit: "00:03+00", life_time: 3 minutes, real_life_time: nil, ittezume_jirasi_sec: 45 seconds, kangaesugi_sec: 30 seconds, kangaesugi_like_houti_sec: 1 minute, toryo_houti_sec: 1 minute, taisekimati_sec: 2 minutes, related_time_p: true, resignation_limit: 1 minute, most_min_turn_max_limit: 35, code: 1}>, grade: #<Swars::GradeInfo:0x000000013fc363e8 @attributes={key: :"1級", visualize: true, select_option: true, show_in_search_script: true, teacher: false, hourly_active_user: true, lose_pattern: true, range_10kyu_to_9dan: true, range_30kyu_to_9dan: true, code: 10}>}, {rule: #<Swars::RuleInfo:0x000000013db36b20 @attributes={key: :ten_sec, name: "10秒", long_name: "1手10秒", sw_side_key: "s1", csa_time_limit: "00:00+10", life_time: 1 hour, real_life_time: 0, ittezume_jirasi_sec: nil, kangaesugi_sec: nil, kangaesugi_like_houti_sec: nil, toryo_houti_sec: nil, taisekimati_sec: nil, related_time_p: false, resignation_limit: 1 minute, most_min_turn_max_limit: 35, code: 2}>, grade: #<Swars::GradeInfo:0x000000013fc37e00 @attributes={key: :十段, visualize: false, select_option: true, show_in_search_script: true, teacher: true, hourly_active_user: false, lose_pattern: true, range_10kyu_to_9dan: false, range_30kyu_to_9dan: false, code: 0}>}]>
# my_page.rule_grade_list.oneline     # => "10000級 1級 十段"
#
# my_page = Swars::Agent::MyPage.new(user_key: "shikasha", run_remote: true)
# my_page.rule_grade_list             # => #<Swars::Agent::RuleGradeList:0x0000000160aac768 @list=[{rule: #<Swars::RuleInfo:0x000000013db36cd8 @attributes={key: :ten_min, name: "10分", long_name: "10分切れ負け", sw_side_key: "", csa_time_limit: "00:10+00", life_time: 10 minutes, real_life_time: nil, ittezume_jirasi_sec: 1.0 minute, kangaesugi_sec: 2.5 minutes, kangaesugi_like_houti_sec: 3 minutes, toryo_houti_sec: 1 minute, taisekimati_sec: 5 minutes, related_time_p: true, resignation_limit: 3 minutes, most_min_turn_max_limit: 35, code: 0}>, grade: #<Swars::GradeInfo:0x000000013fc336c0 @attributes={key: :"10000級", visualize: false, select_option: false, show_in_search_script: false, teacher: false, hourly_active_user: false, lose_pattern: false, range_10kyu_to_9dan: false, range_30kyu_to_9dan: false, code: 40}>}, {rule: #<Swars::RuleInfo:0x000000013db36b48 @attributes={key: :three_min, name: "3分", long_name: "3分切れ負け", sw_side_key: "sb", csa_time_limit: "00:03+00", life_time: 3 minutes, real_life_time: nil, ittezume_jirasi_sec: 45 seconds, kangaesugi_sec: 30 seconds, kangaesugi_like_houti_sec: 1 minute, toryo_houti_sec: 1 minute, taisekimati_sec: 2 minutes, related_time_p: true, resignation_limit: 1 minute, most_min_turn_max_limit: 35, code: 1}>, grade: #<Swars::GradeInfo:0x000000013fc363e8 @attributes={key: :"1級", visualize: true, select_option: true, show_in_search_script: true, teacher: false, hourly_active_user: true, lose_pattern: true, range_10kyu_to_9dan: true, range_30kyu_to_9dan: true, code: 10}>}, {rule: #<Swars::RuleInfo:0x000000013db36b20 @attributes={key: :ten_sec, name: "10秒", long_name: "1手10秒", sw_side_key: "s1", csa_time_limit: "00:00+10", life_time: 1 hour, real_life_time: 0, ittezume_jirasi_sec: nil, kangaesugi_sec: nil, kangaesugi_like_houti_sec: nil, toryo_houti_sec: nil, taisekimati_sec: nil, related_time_p: false, resignation_limit: 1 minute, most_min_turn_max_limit: 35, code: 2}>, grade: #<Swars::GradeInfo:0x000000013fc37e00 @attributes={key: :十段, visualize: false, select_option: true, show_in_search_script: true, teacher: true, hourly_active_user: false, lose_pattern: true, range_10kyu_to_9dan: false, range_30kyu_to_9dan: false, code: 0}>}]>
# my_page.ban?                        # => true
# my_page.page_not_found?             # => false
# my_page.rule_grade_list             # => #<Swars::Agent::RuleGradeList:0x0000000160aac768 @list=[{rule: #<Swars::RuleInfo:0x000000013db36cd8 @attributes={key: :ten_min, name: "10分", long_name: "10分切れ負け", sw_side_key: "", csa_time_limit: "00:10+00", life_time: 10 minutes, real_life_time: nil, ittezume_jirasi_sec: 1.0 minute, kangaesugi_sec: 2.5 minutes, kangaesugi_like_houti_sec: 3 minutes, toryo_houti_sec: 1 minute, taisekimati_sec: 5 minutes, related_time_p: true, resignation_limit: 3 minutes, most_min_turn_max_limit: 35, code: 0}>, grade: #<Swars::GradeInfo:0x000000013fc336c0 @attributes={key: :"10000級", visualize: false, select_option: false, show_in_search_script: false, teacher: false, hourly_active_user: false, lose_pattern: false, range_10kyu_to_9dan: false, range_30kyu_to_9dan: false, code: 40}>}, {rule: #<Swars::RuleInfo:0x000000013db36b48 @attributes={key: :three_min, name: "3分", long_name: "3分切れ負け", sw_side_key: "sb", csa_time_limit: "00:03+00", life_time: 3 minutes, real_life_time: nil, ittezume_jirasi_sec: 45 seconds, kangaesugi_sec: 30 seconds, kangaesugi_like_houti_sec: 1 minute, toryo_houti_sec: 1 minute, taisekimati_sec: 2 minutes, related_time_p: true, resignation_limit: 1 minute, most_min_turn_max_limit: 35, code: 1}>, grade: #<Swars::GradeInfo:0x000000013fc363e8 @attributes={key: :"1級", visualize: true, select_option: true, show_in_search_script: true, teacher: false, hourly_active_user: true, lose_pattern: true, range_10kyu_to_9dan: true, range_30kyu_to_9dan: true, code: 10}>}, {rule: #<Swars::RuleInfo:0x000000013db36b20 @attributes={key: :ten_sec, name: "10秒", long_name: "1手10秒", sw_side_key: "s1", csa_time_limit: "00:00+10", life_time: 1 hour, real_life_time: 0, ittezume_jirasi_sec: nil, kangaesugi_sec: nil, kangaesugi_like_houti_sec: nil, toryo_houti_sec: nil, taisekimati_sec: nil, related_time_p: false, resignation_limit: 1 minute, most_min_turn_max_limit: 35, code: 2}>, grade: #<Swars::GradeInfo:0x000000013fc37e00 @attributes={key: :十段, visualize: false, select_option: true, show_in_search_script: true, teacher: true, hourly_active_user: false, lose_pattern: true, range_10kyu_to_9dan: false, range_30kyu_to_9dan: false, code: 0}>}]>
# my_page.rule_grade_list.oneline     # => "10000級 1級 十段"

my_page = Swars::Agent::MyPage.new(user_key: "shikacha", remote_run: true)
my_page.rule_grade_list             # => #<Swars::Agent::RuleGradeList:0x00000001262bc038 @list=[{rule: #<Swars::RuleInfo:0x0000000125fb85f8 @attributes={key: :ten_min, name: "10分", long_name: "10分切れ負け", sw_side_key: "", csa_time_limit: "00:10+00", life_time: 10 minutes, real_life_time: nil, ittezume_jirasi_sec: 1.0 minute, kangaesugi_sec: 2.5 minutes, kangaesugi_like_houti_sec: 3 minutes, toryo_houti_sec: 1 minute, taisekimati_sec: 5 minutes, related_time_p: true, resignation_limit: 3 minutes, most_min_turn_max_limit: 35, code: 0}>, grade: #<Swars::GradeInfo:0x00000001262d02b8 @attributes={key: :"28級", visualize: false, select_option: false, show_in_search_script: false, teacher: false, hourly_active_user: false, lose_pattern: true, range_10kyu_to_9dan: false, range_30kyu_to_9dan: false, code: 37}>}, {rule: #<Swars::RuleInfo:0x0000000125fb8508 @attributes={key: :three_min, name: "3分", long_name: "3分切れ負け", sw_side_key: "sb", csa_time_limit: "00:03+00", life_time: 3 minutes, real_life_time: nil, ittezume_jirasi_sec: 45 seconds, kangaesugi_sec: 30 seconds, kangaesugi_like_houti_sec: 1 minute, toryo_houti_sec: 1 minute, taisekimati_sec: 2 minutes, related_time_p: true, resignation_limit: 1 minute, most_min_turn_max_limit: 35, code: 1}>, grade: #<Swars::GradeInfo:0x00000001262d01c8 @attributes={key: :"30級", visualize: false, select_option: false, show_in_search_script: false, teacher: false, hourly_active_user: false, lose_pattern: true, range_10kyu_to_9dan: false, range_30kyu_to_9dan: false, code: 39}>}, {rule: #<Swars::RuleInfo:0x0000000125fb84e0 @attributes={key: :ten_sec, name: "10秒", long_name: "1手10秒", sw_side_key: "s1", csa_time_limit: "00:00+10", life_time: 1 hour, real_life_time: 0, ittezume_jirasi_sec: nil, kangaesugi_sec: nil, kangaesugi_like_houti_sec: nil, toryo_houti_sec: nil, taisekimati_sec: nil, related_time_p: false, resignation_limit: 1 minute, most_min_turn_max_limit: 35, code: 2}>, grade: #<Swars::GradeInfo:0x00000001262d01c8 @attributes={key: :"30級", visualize: false, select_option: false, show_in_search_script: false, teacher: false, hourly_active_user: false, lose_pattern: true, range_10kyu_to_9dan: false, range_30kyu_to_9dan: false, code: 39}>}]>
my_page.ban?                        # => false
my_page.page_not_found?             # => false
my_page.rule_grade_list             # => #<Swars::Agent::RuleGradeList:0x00000001262bc038 @list=[{rule: #<Swars::RuleInfo:0x0000000125fb85f8 @attributes={key: :ten_min, name: "10分", long_name: "10分切れ負け", sw_side_key: "", csa_time_limit: "00:10+00", life_time: 10 minutes, real_life_time: nil, ittezume_jirasi_sec: 1.0 minute, kangaesugi_sec: 2.5 minutes, kangaesugi_like_houti_sec: 3 minutes, toryo_houti_sec: 1 minute, taisekimati_sec: 5 minutes, related_time_p: true, resignation_limit: 3 minutes, most_min_turn_max_limit: 35, code: 0}>, grade: #<Swars::GradeInfo:0x00000001262d02b8 @attributes={key: :"28級", visualize: false, select_option: false, show_in_search_script: false, teacher: false, hourly_active_user: false, lose_pattern: true, range_10kyu_to_9dan: false, range_30kyu_to_9dan: false, code: 37}>}, {rule: #<Swars::RuleInfo:0x0000000125fb8508 @attributes={key: :three_min, name: "3分", long_name: "3分切れ負け", sw_side_key: "sb", csa_time_limit: "00:03+00", life_time: 3 minutes, real_life_time: nil, ittezume_jirasi_sec: 45 seconds, kangaesugi_sec: 30 seconds, kangaesugi_like_houti_sec: 1 minute, toryo_houti_sec: 1 minute, taisekimati_sec: 2 minutes, related_time_p: true, resignation_limit: 1 minute, most_min_turn_max_limit: 35, code: 1}>, grade: #<Swars::GradeInfo:0x00000001262d01c8 @attributes={key: :"30級", visualize: false, select_option: false, show_in_search_script: false, teacher: false, hourly_active_user: false, lose_pattern: true, range_10kyu_to_9dan: false, range_30kyu_to_9dan: false, code: 39}>}, {rule: #<Swars::RuleInfo:0x0000000125fb84e0 @attributes={key: :ten_sec, name: "10秒", long_name: "1手10秒", sw_side_key: "s1", csa_time_limit: "00:00+10", life_time: 1 hour, real_life_time: 0, ittezume_jirasi_sec: nil, kangaesugi_sec: nil, kangaesugi_like_houti_sec: nil, toryo_houti_sec: nil, taisekimati_sec: nil, related_time_p: false, resignation_limit: 1 minute, most_min_turn_max_limit: 35, code: 2}>, grade: #<Swars::GradeInfo:0x00000001262d01c8 @attributes={key: :"30級", visualize: false, select_option: false, show_in_search_script: false, teacher: false, hourly_active_user: false, lose_pattern: true, range_10kyu_to_9dan: false, range_30kyu_to_9dan: false, code: 39}>}]>
my_page.rule_grade_list.oneline     # => "28級 30級 30級"
