messagebus_ruby_api 1.0.11 → 3.0.6
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.
- data/Gemfile +3 -1
- data/README.rdoc +9 -0
- data/lib/messagebus_ruby_api/messagebus.rb +84 -9
- data/lib/messagebus_ruby_api/version.rb +11 -1
- data/spec/messagebus_ruby_api/messagebus_spec.rb +81 -0
- data/spec/spec_helper.rb +27 -1
- metadata +15 -4
    
        data/Gemfile
    CHANGED
    
    | @@ -2,11 +2,13 @@ source "http://rubygems.org" | |
| 2 2 |  | 
| 3 3 | 
             
            gem 'activesupport'
         | 
| 4 4 |  | 
| 5 | 
            +
            gem 'multipart-post'
         | 
| 6 | 
            +
             | 
| 5 7 | 
             
            group :test, :development do
         | 
| 6 8 | 
             
              gem 'rspec', '2.5.0'
         | 
| 7 9 | 
             
              gem 'rr', '1.0.2'
         | 
| 8 10 | 
             
              gem 'fakeweb'
         | 
| 9 | 
            -
              gem ' | 
| 11 | 
            +
              gem 'actionmailer'
         | 
| 10 12 | 
             
            end
         | 
| 11 13 |  | 
| 12 14 | 
             
            # Specify your gem's dependencies in messagebus.gemspec
         | 
    
        data/README.rdoc
    CHANGED
    
    | @@ -44,6 +44,15 @@ | |
| 44 44 | 
             
                - list recent email statistics
         | 
| 45 45 | 
             
                - list recent delivery errors
         | 
| 46 46 |  | 
| 47 | 
            +
            == ActionMailer
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                If you are using ActionMailer (ex. in Rails,) you can leverage the Messagebus API via the following to send emails.  You can add the following lines to your environmental configuration such as ./rails_project/config/environments/production.rb
         | 
| 50 | 
            +
             | 
| 51 | 
            +
                  ActionMailer::Base.add_delivery_method :messagebus, MessagebusApi::Messagebus, "<APIKEY>"
         | 
| 52 | 
            +
                  config.action_mailer.delivery_method = :messagebus
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                Be sure to replace <APIKEY> with your APIKEY.
         | 
| 55 | 
            +
             | 
| 47 56 | 
             
            == SSL Certificates
         | 
| 48 57 |  | 
| 49 58 | 
             
                If you encounter SSL certificate problems, use the cacert_info() method to specify a
         | 
| @@ -23,8 +23,7 @@ module MessagebusApi | |
| 23 23 |  | 
| 24 24 | 
             
                def initialize(api_key)
         | 
| 25 25 | 
             
                  @api_key = api_key
         | 
| 26 | 
            -
                  init_http_connection
         | 
| 27 | 
            -
                  @user_agent = "MessagebusAPI:#{MessagebusApi::VERSION}-Ruby:#{RUBY_VERSION}"
         | 
| 26 | 
            +
                  init_http_connection(domain)
         | 
| 28 27 |  | 
| 29 28 | 
             
                  @msg_buffer_size = 20
         | 
| 30 29 | 
             
                  @msg_buffer = []
         | 
| @@ -84,7 +83,7 @@ module MessagebusApi | |
| 84 83 |  | 
| 85 84 | 
             
                  json = json_message_from_list(@msg_buffer)
         | 
| 86 85 | 
             
                  if (@last_init_time < Time.now.utc - 60)
         | 
| 87 | 
            -
                    init_http_connection
         | 
| 86 | 
            +
                    init_http_connection(domain)
         | 
| 88 87 | 
             
                  end
         | 
| 89 88 | 
             
                  @results=make_api_post_call(endpoint, json)
         | 
| 90 89 | 
             
                  @msg_buffer.clear
         | 
| @@ -106,6 +105,16 @@ module MessagebusApi | |
| 106 105 | 
             
                  check_response(@results)
         | 
| 107 106 | 
             
                end
         | 
| 108 107 |  | 
| 108 | 
            +
                def overwrite_mailing_list(file_name, file_path, mailing_list_key)
         | 
| 109 | 
            +
                  path = @rest_endpoints[:mailing_list_overwrite].gsub("%KEY%", mailing_list_key)
         | 
| 110 | 
            +
                  File.open(file_path) do |f|
         | 
| 111 | 
            +
                    headers = common_http_headers.merge(rest_upload_headers)
         | 
| 112 | 
            +
                    req = Net::HTTP::Post::Multipart.new path, {:jsonData => "{\"name\":\"#{file_name}\"}", "fileData" => UploadIO.new(f, "text/plain", file_path)}, headers
         | 
| 113 | 
            +
                    @results = @http.request(req)
         | 
| 114 | 
            +
                  end
         | 
| 115 | 
            +
                  check_response(@results)
         | 
| 116 | 
            +
                end
         | 
| 117 | 
            +
             | 
| 109 118 | 
             
                def mailing_list_delete(mailing_list_key)
         | 
| 110 119 | 
             
                  path = @rest_endpoints[:mailing_list_delete].gsub("%KEY%", mailing_list_key)
         | 
| 111 120 | 
             
                  @results = make_api_delete_call(path)
         | 
| @@ -181,9 +190,55 @@ module MessagebusApi | |
| 181 190 | 
             
                  time.strftime("%Y-%m-%dT%H:%M:%SZ")
         | 
| 182 191 | 
             
                end
         | 
| 183 192 |  | 
| 193 | 
            +
                #used by ActionMailer
         | 
| 194 | 
            +
                def deliver!(message)
         | 
| 195 | 
            +
                  #minimum required headers
         | 
| 196 | 
            +
             | 
| 197 | 
            +
                  if message.to.first.nil? ||message.subject.nil? || message.from.first.nil? then
         | 
| 198 | 
            +
                    raise "Messagebus API error=Missing required header: :toEmail => #{message.to.first} :subject => #{message.subject} :fromEmail => #{message.from.first}"
         | 
| 199 | 
            +
                  end
         | 
| 200 | 
            +
             | 
| 201 | 
            +
                  message_from_email = from_email_with_name(message.header[:from].to_s)
         | 
| 202 | 
            +
             | 
| 203 | 
            +
                  from_name = ""
         | 
| 204 | 
            +
                  from_email = message.from.first
         | 
| 205 | 
            +
                  if !message_from_email.nil?
         | 
| 206 | 
            +
                    from_name = message_from_email[1]
         | 
| 207 | 
            +
                  end
         | 
| 208 | 
            +
             | 
| 209 | 
            +
                  if !well_formed_address?(from_email)
         | 
| 210 | 
            +
                    raise "Messagebus API error=From Address is invalid :toEmail => #{message.to.first} :subject => #{message.subject} :fromEmail => #{message.from.first}"
         | 
| 211 | 
            +
                  end
         | 
| 212 | 
            +
             | 
| 213 | 
            +
                  msg = {
         | 
| 214 | 
            +
                    :toEmail => message.to.first,
         | 
| 215 | 
            +
                    :subject => message.subject,
         | 
| 216 | 
            +
                    :fromEmail => from_email,
         | 
| 217 | 
            +
                    :fromName => from_name
         | 
| 218 | 
            +
                  }
         | 
| 219 | 
            +
             | 
| 220 | 
            +
                  message.header.fields.delete_if { |k|
         | 
| 221 | 
            +
                    ( k.name.casecmp('bcc') == 0 ||
         | 
| 222 | 
            +
                      k.name.casecmp('cc') == 0 )
         | 
| 223 | 
            +
                  }
         | 
| 224 | 
            +
             | 
| 225 | 
            +
                  msg[:plaintextBody] = ( message.body ) ? "#{message.body}" : "No plaintext version was supplied."
         | 
| 226 | 
            +
             | 
