From d77f822761392cb583989af3ccc78be2ea1c9203 Mon Sep 17 00:00:00 2001 From: Mark Reist Date: Sun, 22 Jan 2017 23:35:14 -0500 Subject: [PATCH 1/4] Add configuration for priority_subdivisions. --- .../subdivision_select/subdivisions_helper.rb | 17 ++++++++++++----- lib/subdivision_select.rb | 1 + lib/subdivision_select/configuration.rb | 18 ++++++++++++++++++ 3 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 lib/subdivision_select/configuration.rb diff --git a/app/helpers/subdivision_select/subdivisions_helper.rb b/app/helpers/subdivision_select/subdivisions_helper.rb index 61a9998..aa62e6c 100644 --- a/app/helpers/subdivision_select/subdivisions_helper.rb +++ b/app/helpers/subdivision_select/subdivisions_helper.rb @@ -6,11 +6,18 @@ def self.get_subdivisions(alpha2) # and the value is a hash with two key/values: # - "name" is the most popular/most correct name # - "names" is an array of all the names - if ISO3166::Country[alpha2].nil? - {} - else - ISO3166::Country[alpha2].subdivisions.map { |k, v| [k, v["name"]] }.to_h - end + subdivision_hash = + if ISO3166::Country[alpha2].nil? + {} + else + ISO3166::Country[alpha2].subdivisions.map { |k, v| [k, v["name"]] }.to_h + end + + Hash[ + SubdivisionSelect.options.priority_subdivisions.fetch(alpha2.to_sym, []).map do |sd_code| + [sd_code, subdivision_hash.delete(sd_code)] + end + ].merge(subdivision_hash) end def self.get_subdivisions_for_select(alpha2) diff --git a/lib/subdivision_select.rb b/lib/subdivision_select.rb index a78cea6..4aefb81 100644 --- a/lib/subdivision_select.rb +++ b/lib/subdivision_select.rb @@ -1,3 +1,4 @@ +require "subdivision_select/configuration" require "subdivision_select/tag_helper" require "subdivision_select/subdivision_select_helper" require "subdivision_select/engine" diff --git a/lib/subdivision_select/configuration.rb b/lib/subdivision_select/configuration.rb new file mode 100644 index 0000000..3f7732d --- /dev/null +++ b/lib/subdivision_select/configuration.rb @@ -0,0 +1,18 @@ +module SubdivisionSelect + class << self + attr_accessor :options + end + + def self.configure + self.options ||= Configuration.new + yield(options) + end + + class Configuration + attr_accessor :priority_subdivisions + + def initialize + @priority_subdivisions = {} + end + end +end From 5c7e56f8eafc77672141f15b37c7bcb435b8c094 Mon Sep 17 00:00:00 2001 From: Mark Reist Date: Sun, 5 Feb 2017 02:37:28 -0500 Subject: [PATCH 2/4] country selector fix --- app/assets/javascripts/subdivision_select.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/javascripts/subdivision_select.js b/app/assets/javascripts/subdivision_select.js index 0ada31b..9f07031 100644 --- a/app/assets/javascripts/subdivision_select.js +++ b/app/assets/javascripts/subdivision_select.js @@ -13,7 +13,7 @@ var SubdivisionSelect = (function() { } else { this._countrySelect = $element. closest("form"). - find(SubdivisionSelect.subdivisionSelector); + find(SubdivisionSelect.countrySelector); } }; From 09211cff00edc2f7b90ae8b374828ac5a38e3227 Mon Sep 17 00:00:00 2001 From: Peter Schilling Date: Tue, 24 Jul 2018 09:38:49 -0700 Subject: [PATCH 3/4] Update deps and get tests passing --- app/helpers/subdivision_select/subdivisions_helper.rb | 2 +- lib/subdivision_select/configuration.rb | 9 ++++----- lib/subdivision_select/tag_helper.rb | 2 +- .../subdivision_select/subdivisions_controller_spec.rb | 6 +++--- .../spec/controllers/addresses_demo_controller_spec.rb | 6 +++--- spec/dummy/spec/features/select_boxes_spec.rb | 1 + spec/rails_helper.rb | 2 ++ subdivision_select.gemspec | 9 +++++---- 8 files changed, 20 insertions(+), 17 deletions(-) diff --git a/app/helpers/subdivision_select/subdivisions_helper.rb b/app/helpers/subdivision_select/subdivisions_helper.rb index aa62e6c..ff97b2e 100644 --- a/app/helpers/subdivision_select/subdivisions_helper.rb +++ b/app/helpers/subdivision_select/subdivisions_helper.rb @@ -14,7 +14,7 @@ def self.get_subdivisions(alpha2) end Hash[ - SubdivisionSelect.options.priority_subdivisions.fetch(alpha2.to_sym, []).map do |sd_code| + SubdivisionSelect.options.priority_subdivisions.fetch(alpha2&.to_sym, []).map do |sd_code| [sd_code, subdivision_hash.delete(sd_code)] end ].merge(subdivision_hash) diff --git a/lib/subdivision_select/configuration.rb b/lib/subdivision_select/configuration.rb index 3f7732d..d2d46e4 100644 --- a/lib/subdivision_select/configuration.rb +++ b/lib/subdivision_select/configuration.rb @@ -1,13 +1,12 @@ module SubdivisionSelect - class << self - attr_accessor :options - end - def self.configure - self.options ||= Configuration.new yield(options) end + def self.options + @options ||= Configuration.new + end + class Configuration attr_accessor :priority_subdivisions diff --git a/lib/subdivision_select/tag_helper.rb b/lib/subdivision_select/tag_helper.rb index 3fec4fd..95e2bf0 100644 --- a/lib/subdivision_select/tag_helper.rb +++ b/lib/subdivision_select/tag_helper.rb @@ -3,7 +3,7 @@ module SubdivisionSelect module TagHelper def subdivision_option_tags option_tags_options = { - selected: @options.fetch(:selected) { value(@object) }, + selected: @options.fetch(:selected) { value }, disabled: @options[:disabled] } diff --git a/spec/controllers/subdivision_select/subdivisions_controller_spec.rb b/spec/controllers/subdivision_select/subdivisions_controller_spec.rb index f37c8e2..1f61cc0 100644 --- a/spec/controllers/subdivision_select/subdivisions_controller_spec.rb +++ b/spec/controllers/subdivision_select/subdivisions_controller_spec.rb @@ -6,14 +6,14 @@ module SubdivisionSelect describe "GET #get" do it "returns http success in JSON, when correct param supplied" do - get :get, country_code: "IE" - expect(response).to have_http_status(:success) + get :get, params: { country_code: "IE" } + expect(response).to be_successful expect(response.content_type).to eq("application/json") end it "returns http success in JSON, w/o correct param supplied" do get :get - expect(response).to have_http_status(:success) + expect(response).to be_successful expect(response.content_type).to eq("application/json") end diff --git a/spec/dummy/spec/controllers/addresses_demo_controller_spec.rb b/spec/dummy/spec/controllers/addresses_demo_controller_spec.rb index a672b42..a1bd70d 100644 --- a/spec/dummy/spec/controllers/addresses_demo_controller_spec.rb +++ b/spec/dummy/spec/controllers/addresses_demo_controller_spec.rb @@ -4,21 +4,21 @@ describe "GET #index" do it "returns http success" do get :index - expect(response).to have_http_status(:success) + expect(response).to be_successful end end describe "GET #tags" do it "returns http success" do get :tags - expect(response).to have_http_status(:success) + expect(response).to be_successful end end describe "PATCH #update" do it "returns http success" do @address = create(:address) - patch :update, id: @address.id, address: { subdivision: "D", country: "IE" } + patch :update, params: { id: @address.id, address: { subdivision: "D", country: "IE" } } expect(assigns(:address).country).to eq("IE") expect(assigns(:address).subdivision).to eq("D") end diff --git a/spec/dummy/spec/features/select_boxes_spec.rb b/spec/dummy/spec/features/select_boxes_spec.rb index a272264..da1bd40 100644 --- a/spec/dummy/spec/features/select_boxes_spec.rb +++ b/spec/dummy/spec/features/select_boxes_spec.rb @@ -1,4 +1,5 @@ require "rails_helper" + feature "select boxes via FormBuilder and FormTagHelper" do before(:each) do @address = create(:mass_address) diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index bbadd22..debd830 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -6,6 +6,8 @@ require "capybara/rails" require "capybara/rspec" require "factory_girl_rails" +require "rails-controller-testing" +Rails::Controller::Testing.install require "capybara/poltergeist" Capybara.javascript_driver = :poltergeist diff --git a/subdivision_select.gemspec b/subdivision_select.gemspec index 713d6a5..180edf7 100644 --- a/subdivision_select.gemspec +++ b/subdivision_select.gemspec @@ -21,14 +21,15 @@ Gem::Specification.new do |s| ] s.test_files = Dir["spec/**/*"] - s.add_dependency "rails", ">= 4.1" - s.add_dependency "country_select", "~> 2.0" - s.add_dependency "countries", "~> 1.1" + s.add_dependency "rails", ">= 5.1" + s.add_dependency "country_select", "~> 3.1" + s.add_dependency "countries", "~> 2.1" s.add_dependency "jquery-rails", ">= 3.0" s.add_development_dependency "sqlite3", "~> 1.3" # Not used but we need an AR adapter - s.add_development_dependency "rspec-rails", "~> 3.2" + s.add_development_dependency "rspec-rails", "~> 3.7" + s.add_development_dependency "rails-controller-testing" s.add_development_dependency "factory_girl_rails", "~> 4.5" s.add_development_dependency "database_cleaner" From ad83149edd3fb26e578a2f19daf8eddb53017aa9 Mon Sep 17 00:00:00 2001 From: candland Date: Fri, 4 Oct 2024 15:52:22 -0600 Subject: [PATCH 4/4] Update for rails 7 --- lib/subdivision_select/engine.rb | 2 +- lib/subdivision_select/tag_helper.rb | 10 ++++--- lib/subdivision_select/version.rb | 2 +- .../subdivisions_controller_spec.rb | 7 +++-- spec/dummy/app/assets/config/manifest.js | 3 +++ .../controllers/addresses_demo_controller.rb | 2 +- .../20150505182454_add_title_to_addresses.rb | 5 ---- ....rb => 20241004213846_create_addresses.rb} | 5 ++-- spec/dummy/db/schema.rb | 25 ++++++++---------- spec/dummy/db/seeds.rb | 16 ----------- spec/dummy/db/test.sqlite3-shm | Bin 0 -> 32768 bytes spec/dummy/db/test.sqlite3-wal | Bin 0 -> 477952 bytes spec/factories.rb | 10 +++---- spec/rails_helper.rb | 4 +-- subdivision_select.gemspec | 15 ++++++----- 15 files changed, 45 insertions(+), 61 deletions(-) create mode 100644 spec/dummy/app/assets/config/manifest.js delete mode 100644 spec/dummy/db/migrate/20150505182454_add_title_to_addresses.rb rename spec/dummy/db/migrate/{20150505181543_create_addresses.rb => 20241004213846_create_addresses.rb} (55%) delete mode 100644 spec/dummy/db/seeds.rb create mode 100644 spec/dummy/db/test.sqlite3-shm create mode 100644 spec/dummy/db/test.sqlite3-wal diff --git a/lib/subdivision_select/engine.rb b/lib/subdivision_select/engine.rb index 2fb6506..b0a5ca6 100644 --- a/lib/subdivision_select/engine.rb +++ b/lib/subdivision_select/engine.rb @@ -13,7 +13,7 @@ class Engine < ::Rails::Engine config.generators do |g| g.test_framework :rspec - g.fixture_replacement :factory_girl, dir: "spec/factories" + g.fixture_replacement :factory_bot, dir: "spec/factories" end end end diff --git a/lib/subdivision_select/tag_helper.rb b/lib/subdivision_select/tag_helper.rb index 95e2bf0..110f99f 100644 --- a/lib/subdivision_select/tag_helper.rb +++ b/lib/subdivision_select/tag_helper.rb @@ -1,6 +1,11 @@ module SubdivisionSelect - #class CountryNotFoundError < StandardError;end + # class CountryNotFoundError < StandardError;end module TagHelper + unless respond_to?(:options_for_select) + include ActionView::Helpers::FormOptionsHelper + include ActionView::Helpers::Tags::SelectRenderer if defined?(ActionView::Helpers::Tags::SelectRenderer) + end + def subdivision_option_tags option_tags_options = { selected: @options.fetch(:selected) { value }, @@ -9,7 +14,7 @@ def subdivision_option_tags # Actual loading of subdivisions is in a View helper, since the controller # needs to use it, to render the subdivisions of a country in JSON - subdivisions = SubdivisionsHelper::get_subdivisions_for_select(country) + subdivisions = SubdivisionsHelper.get_subdivisions_for_select(country) options_for_select(subdivisions, option_tags_options) end @@ -20,4 +25,3 @@ def country end end end - diff --git a/lib/subdivision_select/version.rb b/lib/subdivision_select/version.rb index 70dc584..2a98396 100644 --- a/lib/subdivision_select/version.rb +++ b/lib/subdivision_select/version.rb @@ -1,3 +1,3 @@ module SubdivisionSelect - VERSION = "0.0.6" + VERSION = "0.0.8" end diff --git a/spec/controllers/subdivision_select/subdivisions_controller_spec.rb b/spec/controllers/subdivision_select/subdivisions_controller_spec.rb index 1f61cc0..961c2bc 100644 --- a/spec/controllers/subdivision_select/subdivisions_controller_spec.rb +++ b/spec/controllers/subdivision_select/subdivisions_controller_spec.rb @@ -6,17 +6,16 @@ module SubdivisionSelect describe "GET #get" do it "returns http success in JSON, when correct param supplied" do - get :get, params: { country_code: "IE" } + get :get, params: {country_code: "IE"} expect(response).to be_successful - expect(response.content_type).to eq("application/json") + expect(response.content_type).to eq("application/json; charset=utf-8") end it "returns http success in JSON, w/o correct param supplied" do get :get expect(response).to be_successful - expect(response.content_type).to eq("application/json") + expect(response.content_type).to eq("application/json; charset=utf-8") end - end end end diff --git a/spec/dummy/app/assets/config/manifest.js b/spec/dummy/app/assets/config/manifest.js new file mode 100644 index 0000000..b16e53d --- /dev/null +++ b/spec/dummy/app/assets/config/manifest.js @@ -0,0 +1,3 @@ +//= link_tree ../images +//= link_directory ../javascripts .js +//= link_directory ../stylesheets .css diff --git a/spec/dummy/app/controllers/addresses_demo_controller.rb b/spec/dummy/app/controllers/addresses_demo_controller.rb index 1310c37..5f75316 100644 --- a/spec/dummy/app/controllers/addresses_demo_controller.rb +++ b/spec/dummy/app/controllers/addresses_demo_controller.rb @@ -13,7 +13,7 @@ def tags def update @address = Address.find(params[:id]) - if @address.update_attributes(address_params) + if @address.update(address_params) redirect_to root_path, notice: "Updated address!" end end diff --git a/spec/dummy/db/migrate/20150505182454_add_title_to_addresses.rb b/spec/dummy/db/migrate/20150505182454_add_title_to_addresses.rb deleted file mode 100644 index 5375a60..0000000 --- a/spec/dummy/db/migrate/20150505182454_add_title_to_addresses.rb +++ /dev/null @@ -1,5 +0,0 @@ -class AddTitleToAddresses < ActiveRecord::Migration - def change - add_column :addresses, :title, :string - end -end diff --git a/spec/dummy/db/migrate/20150505181543_create_addresses.rb b/spec/dummy/db/migrate/20241004213846_create_addresses.rb similarity index 55% rename from spec/dummy/db/migrate/20150505181543_create_addresses.rb rename to spec/dummy/db/migrate/20241004213846_create_addresses.rb index d029d09..488667f 100644 --- a/spec/dummy/db/migrate/20150505181543_create_addresses.rb +++ b/spec/dummy/db/migrate/20241004213846_create_addresses.rb @@ -1,10 +1,11 @@ -class CreateAddresses < ActiveRecord::Migration +class CreateAddresses < ActiveRecord::Migration[7.2] def change create_table :addresses do |t| + t.string :title t.string :country t.string :subdivision - t.timestamps null: false + t.timestamps end end end diff --git a/spec/dummy/db/schema.rb b/spec/dummy/db/schema.rb index 688f6d5..5052a55 100644 --- a/spec/dummy/db/schema.rb +++ b/spec/dummy/db/schema.rb @@ -1,24 +1,21 @@ -# encoding: UTF-8 # This file is auto-generated from the current state of the database. Instead # of editing this file, please use the migrations feature of Active Record to # incrementally modify your database, and then regenerate this schema definition. # -# Note that this schema.rb definition is the authoritative source for your -# database schema. If you need to create the application database on another -# system, you should be using db:schema:load, not running all the migrations -# from scratch. The latter is a flawed and unsustainable approach (the more migrations -# you'll amass, the slower it'll run and the greater likelihood for issues). +# This file is the source Rails uses to define your schema when running `bin/rails +# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to +# be faster and is potentially less error prone than running all of your +# migrations from scratch. Old migrations may fail to apply correctly if those +# migrations use external dependencies or application code. # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20150505182454) do - +ActiveRecord::Schema[7.2].define(version: 2024_10_04_213846) do create_table "addresses", force: :cascade do |t| - t.string "country" - t.string "subdivision" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.string "title" + t.string "title" + t.string "country" + t.string "subdivision" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false end - end diff --git a/spec/dummy/db/seeds.rb b/spec/dummy/db/seeds.rb deleted file mode 100644 index 0490917..0000000 --- a/spec/dummy/db/seeds.rb +++ /dev/null @@ -1,16 +0,0 @@ -Address.destroy_all - -Address.create!( - title: "Empty" -) - -Address.create!( - title: "Massachusetts, USA", - country: "US", - subdivision: "MA" -) - -Address.create!( - title: "Ireland, without subdivision", - country: "IE" -) diff --git a/spec/dummy/db/test.sqlite3-shm b/spec/dummy/db/test.sqlite3-shm new file mode 100644 index 0000000000000000000000000000000000000000..a19b7dd6e755f81cf6b64d125a37aa0b42cf5927 GIT binary patch literal 32768 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 5.1" - s.add_dependency "country_select", "~> 3.1" - s.add_dependency "countries", "~> 2.1" + s.add_dependency "rails", ">= 7.0" + s.add_dependency "sprockets-rails", ">= 3.5" + s.add_dependency "country_select", "~> 10.0.0" + s.add_dependency "countries", "> 5.0", "< 8.0" s.add_dependency "jquery-rails", ">= 3.0" s.add_development_dependency "sqlite3", "~> 1.3" # Not used but we need an AR adapter - s.add_development_dependency "rspec-rails", "~> 3.7" + s.add_development_dependency "puma", ">= 6.0" + s.add_development_dependency "rspec-rails", "~> 7.0" s.add_development_dependency "rails-controller-testing" - s.add_development_dependency "factory_girl_rails", "~> 4.5" + s.add_development_dependency "factory_bot_rails", "~> 6.0" s.add_development_dependency "database_cleaner" - s.add_development_dependency "capybara", "~> 2.4" + s.add_development_dependency "capybara", "~> 3.40" s.add_development_dependency "poltergeist", "~> 1.8" end