country_state_select 2.0.0 → 3.0.0

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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -0
  3. data/README.md +126 -8
  4. data/app/controllers/country_state_select/cscs_controller.rb +9 -0
  5. data/config/routes.rb +4 -4
  6. data/country_state_select.gemspec +16 -10
  7. data/lib/country_state_select.rb +33 -22
  8. data/lib/country_state_select/version.rb +1 -1
  9. data/spec/country_state_select_spec.rb +172 -0
  10. data/spec/spec_helper.rb +8 -0
  11. data/test/dummy/Gemfile +40 -43
  12. data/test/dummy/app/assets/javascripts/application.js +4 -3
  13. data/test/dummy/app/assets/javascripts/locations.coffee +2 -0
  14. data/test/dummy/app/assets/stylesheets/application.scss +16 -0
  15. data/test/dummy/app/assets/stylesheets/{users.css.scss → locations.css.scss} +1 -1
  16. data/test/dummy/app/controllers/locations_controller.rb +55 -0
  17. data/test/dummy/app/form/location_form.rb +11 -0
  18. data/test/dummy/app/models/location.rb +2 -0
  19. data/test/dummy/app/views/layouts/application.html.erb +7 -5
  20. data/test/dummy/app/views/locations/_form.html.erb +15 -0
  21. data/test/dummy/app/views/locations/index.html.erb +29 -0
  22. data/test/dummy/app/views/locations/new.html.erb +13 -0
  23. data/test/dummy/app/views/locations/show.html.erb +13 -0
  24. data/test/dummy/bin/bundle +0 -0
  25. data/test/dummy/bin/rails +0 -0
  26. data/test/dummy/bin/rake +0 -0
  27. data/test/dummy/config/environments/production.rb +1 -1
  28. data/test/dummy/config/initializers/simple_form.rb +165 -0
  29. data/test/dummy/config/locales/simple_form.en.yml +31 -0
  30. data/test/dummy/config/routes.rb +2 -56
  31. data/test/dummy/db/migrate/20140724080030_create_locations.rb +10 -0
  32. data/test/dummy/db/migrate/20151024160724_add_test_city_to_locations.rb +5 -0
  33. data/test/dummy/db/schema.rb +5 -8
  34. data/vendor/assets/javascript/country_state_select.js.erb +159 -36
  35. metadata +172 -39
  36. data/lib/country_state_select/cst_data.rb +0 -17
  37. data/test/dummy/app/assets/javascripts/users.js.coffee +0 -9
  38. data/test/dummy/app/assets/stylesheets/application.css +0 -14
  39. data/test/dummy/app/assets/stylesheets/scaffolds.css.scss +0 -69
  40. data/test/dummy/app/controllers/users_controller.rb +0 -74
  41. data/test/dummy/app/helpers/users_helper.rb +0 -2
  42. data/test/dummy/app/models/user.rb +0 -2
  43. data/test/dummy/app/views/users/_form.html.erb +0 -35
  44. data/test/dummy/app/views/users/edit.html.erb +0 -6
  45. data/test/dummy/app/views/users/index.html.erb +0 -35
  46. data/test/dummy/app/views/users/index.json.jbuilder +0 -4
  47. data/test/dummy/app/views/users/new.html.erb +0 -5
  48. data/test/dummy/app/views/users/show.html.erb +0 -27
  49. data/test/dummy/app/views/users/show.json.jbuilder +0 -1
  50. data/test/dummy/db/migrate/20140724080030_create_users.rb +0 -12
  51. data/test/dummy/db/migrate/20140728194622_add_state_name_to_users.rb +0 -5
  52. data/test/dummy/db/migrate/20140728203606_add_country_name_to_user.rb +0 -5
  53. data/test/dummy/test/controllers/users_controller_test.rb +0 -49
  54. data/test/dummy/test/fixtures/users.yml +0 -13
  55. data/test/dummy/test/helpers/users_helper_test.rb +0 -4
  56. data/test/dummy/test/models/user_test.rb +0 -7
