Расположение каталога для чистого проекта Ruby

Оба правильные, но они интерпретируются как даты с двумя разными часовыми поясами. Итак, вы сравнили яблоки и апельсины:

// local dates
new Date("Jul 8, 2005").toISOString()            // "2005-07-08T07:00:00.000Z"
new Date("2005-07-08T00:00-07:00").toISOString() // "2005-07-08T07:00:00.000Z"
// UTC dates
new Date("Jul 8, 2005 UTC").toISOString()        // "2005-07-08T00:00:00.000Z"
new Date("2005-07-08").toISOString()             // "2005-07-08T00:00:00.000Z"

Я удалил вызов Date.parse(), так как он автоматически используется для строкового аргумента. Я также сравнивал даты с использованием формата ISO8601 , чтобы вы могли визуально сравнивать даты между вашими местными датами и датами UTC. Время разговора составляет 7 часов, что является разницей в часовом поясе и почему ваши тесты показывают две разные даты.

Другим способом создания этих же локальных / UTC-дат будет:

new Date(2005, 7-1, 8)           // "2005-07-08T07:00:00.000Z"
new Date(Date.UTC(2005, 7-1, 8)) // "2005-07-08T00:00:00.000Z"

Но я по-прежнему настоятельно рекомендую Moment.js , который как простой, но мощный :

// parse string
moment("2005-07-08").format()       // "2005-07-08T00:00:00+02:00"
moment.utc("2005-07-08").format()   // "2005-07-08T00:00:00Z"
// year, month, day, etc.
moment([2005, 7-1, 8]).format()     // "2005-07-08T00:00:00+02:00"
moment.utc([2005, 7-1, 8]).format() // "2005-07-08T00:00:00Z"

20
задан vrwim 3 May 2015 в 16:31
поделиться

5 ответов

Bundler включает необходимую инфраструктуру для генерации драгоценного камня:

$ bundle gem --coc --mit --test=minitest --exe spider
Creating gem 'spider'...
MIT License enabled in config
Code of conduct enabled in config
      create  spider/Gemfile
      create  spider/lib/spider.rb
      create  spider/lib/spider/version.rb
      create  spider/spider.gemspec
      create  spider/Rakefile
      create  spider/README.md
      create  spider/bin/console
      create  spider/bin/setup
      create  spider/.gitignore
      create  spider/.travis.yml
      create  spider/test/test_helper.rb
      create  spider/test/spider_test.rb
      create  spider/LICENSE.txt
      create  spider/CODE_OF_CONDUCT.md
      create  spider/exe/spider
Initializing git repo in /Users/francois/Projects/spider
Gem 'spider' was successfully created. For more information on making a RubyGem visit https://bundler.io/guides/creating_gem.html

Затем в lib/, Вы создаете модули по мере необходимости:

lib/
  spider/
    base.rb
  crawler/
    base.rb
  spider.rb
    require "spider/base"
    require "crawler/base"

читает страницу руководства для драгоценный камень пакета для получения дополнительной информации о --coc, --exe и --mit опции.

11
ответ дан 29 November 2019 в 23:33
поделиться

Dentharg: Ваш "включают, для включения всех подразделений" является общим шаблоном. Как что-либо, это имеет свои преимущества (легкий получить вещи, которые Вы хотите), и его недостатки (многие включает, может загрязнить пространства имен, и Вы не имеете никакого контроля над ними). Ваш шаблон похож на это:

- src/
    some_ruby_file.rb:
      require 'spider'
      Spider.do_something

+ doc/

- lib/
  - spider/
      spider.rb:
        $: << File.expand_path(File.dirname(__FILE__))
        module Spider
          # anything that needs to be done before including submodules
        end

        require 'spider/some_helper'
        require 'spider/some/other_helper'
        ...

я мог бы рекомендовать этому позволить немного больше управления:

- src/
    some_ruby_file.rb:
      require 'spider'
      Spider.include_all
      Spider.do_something

+ doc/

- lib
  - spider/
      spider.rb:
        $: << File.expand_path(File.dirname(__FILE__))
        module Spider
          def self.include_all
            require 'spider/some_helper'
            require 'spider/some/other_helper'
            ...
          end
        end
2
ответ дан 29 November 2019 в 23:33
поделиться

Почему бы не использовать просто то же расположение? Обычно Вы не должны будете создавать, потому что нет никакого шага компиляции, но остальное кажется OK мне.

я не уверен, что Вы подразумеваете под модулем, но если бы это - просто единый класс, отдельная папка не была бы необходима и если существует, больше чем один регистрирует Вас, обычно пишут файл модуля-1.rb (на уровне имени как модуль 1 папка), который делает не что иное как требует всего в module-1/.

, О, и я предложил бы использовать Грабли для задач управления (вместо, делают).

1
ответ дан 29 November 2019 в 23:33
поделиться

Я придерживался бы чего-то подобного тому, с чем Вы знакомы: нет никакого смысла являющегося незнакомцем в Вашем собственном каталоге проекта. :-)

Типичными вещами, которые я всегда имею, является lib|src, мусорное ведро, тест.

(мне не нравятся эти генераторы монстра: первая вещь, которую я хочу сделать с новым проектом, снижают некоторый код, не пишут README, документы, и т.д.!)

0
ответ дан 29 November 2019 в 23:33
поделиться

Таким образом, я пошел с newgem. Я удалил весь ненужный материал RubyForge/gem (мотыга, установка, и т.д.), созданный мерзавец repo, импортированный проект в NetBeans. Все заняли 20 минут, и все идет зеленое. Это даже дало мне основную задачу граблей для файлов спецификации.

Спасибо всем.

0
ответ дан 29 November 2019 в 23:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: