Skip to content

Commit

Permalink
Merge pull request #29 from frodsan/refactor/configure
Browse files Browse the repository at this point in the history
Change #configure to only yield config.
  • Loading branch information
jgorset committed May 12, 2016
2 parents bcd6f33 + 29f7517 commit 7233093
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 42 deletions.
14 changes: 5 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -168,25 +168,21 @@ token of your choosing.
Use the generated access token and your verify token to configure your bot:

##### ... pass a block, or

```ruby
Facebook::Messenger.configure do |config|
config.access_token = 'EAAG6WgW...'
config.app_secret = '__app_secret_here__'
config.verify_token = 'my_voice_is_my_password_verify_me'
end
```

##### ... set directly
```ruby
Facebook::Messenger.configure.access_token = 'EAAG6WgW...'
Facebook::Messenger.configure.verify_token = 'my_voice_is_my_password_verify_me'
```

##### ... then read directly
```ruby
Facebook::Messenger.config.access_token
# => EAAG6WgW...
Facebook::Messenger.config.verify_token
# => my_voice_is_my_password_verify_me
Facebook::Messenger.config.access_token = 'EAAG6WgW...'
Facebook::Messenger.config.app_secret = '__app_secret_here__'
Facebook::Messenger.config.verify_token = 'my_voice_is_my_password_verify_me'
```

### Subscribe your Application to a Page
Expand Down
14 changes: 7 additions & 7 deletions lib/facebook/messenger.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,16 @@
module Facebook
# All the code for this gem resides in this module.
module Messenger
def self.configure(&block)
if block_given?
block.call(Configuration)
else
Configuration
end
def self.configure
yield config
end

def self.config
Configuration
@config ||= Configuration.new
end

def self.config=(config)
@config = config
end

configure do |config|
Expand Down
10 changes: 4 additions & 6 deletions lib/facebook/messenger/configuration.rb
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
module Facebook
module Messenger
# This module holds the configuration.
module Configuration
class << self
attr_accessor :access_token
attr_accessor :app_secret
attr_accessor :verify_token
end
class Configuration
attr_accessor :access_token
attr_accessor :app_secret
attr_accessor :verify_token
end
end
end
29 changes: 9 additions & 20 deletions spec/facebook/messenger_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,19 @@
describe Facebook::Messenger do
describe '#configure' do
before do
subject.configure.access_token = 'token'
subject.configure.verify_token = 'password'
Facebook::Messenger.config = Facebook::Messenger::Configuration.new
end

context 'when a block is given' do
it 'yields the provided access_token and verify_token' do
allow(subject).to receive(:configure).and_yield('token', 'password')

access_token = verify_token = nil
subject.configure do |token, password|
access_token = token
verify_token = password
end

expect(access_token).to eq('token')
expect(verify_token).to eq('password')
it 'sets correct configuration' do
Facebook::Messenger.configure do |config|
config.access_token = 'access_token'
config.app_secret = 'app_secret'
config.verify_token = 'verify_token'
end
end

context 'when called directly' do
it 'sets correct configuration' do
expect(subject::Configuration.access_token).to eql('token')
expect(subject::Configuration.verify_token).to eq('password')
end
expect(Facebook::Messenger.config.access_token).to eql('access_token')
expect(Facebook::Messenger.config.app_secret).to eql('app_secret')
expect(Facebook::Messenger.config.verify_token).to eq('verify_token')
end
end
end

0 comments on commit 7233093

Please sign in to comment.