4info 1.2.1 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{4info}
8
- s.version = "1.2.1"
8
+ s.version = "1.2.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jack Danger Canty"]
@@ -28,13 +28,22 @@ You can also specify which attributes you'd like to use instead of the defaults
28
28
  # Defaults to the name on the left (minus the '_column' at the end)
29
29
  end
30
30
 
31
+ Turning the thing on
32
+ ---
33
+
34
+ Because it can be expensive to send TXTs accidentally it's required that you manually configure FourInfo in your app. Put this line in config/initializers/sms.rb or config/environment.rb or anything that loads when the app starts:
35
+
36
+ FourInfo.mode = :live
37
+
38
+ Skipping this step (or adding any other value) will prevent TXTs from actually being sent.
39
+
31
40
  Phone number formatting
32
41
  ---
33
42
 
34
43
  Whatever is stored in the sms_phone_number_column will be subject to normalized formatting:
35
44
 
36
- user = User.create :sms_phone_number => '(206) 555-1234'
37
- user.sms_phone_number # => 2065551234
45
+ user = User.create :sms_phone_number => '(206) 555-1234'
46
+ user.sms_phone_number # => 2065551234
38
47
 
39
48
  If you want to preserve the format of the number exactly as the user entered it you'll want
40
49
  to save it in a different attribute.
@@ -47,6 +56,7 @@ You can manage the user's SMS state like so:
47
56
 
48
57
  @user = User.create(:sms_phone_number => '5552223333')
49
58
  @user.send_sms_confirmation!
59
+ @user.sms_confirmed? # => false
50
60
 
51
61
  then ask the user for the confirmation code off their phone and pass it in to sms_confirm_with:
52
62
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.2.1
1
+ 1.2.2
@@ -99,7 +99,7 @@ module FourInfo
99
99
  response = FourInfo::Request.new.unblock(four_info_sms_phone_number)
100
100
  if response.success?
101
101
  self.four_info_sms_blocked = 'false'
102
- save!
102
+ save
103
103
  else
104
104
  false
105
105
  end
@@ -113,6 +113,8 @@ module FourInfo
113
113
  # save the phone number into the 'confirmed phone number' attribute
114
114
  self.four_info_sms_confirmed_phone_number = four_info_sms_phone_number
115
115
  save
116
+ else
117
+ false
116
118
  end
117
119
  end
118
120
 
@@ -3,12 +3,20 @@ module FourInfo
3
3
 
4
4
  class << self
5
5
  def mode
6
- @@mode ||= :live
6
+ @@mode ||= :test
7
7
  end
8
8
  def mode=(new_mode)
9
9
  @@mode = new_mode
10
10
  end
11
11
 
12
+ def log(msg)
13
+ if defined?(Rails)
14
+ Rails.logger.info msg
15
+ else
16
+ STDOUT.puts msg
17
+ end
18
+ end
19
+
12
20
  def numerize(numberish)
13
21
  numberish.to_s.scan(/\d+/).join
14
22
  end
@@ -18,9 +18,9 @@ module FourInfo
18
18
  attr_accessor :message
19
19
 
20
20
  def initialize
21
- config_file = :test == FourInfo.mode ?
22
- @@test_mode_config_file :
23
- @@likely_config_files.detect {|f| File.exist?(f) }
21
+ config_file = :live == FourInfo.mode.to_sym ?
22
+ @@likely_config_files.detect {|f| File.exist?(f) } :
23
+ @@test_mode_config_file
24
24
 
25
25
  raise "Missing config File! Please add sms.yml to ./config or the 4info directory" unless config_file
26
26
 
@@ -58,12 +58,16 @@ module FourInfo
58
58
  end
59
59
 
60
60
  def perform(body)
61
- start do |http|
62
- http.post(
63
- FourInfo::Gateway.path,
64
- body,
65
- {'Content-Type' => 'text/xml'}
66
- ).read_body
61
+ if :live == FourInfo.mode
62
+ start do |http|
63
+ http.post(
64
+ FourInfo::Gateway.path,
65
+ body,
66
+ {'Content-Type' => 'text/xml'}
67
+ ).read_body
68
+ end
69
+ else
70
+ FourInfo.log "Would have sent to 4info.net: #{body}"
67
71
  end
68
72
  end
69
73
 
@@ -102,6 +102,9 @@ class FourInfoContactableTest < ActiveSupport::TestCase
102
102
  end
103
103
  context "calling sms_confirm_with(right_code)" do
104
104
  setup { @user.sms_confirm_with(@user.four_info_sms_confirmation_code) }
105
+ should "work" do
106
+ assert @worked
107
+ end
105
108
  should "save the phone number into the confirmed attribute" do
106
109
  assert_equal @user.four_info_sms_confirmed_phone_number,
107
110
  @user.four_info_sms_phone_number
@@ -111,7 +114,10 @@ class FourInfoContactableTest < ActiveSupport::TestCase
111
114
  end
112
115
  end
113
116
  context "calling sms_confirm_with(wrong_code)" do
114
- setup { @user.sms_confirm_with('wrong_code') }
117
+ setup { @worked = @user.sms_confirm_with('wrong_code') }
118
+ should "not work" do
119
+ assert !@worked
120
+ end
115
121
  should "not save the phone number into the confirmed attribute" do
116
122
  assert_not_equal @user.four_info_sms_confirmed_phone_number,
117
123
  @user.four_info_sms_phone_number
@@ -30,11 +30,10 @@ class User < ActiveRecord::Base
30
30
  end
31
31
 
32
32
  # kill all network access
33
- # module FourInfo
34
- # class Request
35
- # def start
36
- # Response.new(:success => true,
37
- # :confirmation_code => 'FAKE')
38
- # end
39
- # end
40
- # end
33
+ module FourInfo
34
+ class Request
35
+ def start
36
+ raise "You forgot to stub out your net requests!"
37
+ end
38
+ end
39
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: 4info
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jack Danger Canty