fastlane-plugin-sendgrid 0.1.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.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.md +52 -0
- data/lib/fastlane/plugin/sendgrid/actions/sendgrid_action.rb +131 -0
- data/lib/fastlane/plugin/sendgrid/helper/sendgrid_helper.rb +16 -0
- data/lib/fastlane/plugin/sendgrid/version.rb +5 -0
- data/lib/fastlane/plugin/sendgrid.rb +16 -0
- metadata +202 -0
    
        checksums.yaml
    ADDED
    
    | @@ -0,0 +1,7 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            SHA256:
         | 
| 3 | 
            +
              metadata.gz: db67ac5d035dd2e7438187720b5bab08d75f6013a6547a9fd94bc31f2fe4d0ee
         | 
| 4 | 
            +
              data.tar.gz: '02758e0be9063e87d4b065e32a817a43b174dfc02af5746a9efecad776bf7251'
         | 
| 5 | 
            +
            SHA512:
         | 
| 6 | 
            +
              metadata.gz: b0a18ade0c0c61b08e2cfbaf24a04ec1477ec91c427a5b74c756d444e149859da708ce665057497c66ede290f01a3aa79eb9cd520db41b6a6daf58e13206c880
         | 
| 7 | 
            +
              data.tar.gz: 5d3511a2545b18dad0b421ab6da3cb1c81fb7903e4d35b3209e023a5073b3aa377793349bf3882f094b79ed0388d3339ed83db3498ccb65cdf44e59637a6778a
         | 
    
        data/LICENSE
    ADDED
    
    | @@ -0,0 +1,21 @@ | |
| 1 | 
            +
            The MIT License (MIT)
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            Copyright (c) 2023 OTVENTURES\Tarek.Mohammed <tarek.mohamed@linkdev.com>
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            Permission is hereby granted, free of charge, to any person obtaining a copy
         | 
| 6 | 
            +
            of this software and associated documentation files (the "Software"), to deal
         | 
| 7 | 
            +
            in the Software without restriction, including without limitation the rights
         | 
| 8 | 
            +
            to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
         | 
| 9 | 
            +
            copies of the Software, and to permit persons to whom the Software is
         | 
| 10 | 
            +
            furnished to do so, subject to the following conditions:
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            The above copyright notice and this permission notice shall be included in all
         | 
| 13 | 
            +
            copies or substantial portions of the Software.
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
         | 
| 16 | 
            +
            IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
         | 
| 17 | 
            +
            FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
         | 
| 18 | 
            +
            AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
         | 
| 19 | 
            +
            LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
         | 
| 20 | 
            +
            OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
         | 
| 21 | 
            +
            SOFTWARE.
         | 
    
        data/README.md
    ADDED
    
    | @@ -0,0 +1,52 @@ | |
