Skip to content

Instantly share code, notes, and snippets.

@vivahiraj
vivahiraj / ridgepole_tasks.rake
Created May 6, 2019 13:50
ridgepoleをdb:migrateのようにdb:applyのような感じで使えるようにする
namespace :db do
config_file = 'config/database.yml'
schema_file = 'db/schemas/Schemafile'
desc 'apply Schemafile and update schema.rb'
task apply: :environment do
ENV['ALLOW_DROP_TABLE'] ||= '0'
ENV['ALLOW_REMOVE_COLUMN'] ||= '0'
ENV['RAILS_ENV'] ||= 'development'
task_return = `ridgepole -E #{ENV['RAILS_ENV']} --diff #{config_file} #{schema_file}`
@vivahiraj
vivahiraj / generator.rb
Created May 6, 2019 13:46
railsでgenerateするときにmigrationを生成させないようにするとか
Myapp::Application.config.generators do |g|
g.stylesheets false
g.javascripts false
g.helper false
g.template_engine false
g.orm :active_record, migration: false
end
@vivahiraj
vivahiraj / button_line_send.rb
Created December 28, 2017 05:15
ダイソーのリモートシャッターを押すとLINEへメッセージを送るサンプル。rootで実行する必要あり
require 'device_input'
require 'rest-client'
require 'json'
class LineBot
TOKEN = "Channel Access Token"
TO = "送信先のID"
def self.send(msg)
headers = {
@vivahiraj
vivahiraj / encrypt.rb
Created November 3, 2017 14:03
JavaScriptで var text = CryptoJS.AES.decrypt(data, "pass").toString(CryptoJS.enc.Utf8); とすれば、複合できるようにするためのRubyでの暗号化方法
require "openssl"
require "base64"
def encrypt(data, passwd)
enc = OpenSSL::Cipher.new("AES-256-CBC")
enc.encrypt
salt = OpenSSL::Random.random_bytes(8)
enc.pkcs5_keyivgen(passwd, salt, 1)
enc_data = enc.update(data) + enc.final
ret = "Salted__" + salt + enc_data
@vivahiraj
vivahiraj / rain_chk2.rb
Created April 4, 2017 13:50
LINE Messaging APIを利用して雨が降りそうなことを通知する
# coding: utf-8
require 'rest-client'
require 'json'
require 'date'
require 'holiday_jp'
require 'gmail'
require 'rexml/document'
class MyMail
@vivahiraj
vivahiraj / gcal_chk2.rb
Created April 4, 2017 13:22
LINE Messaging APIを利用してGoogle Calendarの情報を送る
# coding: utf-8
require 'rest-client'
require 'json'
require 'date'
require 'gmail'
require 'yaml'
#google-api-clientはv0.6.4が必要です
require "google/api_client"
@vivahiraj
vivahiraj / train_chk3.rb
Created April 4, 2017 13:14
LINE Messaging APIを利用して電車遅延情報を通知する
# coding: utf-8
require 'rest-client'
require 'json'
require 'date'
require 'holiday_jp'
require 'gmail'
class MyMail
ID = "GMail address"
@vivahiraj
vivahiraj / line_bot_api_callback_on_lambda2.js
Created April 4, 2017 13:07
LINE Messaging APIを試すためのAWS Lambdaファンクションです
var https = require('https');
exports.handler = function(event, context) {
console.log('Received event:', JSON.stringify(event, null, 2));
var reply_token = event.events[0].replyToken;
var data = JSON.stringify({
replyToken: reply_token,
messages:[
@vivahiraj
vivahiraj / .rspec
Created August 5, 2016 14:03
汎用capybara+selenium用ファイル
--color
--require spec_helper
@vivahiraj
vivahiraj / rain_chk.rb
Created May 9, 2016 13:30
LINE BOT APIを利用して雨が降りそうなことを通知する
# coding: utf-8
require 'rest-client'
require 'json'
require 'date'
require 'holiday_jp'
require 'gmail'
require 'rexml/document'
class MyMail