"Рай и Ад - это взгляд на вещи. Это не физическое место, это отношение, то, как Вы смотрите на вещи." - Ошо
суббота, 29 марта 2014 г.
Array&Ruby
В данной статье описаны некоторые интересные трюки как можно эффективно использовать и работать с массивами в Ruby. Конечно же, есть РубиДок и множество других ресурсов, где подробно описаны все доступные методы, но здесь я хочу поделиться именно способами использования.
вторник, 11 февраля 2014 г.
Удалённая работа
Linux > Linux
1. Server
- Установить ssh клиент(в центре приложений оболочка и сервер)
2. Client
- В терминале: ssh -x -y ip
IP:
- username@ip
- ip
Samba. Example
[global]
workgroup = workgroup
printing = cups
wins support = yes
netbios name = Tortuga
security = share
guest account = tortuga
cups options = raw
show add printer wizard = yes
printer admin = root, tortuga, admin
[printers]
comment = All printers
printable = yes
path = /var/spool/samba
guest only = yes
guest ok = yes
read only = no
[print$]
comment = Drivers for printers
path = /var/lib/samba/drivers
guest only = yes
guest ok = yes
browsable = no
read only = yes
create mask = 0777
directory mask = 0777
force user = tortuga
force group = tortuga
write list = root, tortuga, admin
[PDrivers]
path = /home/tortuga/PrintDrivers
browsable = yes
writable = no
guest ok = yes
read only = yes
workgroup = workgroup
printing = cups
wins support = yes
netbios name = Tortuga
security = share
guest account = tortuga
cups options = raw
show add printer wizard = yes
printer admin = root, tortuga, admin
[printers]
comment = All printers
printable = yes
path = /var/spool/samba
guest only = yes
guest ok = yes
read only = no
[print$]
comment = Drivers for printers
path = /var/lib/samba/drivers
guest only = yes
guest ok = yes
browsable = no
read only = yes
create mask = 0777
directory mask = 0777
force user = tortuga
force group = tortuga
write list = root, tortuga, admin
[PDrivers]
path = /home/tortuga/PrintDrivers
browsable = yes
writable = no
guest ok = yes
read only = yes
понедельник, 27 января 2014 г.
четверг, 5 декабря 2013 г.
Redmine. How to make a plugin
The Quest
set RAILS_ENV=production //Выбор окруженияruby script/rails generate redmine_plugin <name> //Создание плагина
init.rb//Редактируем init.rb
Redmine::Plugin.register :quest do
name 'Quest plugin'
author 'Vladislav R.'
description 'This is a plugin for Redmine'
version '0.0.1'
menu :application_menu, :questions, { :controller => 'questions', :action => 'index' }, :caption => 'Questions'//Ярлык на плагин в главном меню
end
ruby script/rails generate redmine_plugin_model quest questions question:string answer:boolean other:string
//Создание модели.
//quest - название плагина
//questions - название модели
//question:string - набор полей( имя поля:тип)
1001_create_questions.rb (Если ошибка, возможно у вас более 1 плагина и номер миграции совпадает => сменить номер миграции (101, 1001, 1000001...))
class CreatePolls < ActiveRecord::Migration //Описание структуры таблицы
def change
create_table :polls do |t|
t.string :question
t.integer :yes, :default => 0
t.integer :no, :default => 0
end
end
end
rake redmine:plugins:migrate //Миграция в базу. Сам добавил вопросы в базу
questions.rb
class Questions < ActiveRecord::Base
def ans(answer)
answer == 'true' ? :true : 'false' ? :false : :answer //Редактирование модели
end
end
ruby script/rails generate redmine_plugin_controller Quest questions index vote
//Создание контроллера.
//Quest - название плагина
//questions - название контроллера
//index vote - созданные по умолчанию методы
questions_controller.rb
class QuestionsController < ApplicationController //Редактирование контроллера
unloadable
def index
@ques = Questions.all //Показать все записи
end
def ans
flash[:notice] = 'Work' //Сообщение
redirect_to :action => 'index' //Возврат на функцию index
end
end
index.html
<% @radio = 0 %> //Переменная для нумирации
<% @n = 'answerYesNo' %> //Переменная для изменения имени группы кнопок
<% @ques.each do |q| %> //Проход по всем элементак коллекции
<p>
<%= @radio = @radio + 1 %>)
<%= q.question %>? //Первое поле таблицы и др.
<br>
<%= radio_button_tag name = @n, 'true', false, { :answer => 'true' } %> Да
<br>
<%= radio_button_tag name = @n, 'false', false, { :answer => 'false' } %> Нет
<br>
<%= radio_button_tag name = @n, 'false', false %>
<%= text_field_tag 'answerText', '', { :answer => 'text' } %>
<% @n+='1' %>
</p>
<% end %>
<%= button_to 'Save', { :action => 'ans', :controller => 'questions'}, :method => :post %>
//Кнопка сохранения. Перенаправляет в функцию сохранения
routes.rb
get 'questions', :to => 'questions#index' //Вызов функции index
post 'ans', :to => 'questions#ans' //Перенаправление на функцию ans из контроллера question
Удаление плагина
rake redmine:plugins:migrate NAME=<plugin_name> VERSION=0
Откат миграции
rake db:rollback
Подписаться на:
Сообщения (Atom)