NumberProperty: NotionRubyMapping 解説 (36)

はじめに

NotionRubyMapping 解説の第36回目です。今日は Number プロパティの追加です。データベースは共通なものを使い回します。

Database properties (32-36)

irb(main):002> db = Database.find "https://www.notion.so/hkob/cad035c49e5346e78331cb5d05cbc754?v=a03e96ed79ad4d35808e7a08583396a0&pvs=4"
=> NotionRubyMapping::Database-cad035c49e5346e78331cb5d05cbc754

NumberProperty

まず、NumberProperty を追加し、np に代入しておきます。

irb(main):003> np = db.add_property NumberProperty, "Number"
=>
#<NotionRubyMapping::NumberProperty:0x0000000103744c40
...

NumberProperty はフォーマットを format = で変更できます。ここでは、number_with_comma でカンマ付きの数値を設定してみます。

irb(main):004> np.format = "number_with_commas"
=> "number_with_commas"
irb(main):005> db.save
=> NotionRubyMapping::Database-cad035c49e5346e78331cb5d05cbc754

実行すると以下のようになりました。「number_with_commas」に設定したはずなのですが適用できていませんでした。新規作成時には number しか設定できない NotionRubyMapping のバグのようです。あとで直しておきます。

NumberProperty の作成

作成後に format を変更してみます。

irb(main):010> np.format = "number_with_commas"
=> "number_with_commas"
irb(main):011> db.save
=> NotionRubyMapping::Database-cad035c49e5346e78331cb5d05cbc754

結果は以下のようになりました。今度は正しく変更できているようです。追加の時だけうまくパラメータが渡せていないようです。

NumberProperty の更新

ちなみに、公式の API reference によると以下の format に対応しているようです。かなりたくさんのフォーマットに対応しているのですね。

  • argentine_peso
  • baht
  • australian_dollar
  • canadian_dollar
  • chilean_peso
  • colombian_peso
  • danish_krone
  • dirham
  • dollar
  • euro
  • forint
  • franc
  • hong_kong_dollar
  • koruna
  • krona
  • leu
  • lira
  • mexican_peso
  • new_taiwan_dollar
  • new_zealand_dollar
  • norwegian_krone
  • number
  • number_with_commas
  • percent
  • philippine_peso
  • pound
  • peruvian_sol
  • rand
  • real
  • ringgit
  • riyal
  • ruble
  • rupee
  • rupiah
  • shekel
  • singapore_dollar
  • uruguayan_peso
  • yen,
  • yuan
  • won
  • zloty

おわりに

今回は、NumberProperty を紹介しました。実際に使ってみるとこんなバグに引っ掛かるんですね。今日も Notion 座談会のため、中身は短めです。

NumberProperty のマニュアルはこちらです。

NumberProperty

NotionRubyMapping解説