Open IkumaTadokoro opened 2 years ago
新聞
content_security_policy
destroy_async_parent
:テストファイル名になっているけど、なんのテストしているんだろうci-skip
とあるのはなんだろう?config/initializers/content_security_policy.rb
で実施する。rails new
したタイミングで作成されているが、初期状態では何も設定されていない状態。yield
を使っていたが、selfが正しくないので、insrance_exec
を使用するように変更した。class MyTest < ActiveSupport::TestCase
test "does something" do
# ...
end
end
これを
$ rails test test/my_test.rb -n "does something"
で呼べるようにしたとのこと。もともと、test_does_something
でないと呼べなかったみたい。
最後の一個は時間切れ
pigs_can_fly?をサンプルコードに使用するケースって、「絶対にfalseをかえすメソッド」って意図で使っている理解でいいのかな? https://ja.wikipedia.org/wiki/%E7%A9%BA%E9%A3%9B%E3%81%B6%E8%B1%9A
ソフトスキル分析少し疲れたので、Chrome拡張の方に切り替える
オプションページを作っていく
options_page
を用いて設定するoptions_ui
を用いて設定するとりあえずoptionページが表示されるようになりました。デザイン無視してガワだけ作成します。
入力されたデータを保存するように変更します
// Saves options to chrome.storage
const save_options = () => {
const accessToken = document.getElementById('accessToken').value
chrome.storage.sync.set({
accessToken: accessToken
}, () => {
console.log('保存しました!')
const status = document.getElementById('status')
status.textContent = 'Options saved'
setTimeout(() => {
status.textContent = ''
}, 750)
})
}
document.getElementById('save').addEventListener('click', save_options);
Uncaught TypeError: Cannot read properties of undefined (reading 'sync')
at HTMLButtonElement.save_options (options.js:5:18)
う〜ん、chromeのAPIの方がうまく読み取れていないみたいですね。 →リロードしたら治ったんですが、どうもmanifest.jsonのpermissionが読み取れていなかったときの挙動のようです。メッセージとしてこれはわかりづらいなあ
StorageAPIで保存した情報はどこに設定されているのか?Local Storage?
chrome.storage - Chrome Developers Chromeエクステンションを作ろう:ストレージ編 - Qiita
Storageの形態には複数あるようです
syncに保存して、永続化できるようになりました!
保存した情報でAPIアクセスができるようになった。
https://github.com/IkumaTadokoro/kyo-no-esa/commit/5c4449c28fdba265047e1e6ebe040f7f651d0198
その他の情報についてもオプションページで指定できるように変更する
とりあえず枠だけ作成する
全部オプションページを使用した値を使って設定できるようになった。
あとはちゃんとスタイルを当てるか。ViteでTailwindCSSでやるならこれかな〜 Install Tailwind CSS with Vue 3 and Vite - Tailwind CSS
デザインはざっくりにして、buildをする
$ npm run build
src/App.vue:17:70 - error TS2304: Cannot find name 'chrome'.
17 const { accessToken, teamName, diaryCategory, templateId } = await chrome.storage.sync.get([
~~~~~~
src/App.vue:32:29 - error TS2322: Type '{}' is not assignable to type 'string'.
32 <a class="text-center" :href="diaryUrl">今日の<br>esa</a>
~~~~
node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts:481:3
481 href?: string
~~~~
The expected type comes from property 'href' which is declared here on type 'ElementAttrs<AnchorHTMLAttributes>'
Found 2 errors in the same file, starting at: src/App.vue:17
とりあえずchrome関連については、chromeのtypesを追加する
npm install --save-dev @types/chrome
これで再度buildする
src/App.vue:32:29 - error TS2322: Type '{}' is not assignable to type 'string'.
32 <a class="text-center" :href="diaryUrl">今日の<br>esa</a>
~~~~
node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts:481:3
481 href?: string
~~~~
The expected type comes from property 'href' which is declared here on type 'ElementAttrs<AnchorHTMLAttributes>'
Found 1 error in src/App.vue:32
{}
に対してstringを代入することはできないよってか?
// before
const diaryUrl = ref({})
// after
const diaryUrl = ref('')
これで解決しました。
今日の分のdiaryがGitHub Pagesに反映されていないのは何故だろう?GitHub Actionsは問題なさそうなんだけどね。
最初のコメントを編集したら連携された。本家の方も連携されていなかったっぽいので、構造的に問題があるのかな?
https://apps.apple.com/jp/app/moom/id419330170?mt=12
Moomという画面分割アプリを買った。1500円くらい。 アプリの画面配置を覚えてくれるので、Twitter用ChromerとterminalとメインChromeみたいな構成を保持できて便利。結構ストレスだったので買ってよかった
.