QA@IT
«回答へ戻る

typo

152
   HTML_ENC_PATTERN = /meta.+charset[ =]+[\"\']?([^>[\"\']]+)/i
   
   if html =~ XML_ENC_PATTERN || html =~ HTML_ENC_PATTERN
-    p $1
+    $1
 ```
 
 みたいにするべきかもしれません。

確かに昨今80桁である必然性はないので適当に決めればいいと思いますが、横が長すぎると読みにくいものですよね。紙の雑誌等に段組がある理由もそうですし、そもそもこのサイトでのQA本文の横幅が長くない理由を考えてもそういうものかと。ので、適宜改行は入れて欲しいです。

というか、

enc =
  if html =~ /meta.+charset[ =]+[\"\']?([^>[\"\']]+)/i ||
    html =~ /xml.+encoding[ =]+[\"\']?([^>[\"\']]+)/i
    $1

の部分は、あるいは

  XML_ENC_PATTERN = /xml.+encoding[ =]+[\"\']?([^>[\"\']]+)/i
  HTML_ENC_PATTERN = /meta.+charset[ =]+[\"\']?([^>[\"\']]+)/i

  if html =~ XML_ENC_PATTERN || html =~ HTML_ENC_PATTERN
    $1

みたいにするべきかもしれません。

また、

  # to handle the obsolete charset name, which should've been extinct...
  enc = "Shift_JIS" if enc.downcase == "x-sjis"
  enc = "UTF-8" if !Encoding.name_list.map(&:upcase).include?(enc.upcase)

は、

  # to handle the obsolete charset name, which should've been extinct...
  def handle_legacy_charset(enc)
    if enc.downcase == "x-sjis"
      "Shift_JIS"
    elsif !Encoding.name_list.map(&:upcase).include?(enc.upcase)
      "UTF-8"
    else
      enc
    end
  end

  def set_encoding(html)
    # 略
    enc = handle_legacy_charset(enc)

みたいに抽出するべきかも。

というわけで、そもそも横に長すぎる行というのは「いやな臭い」の一種であって、別に横80桁は目的ではなく結果とも言えるんじゃないか、と若くない私は思いました。

確かに昨今80桁である必然性はないので適当に決めればいいと思いますが、横が長すぎると読みにくいものですよね。紙の雑誌等に段組がある理由もそうですし、そもそもこのサイトでのQA本文の横幅が長くない理由を考えてもそういうものかと。ので、適宜改行は入れて欲しいです。

というか、

```ruby
enc =
  if html =~ /meta.+charset[ =]+[\"\']?([^>[\"\']]+)/i ||
    html =~ /xml.+encoding[ =]+[\"\']?([^>[\"\']]+)/i
    $1
```
の部分は、あるいは

```ruby
  XML_ENC_PATTERN = /xml.+encoding[ =]+[\"\']?([^>[\"\']]+)/i
  HTML_ENC_PATTERN = /meta.+charset[ =]+[\"\']?([^>[\"\']]+)/i
  
  if html =~ XML_ENC_PATTERN || html =~ HTML_ENC_PATTERN
    $1
```

みたいにするべきかもしれません。

また、

```ruby
  # to handle the obsolete charset name, which should've been extinct...
  enc = "Shift_JIS" if enc.downcase == "x-sjis"
  enc = "UTF-8" if !Encoding.name_list.map(&:upcase).include?(enc.upcase)
```

は、

```ruby
  # to handle the obsolete charset name, which should've been extinct...
  def handle_legacy_charset(enc)
    if enc.downcase == "x-sjis"
      "Shift_JIS"
    elsif !Encoding.name_list.map(&:upcase).include?(enc.upcase)
      "UTF-8"
    else
      enc
    end
  end

  def set_encoding(html)
    # 略
    enc = handle_legacy_charset(enc)

```

みたいに抽出するべきかも。

というわけで、そもそも横に長すぎる行というのは「いやな臭い」の一種であって、別に横80桁は目的ではなく結果とも言えるんじゃないか、と若くない私は思いました。

回答を投稿

確かに昨今80桁である必然性はないので適当に決めればいいと思いますが、横が長すぎると読みにくいものですよね。紙の雑誌等に段組がある理由もそうですし、そもそもこのサイトでのQA本文の横幅が長くない理由を考えてもそういうものかと。ので、適宜改行は入れて欲しいです。

というか、

enc =
  if html =~ /meta.+charset[ =]+[\"\']?([^>[\"\']]+)/i ||
    html =~ /xml.+encoding[ =]+[\"\']?([^>[\"\']]+)/i
    $1

の部分は、あるいは

  XML_ENC_PATTERN = /xml.+encoding[ =]+[\"\']?([^>[\"\']]+)/i
  HTML_ENC_PATTERN = /meta.+charset[ =]+[\"\']?([^>[\"\']]+)/i

  if html =~ XML_ENC_PATTERN || html =~ HTML_ENC_PATTERN
    p $1

みたいにするべきかもしれません。

また、

  # to handle the obsolete charset name, which should've been extinct...
  enc = "Shift_JIS" if enc.downcase == "x-sjis"
  enc = "UTF-8" if !Encoding.name_list.map(&:upcase).include?(enc.upcase)

は、

  # to handle the obsolete charset name, which should've been extinct...
  def handle_legacy_charset(enc)
    if enc.downcase == "x-sjis"
      "Shift_JIS"
    elsif !Encoding.name_list.map(&:upcase).include?(enc.upcase)
      "UTF-8"
    else
      enc
    end
  end

  def set_encoding(html)
    # 略
    enc = handle_legacy_charset(enc)

みたいに抽出するべきかも。

というわけで、そもそも横に長すぎる行というのは「いやな臭い」の一種であって、別に横80桁は目的ではなく結果とも言えるんじゃないか、と若くない私は思いました。

確かに昨今80桁である必然性はないので適当に決めればいいと思いますが、横が長すぎると読みにくいものですよね。紙の雑誌等に段組がある理由もそうですし、そもそもこのサイトでのQA本文の横幅が長くない理由を考えてもそういうものかと。ので、適宜改行は入れて欲しいです。

というか、

```ruby
enc =
  if html =~ /meta.+charset[ =]+[\"\']?([^>[\"\']]+)/i ||
    html =~ /xml.+encoding[ =]+[\"\']?([^>[\"\']]+)/i
    $1
```
の部分は、あるいは

```ruby
  XML_ENC_PATTERN = /xml.+encoding[ =]+[\"\']?([^>[\"\']]+)/i
  HTML_ENC_PATTERN = /meta.+charset[ =]+[\"\']?([^>[\"\']]+)/i
  
  if html =~ XML_ENC_PATTERN || html =~ HTML_ENC_PATTERN
    p $1
```

みたいにするべきかもしれません。

また、

```ruby
  # to handle the obsolete charset name, which should've been extinct...
  enc = "Shift_JIS" if enc.downcase == "x-sjis"
  enc = "UTF-8" if !Encoding.name_list.map(&:upcase).include?(enc.upcase)
```

は、

```ruby
  # to handle the obsolete charset name, which should've been extinct...
  def handle_legacy_charset(enc)
    if enc.downcase == "x-sjis"
      "Shift_JIS"
    elsif !Encoding.name_list.map(&:upcase).include?(enc.upcase)
      "UTF-8"
    else
      enc
    end
  end

  def set_encoding(html)
    # 略
    enc = handle_legacy_charset(enc)

```

みたいに抽出するべきかも。

というわけで、そもそも横に長すぎる行というのは「いやな臭い」の一種であって、別に横80桁は目的ではなく結果とも言えるんじゃないか、と若くない私は思いました。