| 227 | 
            +
                  if message.multipart?
         | 
| 228 | 
            +
                    msg[:plaintextBody] = (message.text_part) ? message.text_part.body.to_s : "No plaintext version was supplied."
         | 
| 229 | 
            +
                    msg[:htmlBody] = message.html_part.body.to_s if message.html_part
         | 
| 230 | 
            +
                  end
         | 
| 231 | 
            +
             | 
| 232 | 
            +
                  begin
         | 
| 233 | 
            +
                    add_message(msg, true)
         | 
| 234 | 
            +
                  rescue => message_bus_api_error
         | 
| 235 | 
            +
                    raise "Messagebus API error=#{message_bus_api_error}, message=#{msg.inspect}"
         | 
| 236 | 
            +
                  end
         | 
| 237 | 
            +
                end
         | 
| 238 | 
            +
             | 
| 184 239 | 
             
                private
         | 
| 185 240 |  | 
| 186 | 
            -
                def init_http_connection(target_server | 
| 241 | 
            +
                def init_http_connection(target_server)
         | 
| 187 242 | 
             
                  if (@http and @http.started?)
         | 
| 188 243 | 
             
                    @http.finish
         | 
| 189 244 | 
             
                  end
         | 
| @@ -194,8 +249,12 @@ module MessagebusApi | |
| 194 249 | 
             
                  @http
         | 
| 195 250 | 
             
                end
         | 
| 196 251 |  | 
| 252 | 
            +
                def domain
         | 
| 253 | 
            +
                  DEFAULT_API_ENDPOINT_STRING
         | 
| 254 | 
            +
                end
         | 
| 255 | 
            +
             | 
| 197 256 | 
             
                def common_http_headers
         | 
| 198 | 
            -
                  {'User-Agent' =>  | 
| 257 | 
            +
                  {'User-Agent' => MessagebusApi::Info.get_user_agent, 'X-MessageBus-Key' => @api_key}
         | 
| 199 258 | 
             
                end
         | 
| 200 259 |  | 
| 201 260 | 
             
                def rest_post_headers
         | 
| @@ -242,6 +301,14 @@ module MessagebusApi | |
| 242 301 | 
             
                  format_iso_time(Time.now.utc - (days_ago*86400))
         | 
| 243 302 | 
             
                end
         | 
| 244 303 |  | 
| 304 | 
            +
                def from_email_with_name(address)
         | 
| 305 | 
            +
                  address.match(/^(.*)\s<(.*?)>/)
         | 
| 306 | 
            +
                end
         | 
| 307 | 
            +
             | 
| 308 | 
            +
                def well_formed_address?(address)
         | 
| 309 | 
            +
                  !address.match(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i).nil?
         | 
| 310 | 
            +
                end
         | 
| 311 | 
            +
             | 
| 245 312 | 
             
                def json_message_from_list(messages)
         | 
| 246 313 | 
             
                  {:messages => messages}.to_json
         | 
| 247 314 | 
             
                end
         | 
| @@ -279,9 +346,9 @@ module MessagebusApi | |
| 279 346 | 
             
                        rescue JSON::ParserError
         | 
| 280 347 | 
             
                          nil
         | 
| 281 348 | 
             
                        end
         | 
| 282 | 
            -
                        raise MessagebusApi::RemoteServerError.new("#{response.code.to_s}:#{rest_http_error_message(response | 
| 349 | 
            +
                        raise MessagebusApi::RemoteServerError.new("#{response.code.to_s}:#{rest_http_error_message(response)}")
         | 
| 283 350 | 
             
                      else
         | 
| 284 | 
            -
                        raise MessagebusApi::RemoteServerError.new("#{response.code.to_s}:#{rest_http_error_message(response | 
| 351 | 
            +
                        raise MessagebusApi::RemoteServerError.new("#{response.code.to_s}:#{rest_http_error_message(response)}")
         | 
| 285 352 | 
             
                      end
         | 
| 286 353 | 
             
                    else
         | 
| 287 354 | 
             
                      raise "Unexpected HTTP Response: #{response.class.name}"
         | 
| @@ -293,9 +360,16 @@ module MessagebusApi | |
| 293 360 | 
             
                  @rest_http_errors.key?(status_code)
         | 
| 294 361 | 
             
                end
         | 
| 295 362 |  | 
| 296 | 
            -
                def rest_http_error_message( | 
| 363 | 
            +
                def rest_http_error_message(response)
         | 
| 297 364 | 
             
                  message = "Unknown Error Code"
         | 
| 298 | 
            -
                  message = @rest_http_errors[ | 
| 365 | 
            +
                  message = @rest_http_errors[response.code.to_s] if rest_http_error?(response.code.to_s)
         | 
| 366 | 
            +
                  if (response.body.size > 0)
         | 
| 367 | 
            +
                    values = JSON.parse(response.body)
         | 
| 368 | 
            +
             | 
| 369 | 
            +
                    if (values['statusMessage'])
         | 
| 370 | 
            +
                      message += " - " + values['statusMessage']
         | 
| 371 | 
            +
                    end
         | 
| 372 | 
            +
                  end
         | 
| 299 373 | 
             
                  message
         | 
| 300 374 | 
             
                end
         | 
| 301 375 |  | 
| @@ -309,6 +383,7 @@ module MessagebusApi | |
| 309 383 | 
             
                    :feedbackloops => "/api/v3/feedbackloops",
         | 
| 310 384 | 
             
                    :mailing_lists => "/api/v3/mailing_lists",
         | 
| 311 385 | 
             
                    :mailing_lists_upload => "/api/v3/mailing_lists/upload",
         | 
| 386 | 
            +
                    :mailing_list_overwrite => "/api/v3/mailing_list/%KEY%/upload",
         | 
| 312 387 | 
             
                    :mailing_list_delete => "/api/v3/mailing_list/%KEY%",
         | 
| 313 388 | 
             
                    :mailing_lists_entries => "/api/v3/mailing_list/%KEY%/entries",
         | 
| 314 389 | 
             
                    :mailing_lists_entry_email => "/api/v3/mailing_list/%KEY%/entry/%EMAIL%",
         | 
| @@ -13,5 +13,15 @@ | |
| 13 13 | 
             
            # under the License.
         | 
| 14 14 |  | 
| 15 15 | 
             
            module MessagebusApi
         | 
| 16 | 
            -
              VERSION = " | 
| 16 | 
            +
              VERSION = "3.0.6"
         | 
| 17 | 
            +
             | 
| 18 | 
            +
              class Info
         | 
| 19 | 
            +
                @@ClientVersion = MessagebusApi::VERSION
         | 
| 20 | 
            +
                @@RubyVersion = RUBY_VERSION
         | 
| 21 | 
            +
                @@UserAgent = "MessagebusAPI:#{@@ClientVersion}-Ruby:#{@@RubyVersion}";
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                def self.get_user_agent
         | 
| 24 | 
            +
                  return @@UserAgent
         | 
| 25 | 
            +
                end
         | 
| 26 | 
            +
              end
         | 
| 17 27 | 
             
            end
         | 
| @@ -324,6 +324,32 @@ describe MessagebusApi::Messagebus do | |
| 324 324 | 
             
                  end.should_not raise_error
         | 
| 325 325 | 
             
                end
         | 
| 326 326 |  | 
| 327 | 
            +
                it "overwrites a mailing list" do
         | 
| 328 | 
            +
                  name = 'mylist'
         | 
| 329 | 
            +
                  filename = File.dirname(__FILE__) + '/../../examples/example_maillist.txt'
         | 
| 330 | 
            +
                  overwritefilename = File.dirname(__FILE__) + '/../../examples/overwritelist.txt'
         | 
| 331 | 
            +
             | 
| 332 | 
            +
                  begin
         | 
| 333 | 
            +
                    FileUtils.cp filename, overwritefilename
         | 
| 334 | 
            +
                  rescue Exception=>e
         | 
| 335 | 
            +
                    puts(e)
         | 
| 336 | 
            +
                  end
         | 
| 337 | 
            +
             | 
| 338 | 
            +
                  open(overwritefilename, 'a') do |f|
         | 
| 339 | 
            +
                    f.puts "test@nowhere.example.com,test,tester"
         | 
| 340 | 
            +
                  end
         | 
| 341 | 
            +
             | 
| 342 | 
            +
                  expected_request="https://api.messagebus.com/api/v3/mailing_list/392d08c0694811e1a7dd4040f34d0a26/upload"
         | 
| 343 | 
            +
             | 
| 344 | 
            +
                  FakeWeb.register_uri(:post, expected_request, :body => json_mailing_list_overwrite)
         | 
| 345 | 
            +
             | 
| 346 | 
            +
                  expect do
         | 
| 347 | 
            +
                    response = client.overwrite_mailing_list(name,overwritefilename, '392d08c0694811e1a7dd4040f34d0a26')
         | 
| 348 | 
            +
                    response[:mailingListKey].should == '392d08c0694811e1a7dd4040f34d0a26'
         | 
| 349 | 
            +
                    response
         | 
| 350 | 
            +
                  end.should_not raise_error
         | 
| 351 | 
            +
                end
         | 
| 352 | 
            +
             | 
| 327 353 | 
             
                it "deletes a mailing list" do
         | 
| 328 354 | 
             
                  mailing_list_key = "7215ee9c7d9dc229d2921a40e899ec5f"
         | 
| 329 355 | 
             
                  expected_request="https://api.messagebus.com/api/v3/mailing_list/7215ee9c7d9dc229d2921a40e899ec5f"
         | 
| @@ -358,6 +384,30 @@ describe MessagebusApi::Messagebus do | |
| 358 384 | 
             
                  end.should_not raise_error
         | 
| 359 385 | 
             
                end
         | 
| 360 386 |  | 
| 387 | 
            +
                it "raises an error with an error message when the mailingListKey is not found" do
         | 
| 388 | 
            +
             | 
| 389 | 
            +
                  campaign_params = {:campaignName => 'MessageBus Test Campaign',
         | 
| 390 | 
            +
                                     :fromName => 'Message Bus',
         | 
| 391 | 
            +
                                     :fromEmail => 'do.not.reply@messagebus.com',
         | 
| 392 | 
            +
                                     :subject => 'This is a test campaign',
         | 
| 393 | 
            +
                                     :mailingListKey => '7215ee9c7d9dc229d2921a40e899ec5f',
         | 
| 394 | 
            +
                                     :htmlBody => "<html><body>This message is only a test sent by the Ruby Message Bus client library.</body></html>",
         | 
| 395 | 
            +
                                     :plaintextBody => 'This message is only a test sent by the Ruby Message Bus client library.',
         | 
| 396 | 
            +
                                     :tags => ['RUBY', 'Unit Test Ruby'],
         | 
| 397 | 
            +
                                     :customHeaders => {"sender"=>"apitest1@messagebus.com"}}
         | 
| 398 | 
            +
             | 
| 399 | 
            +
                  expected_request="https://api.messagebus.com/api/v3/campaigns/send"
         | 
| 400 | 
            +
             | 
| 401 | 
            +
                  FakeWeb.register_uri(:post, expected_request, :body => json_response_404)
         | 
| 402 | 
            +
             | 
| 403 | 
            +
                  expect do
         | 
| 404 | 
            +
                    response = client.campaigns_send(campaign_params)
         | 
| 405 | 
            +
                    response[:statusCode].should == 404
         | 
| 406 | 
            +
                    response[:statusMessage].should == "Invalid URL - Mailing list key not found."
         | 
| 407 | 
            +
                  end.should_not raise_error
         | 
| 408 | 
            +
             | 
| 409 | 
            +
                end
         | 
| 410 | 
            +
             | 
| 361 411 | 
             
                it "retrieves completed status with campaign key" do
         | 
| 362 412 | 
             
                  campaign_key="7215ee9c7d9dc229d2921a40e899ec5f"
         | 
| 363 413 |  | 
| @@ -401,6 +451,37 @@ describe MessagebusApi::Messagebus do | |
| 401 451 | 
             
                end
         | 
| 402 452 | 
             
              end
         | 
| 403 453 |  | 
| 454 | 
            +
              describe "#version" do
         | 
| 455 | 
            +
                it "Confirm API version string" do
         | 
| 456 | 
            +
                  MessagebusApi::Info.get_user_agent.should =~ /MessagebusAPI:3\.\d\.\d-Ruby:\d+.\d+.\d+/
         | 
| 457 | 
            +
                end
         | 
| 458 | 
            +
              end
         | 
| 459 | 
            +
             | 
| 460 | 
            +
              describe "#deliver!" do
         | 
| 461 | 
            +
                it "works with action mailer" do
         | 
| 462 | 
            +
                  to_email = "hello@example.com"
         | 
| 463 | 
            +
                  message = MessageBusActionMailerTest.new_message(to_email)
         | 
| 464 | 
            +
             | 
| 465 | 
            +
                  FakeWeb.register_uri(:post, "https://api.messagebus.com/api/v3/emails/send", :body => json_valid_send)
         | 
| 466 | 
            +
                  client.deliver!(message)
         | 
| 467 | 
            +
             | 
| 468 | 
            +
                  message_body = JSON.parse(FakeWeb.last_request.body)
         | 
| 469 | 
            +
                  message_body["messages"][0]["fromName"].should == ""
         | 
| 470 | 
            +
                  message_body["messages"][0]["fromEmail"].should == to_email
         | 
| 471 | 
            +
                end
         | 
| 472 | 
            +
             | 
| 473 | 
            +
                it "works with from with nice name in address" do
         | 
| 474 | 
            +
                  to_email = "Joe Mail <hello_joe@example.com>"
         | 
| 475 | 
            +
                  message = MessageBusActionMailerTest.new_message(to_email)
         | 
| 476 | 
            +
             | 
| 477 | 
            +
                  FakeWeb.register_uri(:post, "https://api.messagebus.com/api/v3/emails/send", :body => json_valid_send)
         | 
| 478 | 
            +
                  client.deliver!(message)
         | 
| 479 | 
            +
             | 
| 480 | 
            +
                  message_body = JSON.parse(FakeWeb.last_request.body)
         | 
| 481 | 
            +
                  message_body["messages"][0]["fromName"].should == "Joe Mail"
         | 
| 482 | 
            +
                  message_body["messages"][0]["fromEmail"].should == "hello_joe@example.com"
         | 
| 483 | 
            +
                end
         | 
| 484 | 
            +
              end
         | 
| 404 485 |  | 
| 405 486 | 
             
            end
         | 
| 406 487 |  | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | @@ -18,7 +18,7 @@ require 'rubygems' | |
| 18 18 | 
             
            require 'fakeweb'
         | 
| 19 19 | 
             
            require 'rr'
         | 
| 20 20 | 
             
            require 'json'
         | 
| 21 | 
            -
             | 
| 21 | 
            +
            require 'action_mailer'
         | 
| 22 22 | 
             
            require "#{dir}/spec_core_extensions"
         | 
| 23 23 | 
             
            require "#{dir}/../lib/messagebus_ruby_api"
         | 
| 24 24 |  | 
| @@ -58,6 +58,13 @@ JAVASCRIPT | |
| 58 58 | 
             
              json
         | 
| 59 59 | 
             
            end
         | 
| 60 60 |  | 
| 61 | 
            +
            def json_mailing_list_overwrite
         | 
| 62 | 
            +
              json = <<JAVASCRIPT
         | 
| 63 | 
            +
            {"invalidCount":0,"invalidLines":[0],"mailingListKey":"392d08c0694811e1a7dd4040f34d0a26","statusCode":201,"statusMessage":"","statusTime":"2012-03-08T17:57:51.596Z","validCount":3}
         | 
| 64 | 
            +
            JAVASCRIPT
         | 
| 65 | 
            +
              json
         | 
| 66 | 
            +
            end
         | 
| 67 | 
            +
             | 
| 61 68 | 
             
            def json_mailing_list_create
         | 
| 62 69 | 
             
              json = <<JAVASCRIPT
         | 
| 63 70 | 
             
            {"statusCode":201,"statusMessage":"","statusTime":"2011-10-10T21:32:14.195Z","key":"51efcf00f38711e0a93640405cc99fee"}
         | 
| @@ -113,3 +120,22 @@ def json_response_200 | |
| 113 120 | 
             
            JAVASCRIPT
         | 
| 114 121 | 
             
              json
         | 
| 115 122 | 
             
            end
         | 
| 123 | 
            +
             | 
| 124 | 
            +
            def json_response_404
         | 
| 125 | 
            +
              json = <<JAVASCRIPT
         | 
| 126 | 
            +
            {"statusCode":404,"statusMessage":"Invalid URL - Mailing list key not found.","statusTime":"2011-10-10T21:32:14.195Z"}
         | 
| 127 | 
            +
            JAVASCRIPT
         | 
| 128 | 
            +
              json
         | 
| 129 | 
            +
            end
         | 
| 130 | 
            +
             | 
| 131 | 
            +
            ActionMailer::Base.add_delivery_method :messagebus, MessagebusApi::Messagebus, @api_key
         | 
| 132 | 
            +
            class MessageBusActionMailerTest < ActionMailer::Base
         | 
| 133 | 
            +
              default :to => "someone@example.com",
         | 
| 134 | 
            +
                      :from => "no-reply@messagebus.com",
         | 
| 135 | 
            +
                      :body => "This is a test",
         | 
| 136 | 
            +
                      :subject => "Unit Test"
         | 
| 137 | 
            +
             | 
| 138 | 
            +
              def new_message(from_email)
         | 
| 139 | 
            +
                mail(:from => from_email)
         | 
| 140 | 
            +
              end
         | 
| 141 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: messagebus_ruby_api
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version:  | 
| 4 | 
            +
              version: 3.0.6
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,8 +9,19 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2012- | 
| 13 | 
            -
            dependencies: | 
| 12 | 
            +
            date: 2012-08-23 00:00:00.000000000Z
         | 
| 13 | 
            +
            dependencies:
         | 
| 14 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 15 | 
            +
              name: multipart-post
         | 
| 16 | 
            +
              requirement: &70268165864740 !ruby/object:Gem::Requirement
         | 
| 17 | 
            +
                none: false
         | 
| 18 | 
            +
                requirements:
         | 
| 19 | 
            +
                - - ! '>='
         | 
| 20 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 21 | 
            +
                    version: '0'
         | 
| 22 | 
            +
              type: :runtime
         | 
| 23 | 
            +
              prerelease: false
         | 
| 24 | 
            +
              version_requirements: *70268165864740
         | 
| 14 25 | 
             
            description: ! 'Allows you to use the Message Bus API '
         | 
| 15 26 | 
             
            email:
         | 
| 16 27 | 
             
            - messagebus@googlegroups.com
         | 
| @@ -51,7 +62,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 51 62 | 
             
                  version: '0'
         | 
| 52 63 | 
             
            requirements: []
         | 
| 53 64 | 
             
            rubyforge_project: messagebus_ruby_api
         | 
| 54 | 
            -
            rubygems_version: 1.8. | 
| 65 | 
            +
            rubygems_version: 1.8.10
         | 
| 55 66 | 
             
            signing_key: 
         | 
| 56 67 | 
             
            specification_version: 3
         | 
| 57 68 | 
             
            summary: Send email through the Message Bus service
         |