| 1 | 
            +
            # sendgrid plugin
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            [](https://rubygems.org/gems/fastlane-plugin-sendgrid)
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            ## Getting Started
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            This project is a [_fastlane_](https://github.com/fastlane/fastlane) plugin. To get started with `fastlane-plugin-sendgrid`, add it to your project by running:
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            ```bash
         | 
| 10 | 
            +
            fastlane add_plugin sendgrid
         | 
| 11 | 
            +
            ```
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            ## About sendgrid
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            send email with sendgrid
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            **Note to author:** Add a more detailed description about this plugin here. If your plugin contains multiple actions, make sure to mention them here.
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            ## Example
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            Check out the [example `Fastfile`](fastlane/Fastfile) to see how to use this plugin. Try it by cloning the repo, running `fastlane install_plugins` and `bundle exec fastlane test`.
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            **Note to author:** Please set up a sample project to make it easy for users to explore what your plugin does. Provide everything that is necessary to try out the plugin in this project (including a sample Xcode/Android project if necessary)
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            ## Run tests for this plugin
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            To run both the tests, and code style validation, run
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            ```
         | 
| 30 | 
            +
            rake
         | 
| 31 | 
            +
            ```
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            To automatically fix many of the styling issues, use
         | 
| 34 | 
            +
            ```
         | 
| 35 | 
            +
            rubocop -a
         | 
| 36 | 
            +
            ```
         | 
| 37 | 
            +
             | 
| 38 | 
            +
            ## Issues and Feedback
         | 
| 39 | 
            +
             | 
| 40 | 
            +
            For any other issues and feedback about this plugin, please submit it to this repository.
         | 
| 41 | 
            +
             | 
| 42 | 
            +
            ## Troubleshooting
         | 
| 43 | 
            +
             | 
| 44 | 
            +
            If you have trouble using plugins, check out the [Plugins Troubleshooting](https://docs.fastlane.tools/plugins/plugins-troubleshooting/) guide.
         | 
| 45 | 
            +
             | 
| 46 | 
            +
            ## Using _fastlane_ Plugins
         | 
| 47 | 
            +
             | 
| 48 | 
            +
            For more information about how the `fastlane` plugin system works, check out the [Plugins documentation](https://docs.fastlane.tools/plugins/create-plugin/).
         | 
| 49 | 
            +
             | 
| 50 | 
            +
            ## About _fastlane_
         | 
| 51 | 
            +
             | 
| 52 | 
            +
            _fastlane_ is the easiest way to automate beta deployments and releases for your iOS and Android apps. To learn more, check out [fastlane.tools](https://fastlane.tools).
         | 
| @@ -0,0 +1,131 @@ | |
| 1 | 
            +
            require 'fastlane/action'
         | 
| 2 | 
            +
            require_relative '../helper/sendgrid_helper'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            module Fastlane
         | 
| 5 | 
            +
              module Actions
         | 
| 6 | 
            +
                class SendgridAction < Action
         | 
| 7 | 
            +
                  def self.run(params)
         | 
| 8 | 
            +
                    require 'sendgrid-ruby'
         | 
| 9 | 
            +
                    from = SendGrid::Email.new(email: params[:from], name: params[:username])
         | 
| 10 | 
            +
                    subject = params[:subject]
         | 
| 11 | 
            +
                    content = SendGrid::Content.new(type: 'text/html', value: params[:body])
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                    mail = SendGrid::Mail.new
         | 
| 14 | 
            +
                    personalization = SendGrid::Personalization.new
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                    params[:to].each do |item|
         | 
| 17 | 
            +
                      puts(item)
         | 
| 18 | 
            +
                      personalization.add_to(Email.new(email: item))
         | 
| 19 | 
            +
                    end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                    params[:cc].each do |item|
         | 
| 22 | 
            +
                      puts(item)
         | 
| 23 | 
            +
                      personalization.add_cc(Email.new(email: item))
         | 
| 24 | 
            +
                    end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                    personalization.add_header(Header.new(key: 'References', value: params[:references]))
         | 
| 27 | 
            +
                    personalization.add_header(Header.new(key: 'In-Reply-To', value: params[:inReplayTo]))
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                    mail.add_personalization(personalization)
         | 
| 30 | 
            +
                    mail.subject = subject
         | 
| 31 | 
            +
                    mail.from = from
         | 
| 32 | 
            +
                    mail.contents = content
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                    sg = SendGrid::API.new(api_key: params[:apiKey])
         | 
| 35 | 
            +
                    response = sg.client.mail._('send').post(request_body: mail.to_json)
         | 
| 36 | 
            +
                    puts(response.status_code)
         | 
| 37 | 
            +
                    puts(response.body)
         | 
| 38 | 
            +
                  end
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                  def self.description
         | 
| 41 | 
            +
                    "send email with sendgrid"
         | 
| 42 | 
            +
                  end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                  def self.authors
         | 
| 45 | 
            +
                    ["OTVENTURES\Tarek.Mohammed"]
         | 
| 46 | 
            +
                  end
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                  def self.return_value
         | 
| 49 | 
            +
                    # If your method provides a return value, you can describe here what it does
         | 
| 50 | 
            +
                  end
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                  def self.details
         | 
| 53 | 
            +
                    # Optional:
         | 
| 54 | 
            +
                    "send email with sendgrid"
         | 
| 55 | 
            +
                  end
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                  def self.available_options
         | 
| 58 | 
            +
                    [
         | 
| 59 | 
            +
                      FastlaneCore::ConfigItem.new(key: :apiKey,
         | 
| 60 | 
            +
                                                   env_name: "FL_SENDGRID_API_KEY",
         | 
| 61 | 
            +
                                                   description: "Sendgrid api key",
         | 
| 62 | 
            +
                                                   verify_block: proc do |value|
         | 
| 63 | 
            +
                                                     UI.user_error!("No api key") if value.to_s.length == 0
         | 
| 64 | 
            +
                                                   end),
         | 
| 65 | 
            +
                      FastlaneCore::ConfigItem.new(key: :username,
         | 
| 66 | 
            +
                                                   env_name: "FL_MAIL_USERNAME",
         | 
| 67 | 
            +
                                                   description: "Username for mail",
         | 
| 68 | 
            +
                                                   optional: true,
         | 
| 69 | 
            +
                                                   verify_block: proc do |value|
         | 
| 70 | 
            +
                                                     UI.user_error!("No username") if value.to_s.length == 0
         | 
| 71 | 
            +
                                                   end),
         | 
| 72 | 
            +
                      FastlaneCore::ConfigItem.new(key: :from,
         | 
| 73 | 
            +
                                                   env_name: "FL_MAIL_FROM",
         | 
| 74 | 
            +
                                                   description: "from for mail",
         | 
| 75 | 
            +
                                                   is_string: false,
         | 
| 76 | 
            +
                                                   verify_block: proc do |value|
         | 
| 77 | 
            +
                                                     UI.user_error!("No from") if value.to_s.length == 0
         | 
| 78 | 
            +
                                                   end),
         | 
| 79 | 
            +
                      FastlaneCore::ConfigItem.new(key: :to,
         | 
| 80 | 
            +
                                                   env_name: "FL_MAIL_TO",
         | 
| 81 | 
            +
                                                   description: "Mail to recipients",
         | 
| 82 | 
            +
                                                   sensitive: true,
         | 
| 83 | 
            +
                                                   is_string: false,
         | 
| 84 | 
            +
                                                   verify_block: proc do |value|
         | 
| 85 | 
            +
                                                     UI.user_error!("No recipients") if value.to_s.length == 0
         | 
| 86 | 
            +
                                                   end),
         | 
| 87 | 
            +
                      FastlaneCore::ConfigItem.new(key: :cc,
         | 
| 88 | 
            +
                                                   env_name: "FL_MAIL_CC",
         | 
| 89 | 
            +
                                                   description: "Mail cc recipients",
         | 
| 90 | 
            +
                                                   sensitive: true,
         | 
| 91 | 
            +
                                                   is_string: false,
         | 
| 92 | 
            +
                                                   optional: true),
         | 
| 93 | 
            +
                      FastlaneCore::ConfigItem.new(key: :subject,
         | 
| 94 | 
            +
                                                   env_name: "FL_MAIL_SUBJECT",
         | 
| 95 | 
            +
                                                   description: "The subject of the email",
         | 
| 96 | 
            +
                                                   sensitive: true,
         | 
| 97 | 
            +
                                                   verify_block: proc do |value|
         | 
| 98 | 
            +
                                                     UI.user_error!("No subject of email") if value.to_s.length == 0
         | 
| 99 | 
            +
                                                   end),
         | 
| 100 | 
            +
                      FastlaneCore::ConfigItem.new(key: :body,
         | 
| 101 | 
            +
                                                   env_name: "FL_MAIL_BODY",
         | 
| 102 | 
            +
                                                   description: "The body of the email",
         | 
| 103 | 
            +
                                                   sensitive: true,
         | 
| 104 | 
            +
                                                   verify_block: proc do |value|
         | 
| 105 | 
            +
                                                     UI.user_error!("No body of email") if value.to_s.length == 0
         | 
| 106 | 
            +
                                                   end),
         | 
| 107 | 
            +
                      FastlaneCore::ConfigItem.new(key: :inReplayTo,
         | 
| 108 | 
            +
                                                   env_name: "FL_MAIL_IN_REPLAY_TO",
         | 
| 109 | 
            +
                                                   description: "Mail in replay To",
         | 
| 110 | 
            +
                                                   sensitive: true,
         | 
| 111 | 
            +
                                                   is_string: false,
         | 
| 112 | 
            +
                                                   optional: true),
         | 
| 113 | 
            +
                      FastlaneCore::ConfigItem.new(key: :references,
         | 
| 114 | 
            +
                                                   env_name: "FL_MAIL_REFERENCES",
         | 
| 115 | 
            +
                                                   description: "Mail References",
         | 
| 116 | 
            +
                                                   sensitive: true,
         | 
| 117 | 
            +
                                                   is_string: false,
         | 
| 118 | 
            +
                                                   optional: true)
         | 
| 119 | 
            +
                    ]
         | 
| 120 | 
            +
                  end
         | 
| 121 | 
            +
             | 
| 122 | 
            +
                  def self.is_supported?(platform)
         | 
| 123 | 
            +
                    # Adjust this if your plugin only works for a particular platform (iOS vs. Android, for example)
         | 
| 124 | 
            +
                    # See: https://docs.fastlane.tools/advanced/#control-configuration-by-lane-and-by-platform
         | 
| 125 | 
            +
                    #
         | 
| 126 | 
            +
                    # [:ios, :mac, :android].include?(platform)
         | 
| 127 | 
            +
                    true
         | 
| 128 | 
            +
                  end
         | 
| 129 | 
            +
                end
         | 
| 130 | 
            +
              end
         | 
| 131 | 
            +
            end
         | 
| @@ -0,0 +1,16 @@ | |
| 1 | 
            +
            require 'fastlane_core/ui/ui'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Fastlane
         | 
| 4 | 
            +
              UI = FastlaneCore::UI unless Fastlane.const_defined?("UI")
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              module Helper
         | 
| 7 | 
            +
                class SendgridHelper
         | 
| 8 | 
            +
                  # class methods that you define here become available in your action
         | 
| 9 | 
            +
                  # as `Helper::SendgridHelper.your_method`
         | 
| 10 | 
            +
                  #
         | 
| 11 | 
            +
                  def self.show_message
         | 
| 12 | 
            +
                    UI.message("Hello from the sendgrid plugin helper!")
         | 
| 13 | 
            +
                  end
         | 
| 14 | 
            +
                end
         | 
| 15 | 
            +
              end
         | 
| 16 | 
            +
            end
         | 
| @@ -0,0 +1,16 @@ | |
| 1 | 
            +
            require 'fastlane/plugin/sendgrid/version'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Fastlane
         | 
| 4 | 
            +
              module Sendgrid
         | 
| 5 | 
            +
                # Return all .rb files inside the "actions" and "helper" directory
         | 
| 6 | 
            +
                def self.all_classes
         | 
| 7 | 
            +
                  Dir[File.expand_path('**/{actions,helper}/*.rb', File.dirname(__FILE__))]
         | 
| 8 | 
            +
                end
         | 
| 9 | 
            +
              end
         | 
| 10 | 
            +
            end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            # By default we want to import all available actions and helpers
         | 
| 13 | 
            +
            # A plugin can contain any number of actions and plugins
         | 
| 14 | 
            +
            Fastlane::Sendgrid.all_classes.each do |current|
         | 
| 15 | 
            +
              require current
         | 
| 16 | 
            +
            end
         | 
    
        metadata
    ADDED
    
    | @@ -0,0 +1,202 @@ | |
| 1 | 
            +
            --- !ruby/object:Gem::Specification
         | 
| 2 | 
            +
            name: fastlane-plugin-sendgrid
         | 
| 3 | 
            +
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            +
              version: 0.1.0
         | 
| 5 | 
            +
            platform: ruby
         | 
| 6 | 
            +
            authors:
         | 
| 7 | 
            +
            - OTVENTURES\Tarek.Mohammed
         | 
| 8 | 
            +
            autorequire:
         | 
| 9 | 
            +
            bindir: bin
         | 
| 10 | 
            +
            cert_chain: []
         | 
| 11 | 
            +
            date: 2023-05-13 00:00:00.000000000 Z
         | 
| 12 | 
            +
            dependencies:
         | 
| 13 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            +
              name: sendgrid-ruby
         | 
| 15 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            +
                requirements:
         | 
| 17 | 
            +
                - - "~>"
         | 
| 18 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            +
                    version: 6.6.2
         | 
| 20 | 
            +
              type: :runtime
         | 
| 21 | 
            +
              prerelease: false
         | 
| 22 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            +
                requirements:
         | 
| 24 | 
            +
                - - "~>"
         | 
| 25 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            +
                    version: 6.6.2
         | 
| 27 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            +
              name: bundler
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - ">="
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: '0'
         | 
| 34 | 
            +
              type: :development
         | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - ">="
         | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: '0'
         | 
| 41 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            +
              name: fastlane
         | 
| 43 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 | 
            +
                requirements:
         | 
| 45 | 
            +
                - - ">="
         | 
| 46 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            +
                    version: 2.211.0
         | 
| 48 | 
            +
              type: :development
         | 
| 49 | 
            +
              prerelease: false
         | 
| 50 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 | 
            +
                requirements:
         | 
| 52 | 
            +
                - - ">="
         | 
| 53 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            +
                    version: 2.211.0
         | 
| 55 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 56 | 
            +
              name: pry
         | 
| 57 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 | 
            +
                requirements:
         | 
| 59 | 
            +
                - - ">="
         | 
| 60 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            +
                    version: '0'
         | 
| 62 | 
            +
              type: :development
         | 
| 63 | 
            +
              prerelease: false
         | 
| 64 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 | 
            +
                requirements:
         | 
| 66 | 
            +
                - - ">="
         | 
| 67 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 68 | 
            +
                    version: '0'
         | 
| 69 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 70 | 
            +
              name: rake
         | 
| 71 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 72 | 
            +
                requirements:
         | 
| 73 | 
            +
                - - ">="
         | 
| 74 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 75 | 
            +
                    version: '0'
         | 
| 76 | 
            +
              type: :development
         | 
| 77 | 
            +
              prerelease: false
         | 
| 78 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 | 
            +
                requirements:
         | 
| 80 | 
            +
                - - ">="
         | 
| 81 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 82 | 
            +
                    version: '0'
         | 
| 83 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 84 | 
            +
              name: rspec
         | 
| 85 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 86 | 
            +
                requirements:
         | 
| 87 | 
            +
                - - ">="
         | 
| 88 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 89 | 
            +
                    version: '0'
         | 
| 90 | 
            +
              type: :development
         | 
| 91 | 
            +
              prerelease: false
         | 
| 92 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 93 | 
            +
                requirements:
         | 
| 94 | 
            +
                - - ">="
         | 
| 95 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 96 | 
            +
                    version: '0'
         | 
| 97 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 98 | 
            +
              name: rspec_junit_formatter
         | 
| 99 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 100 | 
            +
                requirements:
         | 
| 101 | 
            +
                - - ">="
         | 
| 102 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 103 | 
            +
                    version: '0'
         | 
| 104 | 
            +
              type: :development
         | 
| 105 | 
            +
              prerelease: false
         | 
| 106 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 107 | 
            +
                requirements:
         | 
| 108 | 
            +
                - - ">="
         | 
| 109 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 110 | 
            +
                    version: '0'
         | 
| 111 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 112 | 
            +
              name: rubocop
         | 
| 113 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 114 | 
            +
                requirements:
         | 
| 115 | 
            +
                - - '='
         | 
| 116 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 117 | 
            +
                    version: 1.12.1
         | 
| 118 | 
            +
              type: :development
         | 
| 119 | 
            +
              prerelease: false
         | 
| 120 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 121 | 
            +
                requirements:
         | 
| 122 | 
            +
                - - '='
         | 
| 123 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 124 | 
            +
                    version: 1.12.1
         | 
| 125 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 126 | 
            +
              name: rubocop-performance
         | 
| 127 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 128 | 
            +
                requirements:
         | 
| 129 | 
            +
                - - ">="
         | 
| 130 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 131 | 
            +
                    version: '0'
         | 
| 132 | 
            +
              type: :development
         | 
| 133 | 
            +
              prerelease: false
         | 
| 134 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 135 | 
            +
                requirements:
         | 
| 136 | 
            +
                - - ">="
         | 
| 137 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 138 | 
            +
                    version: '0'
         | 
| 139 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 140 | 
            +
              name: rubocop-require_tools
         | 
| 141 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 142 | 
            +
                requirements:
         | 
| 143 | 
            +
                - - ">="
         | 
| 144 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 145 | 
            +
                    version: '0'
         | 
| 146 | 
            +
              type: :development
         | 
| 147 | 
            +
              prerelease: false
         | 
| 148 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 149 | 
            +
                requirements:
         | 
| 150 | 
            +
                - - ">="
         | 
| 151 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 152 | 
            +
                    version: '0'
         | 
| 153 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 154 | 
            +
              name: simplecov
         | 
| 155 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 156 | 
            +
                requirements:
         | 
| 157 | 
            +
                - - ">="
         | 
| 158 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 159 | 
            +
                    version: '0'
         | 
| 160 | 
            +
              type: :development
         | 
| 161 | 
            +
              prerelease: false
         | 
| 162 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 163 | 
            +
                requirements:
         | 
| 164 | 
            +
                - - ">="
         | 
| 165 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 166 | 
            +
                    version: '0'
         | 
| 167 | 
            +
            description:
         | 
| 168 | 
            +
            email: tarek.mohamed@linkdev.com
         | 
| 169 | 
            +
            executables: []
         | 
| 170 | 
            +
            extensions: []
         | 
| 171 | 
            +
            extra_rdoc_files: []
         | 
| 172 | 
            +
            files:
         | 
| 173 | 
            +
            - LICENSE
         | 
| 174 | 
            +
            - README.md
         | 
| 175 | 
            +
            - lib/fastlane/plugin/sendgrid.rb
         | 
| 176 | 
            +
            - lib/fastlane/plugin/sendgrid/actions/sendgrid_action.rb
         | 
| 177 | 
            +
            - lib/fastlane/plugin/sendgrid/helper/sendgrid_helper.rb
         | 
| 178 | 
            +
            - lib/fastlane/plugin/sendgrid/version.rb
         | 
| 179 | 
            +
            homepage: https://github.com/tarek13/fastlane-plugin-sendgrid
         | 
| 180 | 
            +
            licenses:
         | 
| 181 | 
            +
            - MIT
         | 
| 182 | 
            +
            metadata: {}
         | 
| 183 | 
            +
            post_install_message:
         | 
| 184 | 
            +
            rdoc_options: []
         | 
| 185 | 
            +
            require_paths:
         | 
| 186 | 
            +
            - lib
         | 
| 187 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 188 | 
            +
              requirements:
         | 
| 189 | 
            +
              - - ">="
         | 
| 190 | 
            +
                - !ruby/object:Gem::Version
         | 
| 191 | 
            +
                  version: '2.6'
         | 
| 192 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 193 | 
            +
              requirements:
         | 
| 194 | 
            +
              - - ">="
         | 
| 195 | 
            +
                - !ruby/object:Gem::Version
         | 
| 196 | 
            +
                  version: '0'
         | 
| 197 | 
            +
            requirements: []
         | 
| 198 | 
            +
            rubygems_version: 3.4.10
         | 
| 199 | 
            +
            signing_key:
         | 
| 200 | 
            +
            specification_version: 4
         | 
| 201 | 
            +
            summary: send email with sendgrid
         | 
| 202 | 
            +
            test_files: []
         |