IT-Expert
  IT-Expert / Веблог / Ключевые слова / Ruby
Авторизация
Логин:
Пароль:


 
Поиск по записям:

Ключевые слова:
Записей в блоге
 за 2023 год
 за 2022 год
 за 2021 год
 за 2015 год
 за 2014 год
 за 2013 год
 за 2012 год
 за 2011 год

     за 2010 год

       за 2009 год
       за 2008 год
       за 2007 год
       за 2006 год
       за 2005 год
      RSS лента Лента новостей IT-Expert 

      Ruby

      включает:
      Rails

      Особенности установки Ruby on the Rails в Ubuntu

      11:28, 4 августа 2006 ( )

      Не только я считаю, что для разработки под rails достаточно набора radrails+webrick. И то и другое очень хорошо работает как на Windows, так и на Linux. На Windows вся установка сводится к разворачиванию InstantRails, а вот в Ubuntu прошло практически все гладко, окромя установки mysql gem.

      Последовательность действий для установки Rails под Ubuntu (лучше Rails ставить из gems, нежели из портов, где версия почти всегда более устаревшая).

      sudo apt-get install ruby
      sudo apt-get install rdoc
      sudo apt-get install ri
      sudo apt-get install build-essentials (без этого не установится mysql gem!)

      sudo apt-get install libmysql (у меня 5й версии)

      качаем и устанавливаем ruby gems  (http://rubyforge.org/projects/rubygems/)

      затем

      sudo gem install rails -y
      sudo gem install mysql

      ну и при желании ставим ImageMagick:
      sudo apt-get install ImageMagick
      gem install RMagick

      и все :)

       

      Броузерные push технологии.

      10:22, 27 июля 2006 ( )



      Однако все идет к полноценным двунаправленным клиентским веб-приложениям.

      Всем вебдевелоперам, смотреть демку и подбирать под столом упавшую челюсть.
      http://minnow.cc.gatech.edu/squeak/uploads/5851/asteroids.htm


      А вот и реализация push технологии под Rails
      http://juggernaut.rubyforge.org/

       

      ez_where плагин не так прост в употреблении, как кажется на первый взгляд

      09:49, 27 июля 2006 ( )

      Т.е. составить типичные вещи в нем просто, а вот, к примеру, мне нужно сделать отбор по вычисляемому полю, например, цене, которая складывается из цены за юнит умноженной на количество юнитов. Пока ны наю как это сделать.

      Вторая неприятность - все передаваемые в запрос значения переменных должны храниться в ЛОКАЛЬНЫХ переменных, а в @переменных это дело работать не будет, а жаль.

      А вот и пример моего "дикого запроса".

        def index
            session[:search]=params[:search] if params[:search]      search_params=SearchFilterParams.new(session[:search])
       
          @conditions=Caboose::EZ::Condition.new :lots  do
            region_id==search_params.region_id if search_params.region_id>0
            square<=>(Square.find_by_id(search_params.square.to_s).min_square.to_s .. Square.find_by_id(search_params.square.to_s).max_square.to_s)  if search_params.square>0
            price_per_square<Price.find_by_id(search_params.price_per_square).max_price.to_s if search_params.price_per_square>0
      #      full_price<FullPrice.find_by_id(search_params.full_price).max_price.to_s if search_params.full_price>0
            distance_to_city<CityDistance.find_by_id(search_params.distance_to_city).max_distance.to_s if search_params.distance_to_city>0
            placement_id==search_params.placement if search_params.placement>0
         end
      ## ай-яй-яй, некрасиво  
          @search=search_params
      ## должен прийти хеш   

      ## если заданы фильтры   
      # order by region_id,square, price_per_square*square, distance
           sort_init 'price_per_square'
           sort_update
          @lot_pages, @lots=paginate(:lots,
            :include=>['region', 'gas','electricity','water', 'lotroad_distance','departure'],
            :order=>sort_clause,
            :conditions=>@conditions.to_sql,
            :per_page=>3
          )
        end class SearchFilterParams
        attr :region_id
        attr :square
        attr :price_per_square
        attr :full_price
        attr :distance_to_city
        attr :placement
        def initialize(lparams={})
          @region_id=lparams[:region_id].to_i
          @square=lparams[:square].to_i
          @price_per_square=lparams[:price_per_square].to_i
          @full_price=lparams[:full_price].to_i
          @distance_to_city=lparams[:distance_to_city].to_i
          @placement=lparams[:placement].to_i
        end
      end

       

      Выпадающие списки dropdown в Rails

      17:22, 26 июля 2006 ( )

      Ну как знал что нужно покурить магических манов перед очередным заходом на программинг "под рельсы". Обнаружился замечательный плагин acts_as_dropdown, использование которого вообще тривиально (однако потребовался патч для включения include_blank и include_blank_text. Мы же хотим, что бы пустые значения так же имели возможность быть выбранными, например, комментарии "Выбрать страну", и далее список стран.

      Вот здесь подробное описание плагина:
      http://delynnberry.com/articles/2006/04/12/acts-as-dropdown-plugin

      Внизу в комментах хак для include_blank. 

      Суть: включаем в модели таблицы, скажем, Regions
      acts_as_dropdown, добавляем параметры по вкусу, :text=>'mytextfieldotherthananme', :include_blank=>true, :include_blank_text=>'выберите вариант'

      class Region < ActiveRecord::Base 
      acts_as_dropdown :text=>'region', :include_blank=>true,:include_blank_text=>'--не имеет значения--'
      end

      в view:
      <%= select('xxx','yyy',Region.to_dropdown) %>

      вот такое плагинистое рельсовое счастье.

      Это второй такой плагин сильно облегчающий жизнь, первый обнаруженный мною был file_column для работы с таблицей и записями с изображениями.

       

      Сортировка по колонкам в Rails.

      11:24, 25 июля 2006 ( )

      Ведь правда, зачастую нет смысла изобретать колесо?  Тем более, что эти колеса еще и неплохо ездят.

      http://www.jaikoo.com/articles/2006/02/21/sorting-tables-in-rails-with-associations

       

       

      Программирование на Ruby on The Rails

      16:40, 14 июля 2006 ( )

      Очень похоже на работу художника:

      Подумал-подумал, сделал мазок по холсту, пошел покурить. Покурил, вернулся, прочел немного доки, написал еще одну строчку. Потом день подходит к концу, и ты смотришь на эти две написаные строчки, и понимаешь, что у тебя фактически пол-сайта сделано :)

       И вот этот вот кусок 

          @lot_pages, @lots=paginate(:lots,
            :include=>['region', 'gas','electricity','water', 'lotroad_distance'],
            :per_page     => 10)

      В паре с этим:

       <!--пейджер-->
       <table cellpadding="0" cellspacing="3" border="0" align="center">
        <tr>
         <td class="button">
         <%= link_to(image_tag('prev.gif', {:width=>"16",:height=>"16",:border=>"0"}),:page => paginator.current.previous) if paginator.current.previous%>
         </td>         
         <% paginator.each do |page|%>
              <%if page==paginator.current_page then%>
                <td class="pageact"><%= page.number %></a></td>   
              <% else %>
                <td class="page"><%= link_to(page.number,:page=>page)%></td>   
             <% end %>                            
         <% end %>
         <td class="button">
            <%= link_to(image_tag('next.gif', {:width=>"16",:height=>"16",:border=>"0"}),:page => paginator.current.next) if paginator.current.next%>
         </td>
        </tr>
       </table>
       <!--конец:пейджер-->         

      Занял бы на php или parser много человеко-часов разработки. Прежде чем писать на Rails нужно брать в руки карандаш, рисовать модель данных до той кондиции, когда у тебя уже не остается сомнений в ее правильности и только после этого можно аккуратно писать первую строку проекта.

       

      Форматирование строки в Ruby

      14:43, 13 июля 2006 ( )

      Как получить из "123" вывод "00123" ?

      Проще пареной repы:

      "%05d" % "123" 

       

      Руби в Fedora Core

      01:42, 18 июня 2006 ( )

      Забавный факт, Руби вынесен в Fedora Core 5 в  меню выбора установочных пакетов как категория! Среди Web Developement, Developement for X, Developement for KDE.

      ruby

      Интересное чувство, это первая заметка подготовленная польностью на ноутбуке в Линуксе используя gimp для обработки изображения и Firefox в качестве бекенда TinyMCE, ну и wifi подключение через Surecom PCMCI wifi адаптер, лежа перед сном в кровати.

      Вывод: следующий опыт - полный перевод рабочего места под линух. Вот смущают меня товарищи, балдеющие от MacOS X и Apple, уже и я чувствую, что хочу. 

       

       

      Для тех, кто еще не вышел из сумрака PHP

      23:26, 16 июня 2006 ( )
      Просто хочется процитировать вики, ибо точнее выразить мысль нежели там не смогу ...

       http://ru.wikibooks.org/wiki/Ruby

      Не открою Америку через форточку, но вообще-то в основе WIKI - гениальная идея :)

      -------------------- CUT -------------------------- 

      Переписываем программы на новый лад

      Набрел я на типовые задания для программистов в МГИУ. И на решение этих задач "тупым сишным способом". Тут же зачесались руки... захотелось исправить данный недостаток.

      Задание 1: Определите значение максимального элемента массива, содержащего целые числа.

      Устаревшее решение:

      a = [1, 3, 4,67,-3] 
      max = a[0]
      i = 1
      while i < a.size
      if a[i]>max
      max = a[i]
      end
      i = i+1
      end
      puts max

      Современное решение:

      p [1, 3, 4,67,-3].max
      -------------------- /CUT ------------------------- 
       

      Пренеприятнейший баг в поддержке unicode в ruby

      12:51, 15 июня 2006 ( )

      Если выболняем gsub, или sub, не важно, на русской unicode строке при регулярном выражении с использованием ключа ignorеcase,  совпадения не обрабатываются!

      Пример, q содержит строку "Тест", category.name содержит "тестовая  категория"

      category.name.gsub!(/(#{q})/iu,'<b class="header15red">\0</b>') 

      так вот, при q="Тест" болдом выделено не будет, а вот если q="тест",  то будет. При этом латинские буквы обрабатываются корректно.

       
      страницы: |< ... 2 3 4 5 6
       7 
      8
      © Максим Прокопов 2005-2024 О сервере