@@ -1,17 +0,0 @@
1
- #!/bin/env ruby
2
- # encoding: utf-8
3
-
4
- # @author Arvind Vyas
5
-
6
- module CountryStateSelect
7
- require 'city-state'
8
- module CstData
9
- def self.countries
10
- CS.countries
11
- end
12
-
13
- def self.states(country)
14
- CS.states(country)
15
- end
16
- end
17
- end
@@ -1,9 +0,0 @@
1
- $(document).on 'ready page:load', ->
2
- $('.chosen-select').change ->
3
- if $('#state_name option').size() > 1
4
- $("#state_name" ).chosen() //this will add the chosen-select in to the state select
5
- $("#state_name_chosen").empty();
6
- $('.chosen-select').chosen
7
- allow_single_deselect: true
8
- no_results_text: 'No results matched'
9
- width: '280px'
@@ -1,14 +0,0 @@
1
- /*
2
- * This is a manifest file that'll be compiled into application.css, which will include all the files
3
- * listed below.
4
- *
5
- * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
- * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7
- *
8
- * You're free to add application-wide styles to this file and they'll appear at the top of the
9
- * compiled file, but it's generally better to create a new file per style scope.
10
- *
11
- *= require_self
12
- *= require chosen
13
- *= require_tree .
14
- */
@@ -1,69 +0,0 @@
1
- body {
2
- background-color: #fff;
3
- color: #333;
4
- font-family: verdana, arial, helvetica, sans-serif;
5
- font-size: 13px;
6
- line-height: 18px;
7
- }
8
-
9
- p, ol, ul, td {
10
- font-family: verdana, arial, helvetica, sans-serif;
11
- font-size: 13px;
12
- line-height: 18px;
13
- }
14
-
15
- pre {
16
- background-color: #eee;
17
- padding: 10px;
18
- font-size: 11px;
19
- }
20
-
21
- a {
22
- color: #000;
23
- &:visited {
24
- color: #666;
25
- }
26
- &:hover {
27
- color: #fff;
28
- background-color: #000;
29
- }
30
- }
31
-
32
- div {
33
- &.field, &.actions {
34
- margin-bottom: 10px;
35
- }
36
- }
37
-
38
- #notice {
39
- color: green;
40
- }
41
-
42
- .field_with_errors {
43
- padding: 2px;
44
- background-color: red;
45
- display: table;
46
- }
47
-
48
- #error_explanation {
49
- width: 450px;
50
- border: 2px solid red;
51
- padding: 7px;
52
- padding-bottom: 0;
53
- margin-bottom: 20px;
54
- background-color: #f0f0f0;
55
- h2 {
56
- text-align: left;
57
- font-weight: bold;
58
- padding: 5px 5px 5px 15px;
59
- font-size: 12px;
60
- margin: -7px;
61
- margin-bottom: 0px;
62
- background-color: #c00;
63
- color: #fff;
64
- }
65
- ul li {
66
- font-size: 12px;
67
- list-style: square;
68
- }
69
- }
@@ -1,74 +0,0 @@
1
- class UsersController < ApplicationController
2
- before_action :set_user, only: [:show, :edit, :update, :destroy]
3
-
4
- # GET /users
5
- # GET /users.json
6
- def index
7
- @users = User.all
8
- end
9
-
10
- # GET /users/1
11
- # GET /users/1.json
12
- def show
13
- end
14
-
15
- # GET /users/new
16
- def new
17
- @user = User.new
18
- end
19
-
20
- # GET /users/1/edit
21
- def edit
22
- end
23
-
24
- # POST /users
25
- # POST /users.json
26
- def create
27
- @user = User.new(user_params)
28
-
29
- respond_to do |format|
30
- if @user.save
31
- format.html { redirect_to @user, notice: 'User was successfully created.' }
32
- format.json { render action: 'show', status: :created, location: @user }
33
- else
34
- format.html { render action: 'new' }
35
- format.json { render json: @user.errors, status: :unprocessable_entity }
36
- end
37
- end
38
- end
39
-
40
- # PATCH/PUT /users/1
41
- # PATCH/PUT /users/1.json
42
- def update
43
- respond_to do |format|
44
- if @user.update(user_params)
45
- format.html { redirect_to @user, notice: 'User was successfully updated.' }
46
- format.json { head :no_content }
47
- else
48
- format.html { render action: 'edit' }
49
- format.json { render json: @user.errors, status: :unprocessable_entity }
50
- end
51
- end
52
- end
53
-
54
- # DELETE /users/1
55
- # DELETE /users/1.json
56
- def destroy
57
- @user.destroy
58
- respond_to do |format|
59
- format.html { redirect_to users_url }
60
- format.json { head :no_content }
61
- end
62
- end
63
-
64
- private
65
- # Use callbacks to share common setup or constraints between actions.
66
- def set_user
67
- @user = User.find(params[:id])
68
- end
69
-
70
- # Never trust parameters from the scary internet, only allow the white list through.
71
- def user_params
72
- params.require(:user).permit(:name, :email, :country_id, :state_id, :state_name, :country_name)
73
- end
74
- end
@@ -1,2 +0,0 @@
1
- module UsersHelper
2
- end
@@ -1,2 +0,0 @@
1
- class User < ActiveRecord::Base
2
- end
@@ -1,35 +0,0 @@
1
- <%= form_for(@user) do |f| %>
2
- <% if @user.errors.any? %>
3
- <div id="error_explanation">
4
- <h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h2>
5
-
6
- <ul>
7
- <% @user.errors.full_messages.each do |msg| %>
8
- <li><%= msg %></li>
9
- <% end %>
10
- </ul>
11
- </div>
12
- <% end %>
13
-
14
- <div class="field">
15
- <%= f.label :name %><br>
16
- <%= f.text_field :name %>
17
- </div>
18
- <div class="field">
19
- <%= f.label :email %><br>
20
- <%= f.text_field :email %>
21
- </div>
22
- <div class="field">
23
- <%= f.label :country_id %><br>
24
- <%= f.select :country_name, CountryStateSelect.countries.collect {|p| [ p[ 1], p[0] ] }, {}, id: 'country_id', :class=>'chosen-select' %>
25
-
26
- </div>
27
- <div class="field">
28
- <%= f.label :state_name %><br>
29
- <%= f.text_field :state_name ,:id=>'state_name', class: 'chosen-select' %>
30
-
31
- </div>
32
- <div class="actions">
33
- <%= f.submit %>
34
- </div>
35
- <% end %>
@@ -1,6 +0,0 @@
1
- <h1>Editing user</h1>
2
-
3
- <%= render 'form' %>
4
-
5
- <%= link_to 'Show', @user %> |
6
- <%= link_to 'Back', users_path %>
@@ -1,35 +0,0 @@
1
- <h1>Listing users</h1>
2
-
3
- <table>
4
- <thead>
5
- <tr>
6
- <th>Name</th>
7
- <th>Email</th>
8
- <th>Country</th>
9
- <th>Country Name from second select</th>
10
- <th>State</th>
11
- <th></th>
12
- <th></th>
13
- <th></th>
14
- </tr>
15
- </thead>
16
-
17
- <tbody>
18
- <% @users.each do |user| %>
19
- <tr>
20
- <td><%= user.name %></td>
21
- <td><%= user.email %></td>
22
- <td><%#= CountryStateSelect::Constant::COUNTRIES[user.country_id] %></td>
23
- <td><%= user.country_name%></td>
24
- <td><%= user.state_name %></td>
25
- <td><%= link_to 'Show', user %></td>
26
- <td><%= link_to 'Edit', edit_user_path(user) %></td>
27
- <td><%= link_to 'Destroy', user, method: :delete, data: { confirm: 'Are you sure?' } %></td>
28
- </tr>
29
- <% end %>
30
- </tbody>
31
- </table>
32
-
33
- <br>
34
-
35
- <%= link_to 'New User', new_user_path %>
@@ -1,4 +0,0 @@
1
- json.array!(@users) do |user|
2
- json.extract! user, :id, :name, :email, :country_id, :state_id
3
- json.url user_url(user, format: :json)
4
- end
@@ -1,5 +0,0 @@
1
- <h1>New user</h1>
2
-
3
- <%= render 'form' %>
4
-
5
- <%= link_to 'Back', users_path %>
@@ -1,27 +0,0 @@
1
- <p id="notice"><%= notice %></p>
2
-
3
- <p>
4
- <strong>Name:</strong>
5
- <%= @user.name %>
6
- </p>
7
-
8
- <p>
9
- <strong>Email:</strong>
10
- <%= @user.email %>
11
- </p>
12
-
13
- <p>
14
- <strong>Country:</strong>
15
- <%# = CountryStateSelect::Constant::COUNTRIES[@user.country_id] %>
16
- </p>
17
- <p>
18
- <strong>Country Name From second drop down:</strong>
19
- <%= @user.country_name %>
20
- </p>
21
- <p>
22
- <strong>State:</strong>
23
- <%= @user.state_name %>
24
- </p>
25
-
26
- <%= link_to 'Edit', edit_user_path(@user) %> |
27
- <%= link_to 'Back', users_path %>
@@ -1 +0,0 @@
1
- json.extract! @user, :id, :name, :email, :country_id, :state_id, :created_at, :updated_at
@@ -1,12 +0,0 @@
1
- class CreateUsers < ActiveRecord::Migration
2
- def change
3
- create_table :users do |t|
4
- t.string :name
5
- t.string :email
6
- t.integer :country_id
7
- t.integer :state_id
8
-
9
- t.timestamps
10
- end
11
- end
12
- end
@@ -1,5 +0,0 @@
1
- class AddStateNameToUsers < ActiveRecord::Migration
2
- def change
3
- add_column :users, :state_name, :string
4
- end
5
- end
@@ -1,5 +0,0 @@
1
- class AddCountryNameToUser < ActiveRecord::Migration
2
- def change
3
- add_column :users, :country_name, :string
4
- end
5
- end
@@ -1,49 +0,0 @@
1
- require 'test_helper'
2
-
3
- class UsersControllerTest < ActionController::TestCase
4
- setup do
5
- @user = users(:one)
6
- end
7
-
8
- test "should get index" do
9
- get :index
10
- assert_response :success
11
- assert_not_nil assigns(:users)
12
- end
13
-
14
- test "should get new" do
15
- get :new
16
- assert_response :success
17
- end
18
-
19
- test "should create user" do
20
- assert_difference('User.count') do
21
- post :create, user: { country_id: @user.country_id, email: @user.email, name: @user.name, state_id: @user.state_id }
22
- end
23
-
24
- assert_redirected_to user_path(assigns(:user))
25
- end
26
-
27
- test "should show user" do
28
- get :show, id: @user
29
- assert_response :success
30
- end
31
-
32
- test "should get edit" do
33
- get :edit, id: @user
34
- assert_response :success
35
- end
36
-
37
- test "should update user" do
38
- patch :update, id: @user, user: { country_id: @user.country_id, email: @user.email, name: @user.name, state_id: @user.state_id }
39
- assert_redirected_to user_path(assigns(:user))
40
- end
41
-
42
- test "should destroy user" do
43
- assert_difference('User.count', -1) do
44
- delete :destroy, id: @user
45
- end
46
-
47
- assert_redirected_to users_path
48
- end
49
- end
@@ -1,13 +0,0 @@
1
- # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
2
-
3
- one:
4
- name: MyString
5
- email: MyString
6
- country_id: 1
7
- state_id: 1
8
-
9
- two:
10
- name: MyString
11
- email: MyString
12
- country_id: 1
13
- state_id: 1
@@ -1,4 +0,0 @@
1
- require 'test_helper'
2
-
3
- class UsersHelperTest < ActionView::TestCase
4
- end
@@ -1,7 +0,0 @@
1
- require 'test_helper'
2
-
3
- class UserTest < ActiveSupport::TestCase
4
- # test "the truth" do
5
- # assert true
6
- # end
7
- end