Показаны сообщения с ярлыком ruby. Показать все сообщения
Показаны сообщения с ярлыком ruby. Показать все сообщения

воскресенье, 14 апреля 2013 г.

pre-commit hooks for checking commits

there are examples for ruby code and puppet manifests(chef can validate automatically, but stupid puppet can't):
1. create file ./.git/hooks/pre-commit
2. add code

#!/bin/sh
echo 'working pre commit hook'
git diff --cached --name-only --diff-filter=ACM | while read file; do
  # check only puppet files
  if [ "${file##*.}" == 'pp' ]
  then
    echo "check $file"
    puppet parser validate $file
  fi
done

3. require set exec permissions. DO NOT FORGET !!!! (it is cause for not execution hook)
chmod +x ./.git/hooks/pre-commit
Complete.

Also example for ruby:

#!/bin/sh
echo 'working pre commit hook'
git diff --cached --name-only --diff-filter=ACM | while read file; do
  if [ "${file##*.}" == 'rb' ]
  then
    echo "check rubocop $file"
    rubocop $file
  fi
done

суббота, 28 января 2012 г.

deploy spree to openshift

Instruction how to deploy spreecommerce to openshift
work with ruby 1.8.7 because openshift work with this version.
ruby 1.9. hash syntax will create problem in openshift cloud

1. create application on openshift
rhc-create-app -a spree -t rack-1.1
Создалось приложение в облаке редхата и папочка spree с простым rack приложением.
А нам надо создать rails приложение с гемами spree.
rm -f ./spree/README
rails new ./spree -d postgresql -f
Обратите внимание - используем постгрес(дело вкуса конечно,но все ж знают, что постгрес вкуснее)
2. add database(postgresql)
rhc-ctl-app -a spree -e add-postgresql-8.4
Если понадобится удалить подключенную базу
rhc-ctl-app -a spree -e remove-postgresql-8.4
По завершению мы получим данные для подключения к базе.
Их стоит записать в spree/config/database.yml
и не забудьте добавить поле host и вписать ip из подобной строки Connection URL: postgresql://127.1.13.1:5432
И настроить базу для development режима
development:
  adapter: sqlite3
  database: db/dev.sqlite3

И в Gemfile добавляем гем sqlite3 для группы development
теперь перемещаемся в папку spree
bundle install && bundle exec rails g spree:install
добавляем сприи в Gemfile
echo "gem 'spree', :git => 'git://github.com/spree/spree.git'" >> ./Gemfile
Gemfile.lock должен быть актуальным
bundle install
mkdir public/images && cp public/favicon.ico public/images/favicon.ico
RAILS_ENV=development bundle exec rake assets:precompile

добавить код в .openshift/action_hooks/deploy

pushd ${OPENSHIFT_REPO_DIR} > /dev/null
RAILS_ENV=production bundle exec rake db:migrate -y
RAILS_ENV=production bundle exec rake db:seed -y
popd > /dev/null


и теперь пушим git push
после удачного деплоя очищаем .openshift/action_hooks/deploy

first request will broken - it is problem on timeout parameter in proxy server.
but exist problem with timeout

P.S.
after few updates require use this database.yml


adapter: <%=ENV['OPENSHIFT_DB_TYPE']%>
encoding: utf8
host: <%=ENV['OPENSHIFT_DB_HOST']%>
port: <%=ENV['OPENSHIFT_DB_PORT']%>
socket: <%=ENV['OPENSHIFT_DB_SOCKET']%>
database: <%=ENV['OPENSHIFT_APP_NAME']%>
username: <%=ENV['OPENSHIFT_DB_USERNAME']%>
password: <%=ENV['OPENSHIFT_DB_PASSWORD']%>

понедельник, 2 августа 2010 г.

обход callback в рельсе

1: не в курсе как обновить атрибуты и сохранить модельку без валидации?
2: u.attributes = {:tt => 12, :yu => 78} u.save(false)
1: пасиба, а не в курсе как избежать before/after коллбеков?
2: вроде как то отключать можно
1: @user_profile.send(:update_without_callbacks)

вторник, 29 декабря 2009 г.

практика JRuby

Как вызвать ява класс из jruby


JString = java.lang.String
JString.new


Но если нужен ява Object ,то делаем так

['test'].to_java



Создаем JTable используя swing из jruby

# создание таблицы из 6 строк и 3 столбцов

@table = JTable.new(6,3)


# назначим в ячейке значение "значение"

@table.getModel.setValueAt("значение",номер_строки,номер_столбца)


#добавим строку

@table.getModel.addRow(['a','b','c'].to_java)


#удалим саму первую строку

@table.getModel.removeRow(0)


# или удалим выделеную строку

@table.getModel.removeRow(@table.getModel.getSelectedRow)



пятница, 11 декабря 2009 г.

Заведи себе обменник

Валют много.
Обменников не меньше.
Но конкуренция выгодна мне лично - будут снижать проценты.
Потому кому нужен обменник - качайте.
http://github.com/pronix/changer
в стандартной поставке - все вебмани и paypal
Надежный быстрый и можно посмотреть админку(typus)
Реализация на ruby-on-rails

воскресенье, 11 октября 2009 г.

QtRuby: Slots

Способы создания не стандартных слотов для обработки событий.

1. Очевидный

class CustomWidget < Qt::Widget
slots 'customslot()'
def customslot()
# действие
end
end
Qt::Object.connect(signalobject,SIGNAL('signal()'),
customwidget,SLOT('customslot()'))

2. Задание блока
Qt::Object.connect(signalobject,SIGNAL('signal()')) do
# необходимое действие
end
3. Слотом делаем сразу определенный метод
Qt::Object.connect(signalobject,SIGNAL('signal()'), &method(:custommethod))

def custommethod
# необходимое действие
end