Comments (42)
対象 https://github.com/treasure-data/td-client-ruby
README(Getting Started)読みながらinstallする gem install td-client
from workshop.
bundleで入れようとしたらgem installだった(勝手にハマった)
run in your console
とか書くと親切かも
from workshop.
Configuration読みながらやってるけど実際にコピペですぐに使えない書き方されてるの若干不親切な感じがする
実際にインスタンスを生成する一文があればわかりやすかった。
from workshop.
TreasuredataからAPI key取ってくる、公式のなんだし公式のAPI取ってこれるURLをREADMEに書くと便利
from workshop.
Getting Started見ながらやっても想像で補わなきゃいけない部分があってつらい。
method名しか書かれてなくてクラス名を書かなきゃいけない。
備考: 想像のして間違えた結果
irb(main):002:0> Treasuredata.initalize('API_KEY')
NameError: uninitialized constant Treasuredata
from (irb):2
from /Users/kenta.miyachi/.rbenv/versions/2.2.3/bin/irb:11:in `<main>'
from workshop.
実行環境:
[kenta.miyachi]% ruby -v [~/OSSWS]
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin15]
[kenta.miyachi]% gem -v [~/OSSWS]
2.4.5.1
実際にこのverをgemがサポートしていたかを確認するべき
from workshop.
githubのdescriptionに公式ドキュメントへのlink貼るならREADMEにも貼れば便利なのに
from workshop.
明らかに td
に依存してるのにユーザーにそれをわかってる前提でREADME書かれてる。
from workshop.
td-client
の説明見てるのに公式のドキュメント見たら td
の話し始めた。
from workshop.
それぞれの役割とかをREADMEなり公式ドキュメントやらに書いておくとわかりやすい
from workshop.
公式ドキュメントにはクラス名とか詳しく書かれてるから別にtd-clientのREADMEにも書いておけば便利っぽい
from workshop.
ドキュメント通りやってたらエラー
irb(main):012:0> cln.databases.each { |db|
irb(main):013:1* db.tables.each { |tbl|
irb(main):014:2* p tbl.db_name
irb(main):015:2> p tbl.table_name
irb(main):016:2> p tbl.count
irb(main):017:2> }
irb(main):018:1> }
TreasureData::AuthError: List databases failed: Failed to Login
from /Users/kenta.miyachi/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/td-client-0.8.81/lib/td/client/api.rb:640:in `raise_error'
from /Users/kenta.miyachi/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/td-client-0.8.81/lib/td/client/api/database.rb:12:in `list_databases'
from /Users/kenta.miyachi/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/td-client-0.8.81/lib/td/client.rb:73:in `databases'
from (irb):12
from /Users/kenta.miyachi/.rbenv/versions/2.2.3/bin/irb:11:in `<main>'
ログイン失敗した、ってのはわかったけどなぜ失敗したかはわからない。
他のライブラリだともっと詳細にでる。
from workshop.
Failed to Login
なのでインスタンス生成時に何かコケてるっぽいけどAPIKeyは合ってる。
今回はYBIを通してTreasuredataを使ってるのでそれが原因っぽい。
@host="api.treasure-data.com",
from workshop.
td-client
の方にはAPI endpoint の設定方法が書いてあった。今までtdの公式ドキュメントを呼んでたので流れがめんどくさい td-clientのREADME -> tdのドキュメント -> td-clientのREADME
って戻ってきた
from workshop.
#56 (comment) で書いたAPI Keyを取得するURLはYBIのAPI Keyを取得するURLなので環境によって違うっぽい。defaultのendpointごとのAPI Key取得URLをREADMEには書くべき。
from workshop.
opts.merge({:endpoint => "https://api-alternate.treasuredata.com"}
でendpoint設定できるよ!ってREADMEに書かれてるけどどこのmethodなのかわかりづらい
察しようとしたけど無理だった
irb(main):020:0* opts.merge({:endpoint => "https://api-alternate.treasuredata.com"})
NameError: undefined local variable or method `opts' for main:Object
from (irb):20
from /Users/kenta.miyachi/.rbenv/versions/2.2.3/bin/irb:11:in `<main>'
irb(main):021:0> cln.
irb(main):022:0* cln.opts.merge({:endpoint => "https://api-alternate.treasuredata.com"})
NoMethodError: undefined method `cln' for #<TreasureData::Client:0x007f9e8c4b8750>
from (irb):22
from /Users/kenta.miyachi/.rbenv/versions/2.2.3/bin/irb:11:in `<main>'
irb(main):023:0> cln.merge({:endpoint => "https://api-alternate.treasuredata.com"})
NoMethodError: undefined method `merge' for #<TreasureData::Client:0x007f9e8c4b8750>
from (irb):23
from /Users/kenta.miyachi/.rbenv/versions/2.2.3/bin/irb:11:in `<main>'
from workshop.
環境変数でも設定できるっぽいのでそっちでやる...
from workshop.
Running Testってよりかは実際にtd-clintでコードを書いた時に、specファイルを書くときに有用なgemの話なので若干README不親切
from workshop.
作業と感想をセットでメモする
from workshop.
READMEの各順番がおかしい。先にどんなoptがあるのかを明確に書けばわかりやすいっぽい。
ops = Hash.new
ops.merge
initalize (key, ops)
で書ける?
from workshop.
ybiのendpointはこっち http://ybi.jp-east.idcfcloud.com
opsにhashでendpoint埋め込んでインスタンス生成する
from workshop.
いけた。
opts = Hash.new
opts = opts.merge({:endpoint => "http://ybi.jp-east.idcfcloud.com"})
cln = TreasureData::Client.new('API_KEY',opts)
from workshop.
不満点
- READMEの順番が不親切
- インスタンス生成時(
initialize(apikey, opts={}) (constructor)
)にoptsの書き方がないのでそれを追記したい - 具体的には #56 (comment) っぽく
from workshop.
rdocをmdに書き換える...?
from workshop.
READMEがrdocでつらい問題
from workshop.
https://github.com/kirkbowers/rdoc2md
from workshop.
rdoc2mdでREADME.md化
from workshop.
forkしてbranch切ってREADME.rdocを変換した。PR書く。
from workshop.
Convert README.rdoc to Markdown using rdoc2md
from workshop.
rdocからmdに変換する理由
from workshop.
markdownだったら別のドキュメントを書き換えてやるっていう気持ちを伝える
from workshop.
それをPRのコメントに書くとよりmergeされやすい。
from workshop.
その後にどこを書き換えようとしているのかを伝えると尚良。
from workshop.
ドキュメントが壊れていないかをURLなどを貼って確認する/させる。
本家
fork先
from workshop.
リンクより画像を貼っておくと吉
from workshop.
- commitするようなOSSの管理者は忙しいのでそれを考慮したPRを書く。
from workshop.
convertしたmarkdownと本家rdocで差がないかなーって見てたらそもそも本家のrdoc記法に漏れがあるのを見つけた
https://github.com/treasure-data/td-client-ruby#additional-user-agents
from workshop.
向こうがmdにしたくないなら#56 (comment) のPRを送れば良い
from workshop.
ちゃんと変換できてるのを確認したから今度こそPR書く
from workshop.
他の人がplease, review it.って語尾につけてるの結構いいかも、そこまで必須のPRではないし、作者が好き好んでrdocを書いている可能性もあるし
from workshop.
PR出しました 🎉
from workshop.
お疲れさまでした!
from workshop.
Related Issues (20)
- OSS Gate Workshop: PHP Lovers: 2024-01-15: kouki.miura: baserCMS: Work log HOT 28
- OSS Gate Workshop: PHP Lovers: 2024-01-15: taisukearase: laravel/sail: Work log HOT 7
- OSS Gate Workshop: PHP Lovers: 2024-01-15: OHMORIYUSUKE: erusev/parsedown: Work log HOT 20
- OSS Gate Workshop: PHP Lovers: 2024-01-15: WataruNishimura : @aws-amplify/cli : Work log HOT 8
- OSS Gateオンラインワークショップ2024-03-09 HOT 1
- OSS Gate Workshop: online: 2024-01-27: daipom: Fluentd: Work log HOT 10
- OSS Gate Workshop: online: 2024-01-27: びきニキ: doc-ja : Work log HOT 28
- OSS Gate Workshop: online: 2024-01-27: s1a: SCP: Work log HOT 15
- OSS Gate Workshop: online: 2024-01-27: ochi_work: ${OSS_NAME}: Work log HOT 24
- OSS Gate Workshop: PHP Lovers: 2024-02-12: zonuexe: Symfony VarDumper: Work log HOT 3
- OSS Gate Workshop: PHP Lovers: 2024-02-12: akinoriakatsuka: larastan: Work log HOT 32
- OSS Gate Workshop: PHP Lovers: 2024-02-12: ehimemikan: pecl-mail-mailparse: Work log HOT 27
- OSS Gate Workshop: PHP Lovers: 2024-02-12: azuki-penguin: Lighthouse: Work log HOT 26
- OSS Gate Workshop: PHP Lovers: 2024-02-12: hayato07: quill: Work log HOT 23
- OSS Gateオンラインワークショップ2024-04-27
- OSS Gate Workshop: online: 2024-03-09: daipom: OurBoard: Work log HOT 15
- OSS Gate Workshop: online: 2024-03-09: SotaYamaguchi: chikamichi: Work log HOT 27
- OSS Gate Workshop: online: 2024-03-09: unikounio: minimist Work log HOT 38
- OSS Gate Workshop: online: 2024-03-09: chihara: use-web-animations: Work log HOT 12
- OSS Gate Workshop: online: 2024-03-09: hdkzkg: OrgChart: Work log HOT 24
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from workshop.