ruscountrylist 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ .DS_Store
2
+ *.swp
3
+ pkg
4
+ .bundle
5
+ .rvmrc
6
+ *.gem
7
+ .bundle
8
+ .idea
9
+ Gemfile.lock
10
+ gemfiles/*.lock
11
+ pkg/*
12
+
13
+ doc
14
+ log
data/.travis.yml ADDED
@@ -0,0 +1,2 @@
1
+ rvm:
2
+ -1.9.3
data/CHANGELOG.md ADDED
@@ -0,0 +1,8 @@
1
+ ## v0.0.2
2
+
3
+ * removed unstable version of ruscountrylist v0.0.1
4
+
5
+ ## v0.0.1
6
+
7
+ * initial release
8
+
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in ruscountrylist.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012 vasche
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,87 @@
1
+ # Ruscountrylist
2
+
3
+ Список стран на русском языке.
4
+ Russian country list.
5
+
6
+ ## Требования
7
+ * Ruby 1.9.3 (возможо, подойдет версия старше)
8
+ * Rails 3.2 (возможо, подойдет версия старше)
9
+
10
+ ## Установка
11
+
12
+ Add this line to your application's Gemfile:
13
+
14
+ gem 'ruscountrylist'
15
+
16
+ And then execute:
17
+
18
+ $ bundle
19
+
20
+ Or install it yourself as:
21
+
22
+ $ gem install ruscountrylist
23
+
24
+ ## Как использовать
25
+
26
+ ### Список стран без генерации модели
27
+
28
+ В переменной содержится список стран
29
+
30
+ Ruscountrylist::RUS_COUNTRIES
31
+
32
+ Вывести список в select можно вот так:
33
+
34
+ select_tag "countries", options_for_select(Ruscountrylist::RUS_COUNTRIES)
35
+
36
+ Получаем:
37
+
38
+ <select id="countries" name="countries"><option value="Абхазия">Абхазия</option><option value="Австралия">Австралия</option>...</select>
39
+
40
+ ###Установка с моделью по умолчанию: Country
41
+
42
+ Генерация модели и миграции
43
+
44
+ $ rails generate ruscountrylist
45
+
46
+ Выполнение миграции
47
+
48
+ $ rake db:migrate
49
+
50
+ Заполнение таблицы countries
51
+
52
+ $ rake ruscountrylist:install
53
+
54
+ ### Модель с другим именем
55
+ Генерируем модель с именем "mymodel":
56
+
57
+ $ rails generate ruscountrylist --model=mymodel
58
+
59
+ Миграция:
60
+
61
+ $ rake db:migrate
62
+
63
+ Заполняем таблицу mymodels значениями:
64
+
65
+ $ rake ruscountrylist:install[mymodel]
66
+
67
+ ### Использование после миграции
68
+
69
+ В контроллер добавляем:
70
+
71
+ @countries = Country.all
72
+
73
+ В шаблоне (на примере slim)
74
+
75
+ select_tag 'countries', options_from_collection_for_select(@countries, 'id', 'name')
76
+
77
+ ## Contributing
78
+
79
+ 1. Fork it
80
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
81
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
82
+ 4. Push to the branch (`git push origin my-new-feature`)
83
+ 5. Create new Pull Request
84
+
85
+ ## Авторы
86
+
87
+ * vasche
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require "bundler/gem_tasks"
@@ -0,0 +1,46 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require 'rails/generators/migration'
4
+
5
+ module Ruscountrylist
6
+ module Generators
7
+ class RuscountrylistGenerator < Rails::Generators::Base
8
+ include Rails::Generators::Migration
9
+
10
+ namespace "ruscountrylist"
11
+ source_root File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
12
+
13
+ class_option :model, :optional => true, :type => :string, :banner => "model",
14
+ :desc => "Specify the model class name if you will use anything other than 'Country'"
15
+
16
+
17
+ #generate model file
18
+ def create_model
19
+ generate("model #{model_class_name} --skip-migration")
20
+ end
21
+
22
+
23
+ #copy migration file
24
+ def copy_migration_file
25
+ migration_template "migration.rb", "db/migrate/create_#{model_class_name.pluralize.underscore}.rb"
26
+ end
27
+
28
+ def self.next_migration_number(dirname) #:nodoc:
29
+ next_migration_number = current_migration_number(dirname) + 1
30
+ if ActiveRecord::Base.timestamped_migrations
31
+ [Time.now.strftime("%Y%m%d%H%M%S"), "%.14d" % next_migration_number].max
32
+ else
33
+ "%.3d" % next_migration_number
34
+ end
35
+ end
36
+
37
+
38
+ private
39
+
40
+ def model_class_name
41
+ options[:model] ? options[:model].classify : "Country"
42
+ end
43
+
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,25 @@
1
+ # -*- encoding: utf-8 -*-
2
+ class Create<%= model_class_name.pluralize %> < ActiveRecord::Migration
3
+ def self.up
4
+ create_table :<%= model_class_name.pluralize.underscore %> do |t|
5
+ t.string :name, null: false #Наименование
6
+ t.string :fullname #Полное наименование
7
+ t.string :english #На английском
8
+ t.string :alpha2 #Alpha2
9
+ t.string :alpha3 #Alpha3
10
+ t.string :iso #ISO
11
+ t.string :location #Часть света
12
+ t.string :location_precise #Расположение
13
+ t.boolean :enabled, :default => true
14
+ t.integer :show_order, :default => 0
15
+
16
+ t.timestamps
17
+ end
18
+ add_index :<%= model_class_name.pluralize.underscore %> , :name, :unique => true
19
+ end
20
+
21
+ def self.down
22
+ drop_table :<%= model_class_name.pluralize.underscore %>
23
+ end
24
+ end
25
+
@@ -0,0 +1,11 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require 'ruscountrylist'
3
+ require 'rails'
4
+
5
+ module Ruscountrylist
6
+ class Railtie < Rails::Railtie
7
+ rake_tasks do
8
+ load "ruscountrylist/tasks.rb"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,33 @@
1
+ # -*- encoding: utf-8 -*-
2
+ namespace :ruscountrylist do
3
+ desc "Populate country list"
4
+ task :install, [:model] => :environment do |t, args|
5
+ args.with_defaults(:model => "Country")
6
+ model_name_for_country = args[:model].camelize
7
+
8
+ require "rexml/document"
9
+
10
+ begin
11
+ model_name_for_country.constantize.first
12
+ rescue ActiveRecord::StatementInvalid => e
13
+ raise "Please run migration first"
14
+ end
15
+
16
+ xml = File.open(File.expand_path('../../../source', __FILE__) +'/country-list.xml')
17
+ doc = REXML::Document.new(xml)
18
+ h = REXML::XPath.each( doc, "//country" )
19
+ h.each do |pars|
20
+ country = model_name_for_country.constantize.new
21
+ country.name = pars.elements[1].text
22
+ country.fullname = pars.elements[2].text
23
+ country.english = pars.elements[3].text
24
+ country.alpha2 = pars.elements[4].text
25
+ country.alpha3 = pars.elements[5].text
26
+ country.iso = pars.elements[6].text
27
+ country.location = pars.elements[7].text
28
+ country.location_precise = pars.elements[8].text
29
+ country.save
30
+ end
31
+
32
+ end
33
+ end
@@ -0,0 +1,4 @@
1
+ # -*- encoding: utf-8 -*-
2
+ module Ruscountrylist
3
+ VERSION = "0.0.2"
4
+ end
@@ -0,0 +1,49 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require "ruscountrylist/version"
3
+ require 'ruscountrylist/railtie' if defined?(Rails)
4
+
5
+ module Ruscountrylist
6
+ RUS_COUNTRIES = ["Абхазия", "Австралия", "Австрия", "Азербайджан", "Албания", "Алжир", "Американское Самоа",\
7
+ "Ангилья", "Ангола", "Андорра", "Антарктида", "Антигуа и Барбуда", "Аргентина", "Армения", "Аруба", \
8
+ "Афганистан", "Багамы", "Бангладеш", "Барбадос", "Бахрейн", "Беларусь", "Белиз", "Бельгия", "Бенин", \
9
+ "Бермуды", "Болгария", "Боливия, Многонациональное Государство", "Бонайре, Саба и Синт-Эстатиус", \
10
+ "Босния и Герцеговина", "Ботсвана", "Бразилия", "Британская территория в Индийском океане", \
11
+ "Бруней-Даруссалам", "Буркина-Фасо", "Бурунди", "Бутан", "Вануату", "Венгрия", \
12
+ "Венесуэла Боливарианская Республика", "Виргинские острова, Британские", "Виргинские острова, США", \
13
+ "Вьетнам", "Габон", "Гаити", "Гайана", "Гамбия", "Гана", "Гваделупа", "Гватемала", "Гвинея", "Гвинея-Бисау", \
14
+ "Германия", "Гернси", "Гибралтар", "Гондурас", "Гонконг", "Гренада", "Гренландия", "Греция", "Грузия", \
15
+ "Гуам", "Дания", "Джерси", "Джибути", "Доминика", "Доминиканская Республика", "Египет", "Замбия", "Западная Сахара", \
16
+ "Зимбабве", "Израиль", "Индия", "Индонезия", "Иордания", "Ирак", "Иран, Исламская Республика", "Ирландия", \
17
+ "Исландия", "Испания", "Италия", "Йемен", "Кабо-Верде", "Казахстан", "Камбоджа", "Камерун", "Канада", "Катар", \
18
+ "Кения", "Кипр", "Киргизия", "Кирибати", "Китай", "Кокосовые (Килинг) острова", "Колумбия", "Коморы", "Конго", \
19
+ "Конго, Демократическая Республика", "Корея, Народно-Демократическая Республика", "Корея, Республика", "Коста-Рика", \
20
+ "Кот д'Ивуар", "Куба", "Кувейт", "Кюрасао", "Лаос", "Латвия", "Лесото", "Ливан", "Ливийская Арабская Джамахирия", \
21
+ "Либерия", "Лихтенштейн", "Литва", "Люксембург", "Маврикий", "Мавритания", "Мадагаскар", "Майотта", "Макао", "Малави", \
22
+ "Малайзия", "Мали", "Малые Тихоокеанские отдаленные острова Соединенных Штатов", "Мальдивы", "Мальта", "Марокко", \
23
+ "Мартиника", "Маршалловы острова", "Мексика", "Микронезия, Федеративные Штаты", "Мозамбик", "Молдова, Республика", \
24
+ "Монако", "Монголия", "Монтсеррат", "Мьянма", "Намибия", "Науру", "Непал", "Нигер", "Нигерия", "Нидерланды", "Никарагуа", \
25
+ "Ниуэ", "Новая Зеландия", "Новая Каледония", "Норвегия", "Объединенные Арабские Эмираты", "Оман", "Остров Буве", \
26
+ "Остров Мэн", "Остров Норфолк", "Остров Рождества", "Остров Херд и острова Макдональд", "Острова Кайман", "Острова Кука", \
27
+ "Острова Теркс и Кайкос", "Пакистан", "Палау", "Палестинская территория, оккупированная", "Панама", \
28
+ "Папский Престол (Государство - город Ватикан)", "Папуа-Новая Гвинея", "Парагвай", "Перу", "Питкерн", \
29
+ "Польша", "Португалия", "Пуэрто-Рико", "Республика Македония", "Реюньон", "Россия", "Руанда", "Румыния", \
30
+ "Самоа", "Сан-Марино", "Сан-Томе и Принсипи", "Саудовская Аравия", "Свазиленд", "Святая Елена, Остров вознесения, Тристан-да-Кунья", \
31
+ "Северные Марианские острова", "Сен-Бартельми", "Сен-Мартен", "Сенегал", "Сент-Винсент и Гренадины", \
32
+ "Сент-Китс и Невис", "Сент-Люсия", "Сент-Пьер и Микелон", "Сербия", "Сейшелы", "Сингапур", "Синт-Мартен", \
33
+ "Сирийская Арабская Республика", "Словакия", "Словения", "Соединенное Королевство", "Соединенные Штаты", \
34
+ "Соломоновы острова", "Сомали", "Судан", "Суринам", "Сьерра-Леоне", "Таджикистан", "Таиланд", "Тайвань (Китай)", \
35
+ "Танзания, Объединенная Республика", "Тимор-Лесте", "Того", "Токелау", "Тонга", "Тринидад и Тобаго", "Тувалу", \
36
+ "Тунис", "Туркмения", "Турция", "Уганда", "Узбекистан", "Украина", "Уоллис и Футуна", "Уругвай", "Фарерские острова", \
37
+ "Фиджи", "Филиппины", "Финляндия", "Фолклендские острова (Мальвинские)", "Франция", "Французская Гвиана", \
38
+ "Французская Полинезия", "Французские Южные территории", "Хорватия", "Центрально-Африканская Республика", "Чад", \
39
+ "Черногория", "Чешская Республика", "Чили", "Швейцария", "Швеция", "Шпицберген и Ян Майен", "Шри-Ланка", "Эквадор", \
40
+ "Экваториальная Гвинея", "Эландские острова", "Эль-Сальвадор", "Эритрея", "Эстония", "Эфиопия", "Южная Африка", \
41
+ "Южная Джорджия и Южные Сандвичевы острова", "Южная Осетия", "Южный Судан", "Ямайка", "Япония"] unless const_defined?("RUS_COUNTRIES")
42
+ end
43
+
44
+ begin
45
+ require 'rails'
46
+ rescue LoadError
47
+ #do nothing
48
+ end
49
+
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'ruscountrylist/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "ruscountrylist"
8
+ gem.version = Ruscountrylist::VERSION
9
+ gem.platform = Gem::Platform::RUBY
10
+ gem.authors = ["vasche"]
11
+ gem.email = ["cho.vasche@gmail.com"]
12
+ gem.description = %q{Create russian country list table}
13
+ gem.summary = %q{Create russian country list table}
14
+ gem.homepage = "https://github.com/vasche"
15
+
16
+ gem.files = `git ls-files`.split($/)
17
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
18
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
+ gem.require_paths = ["lib"]
20
+
21
+ gem.rubyforge_project = "ruscountrylist"
22
+
23
+ gem.add_development_dependency 'rake'
24
+ end