diff --git a/Gemfile b/Gemfile index 6ad3d09..84aaef7 100644 --- a/Gemfile +++ b/Gemfile @@ -5,8 +5,9 @@ source "https://rubygems.org" # development dependencies will be added by default to the :development group. gemspec -# Explicitly require carrierwave +# Explicitly require gems gem 'carrierwave', require: 'carrierwave' +gem 'geocoder', require: 'geocoder' # Bundle spring from github gem 'spring', github: 'jonleighton/spring' diff --git a/Gemfile.lock b/Gemfile.lock index 8ee54c2..75bc71d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -9,6 +9,7 @@ PATH specs: formbuilder (0.0.1) carrierwave + geocoder pg rails (~> 4.0.0) rmagick @@ -72,6 +73,7 @@ GEM railties (>= 3.0.0) ffi (1.9.0) formatador (0.2.4) + geocoder (1.1.8) guard (1.8.3) formatador (>= 0.2.4) listen (~> 1.3) @@ -189,6 +191,7 @@ DEPENDENCIES coveralls factory_girl_rails formbuilder! + geocoder guard-rspec launchy rspec-rails diff --git a/app/models/formbuilder/response_field_address.rb b/app/models/formbuilder/response_field_address.rb index bc1f092..2734b26 100644 --- a/app/models/formbuilder/response_field_address.rb +++ b/app/models/formbuilder/response_field_address.rb @@ -55,12 +55,11 @@ def render_entry(value, opts = {}) def audit_response(value, all_responses) begin - # @todo add Geocoder - # coords = Geocoder.coordinates("#{value['street']} #{value['city']} " + - # "#{value['state']} #{value['zipcode']} #{value['country']}") + coords = Geocoder.coordinates("#{value['street']} #{value['city']} " + + "#{value['state']} #{value['zipcode']} #{value['country']}") - all_responses["#{self.id}_x"] = 'temp'#coords[0] - all_responses["#{self.id}_y"] = 'temp'#coords[1] + all_responses["#{self.id}_x"] = coords[0] + all_responses["#{self.id}_y"] = coords[1] rescue all_responses["#{self.id}_x"] = nil all_responses["#{self.id}_y"] = nil diff --git a/formbuilder-rb.sublimeproject b/formbuilder-rb.sublimeproject new file mode 100644 index 0000000..b7e8b54 --- /dev/null +++ b/formbuilder-rb.sublimeproject @@ -0,0 +1,20 @@ +{ + "folders": + [ + { + "path": ".", + "folder_exclude_patterns": ["coverage", "log", "tmp"], + "file_exclude_patterns": ["*.sublime-workspace", "*.sql"] + } + ], + + "settings": + { + // indentation + "tab_size": 2, + "translate_tabs_to_spaces": true, + "trim_trailing_white_space_on_save": true, + // ensure line endings is linux style (even when on Windows) + "default_line_ending": "LF" + } +} diff --git a/formbuilder.gemspec b/formbuilder.gemspec index c3ad1f1..f46cd14 100644 --- a/formbuilder.gemspec +++ b/formbuilder.gemspec @@ -19,6 +19,7 @@ Gem::Specification.new do |s| s.add_dependency "rails", "~> 4.0.0" s.add_dependency 'carrierwave' + s.add_dependency 'geocoder' s.add_dependency 'pg' s.add_dependency 'rmagick' diff --git a/spec/dummy/config/environments/test.rb b/spec/dummy/config/environments/test.rb index afbc0ae..448e332 100644 --- a/spec/dummy/config/environments/test.rb +++ b/spec/dummy/config/environments/test.rb @@ -33,4 +33,20 @@ # Print deprecation notices to the stderr. config.active_support.deprecation = :stderr + + Geocoder.configure(:lookup => :test) + + Geocoder::Lookup::Test.set_default_stub( + [ + { + 'latitude' => 40.7143528, + 'longitude' => -74.0059731, + 'address' => 'New York, NY, USA', + 'state' => 'New York', + 'state_code' => 'NY', + 'country' => 'United States', + 'country_code' => 'US' + } + ] + ) end diff --git a/spec/lib/formbuilder/entry_spec.rb b/spec/lib/formbuilder/entry_spec.rb index dcfd534..75a3ca4 100644 --- a/spec/lib/formbuilder/entry_spec.rb +++ b/spec/lib/formbuilder/entry_spec.rb @@ -151,7 +151,7 @@ def file_value entry.save(validate: false) entry.responses["#{first_response_field.id}_x"].should be_nil entry.submit!(true) - entry.responses["#{first_response_field.id}_x"].should == 'temp' # @todo geocoder + entry.responses["#{first_response_field.id}_x"].should == Geocoder::Lookup::Test.read_stub(nil)[0]['latitude'] end end