forked from helpyio/helpy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
license_report.csv
We can't make this file beautiful and searchable because it's too large.
217 lines (217 loc) · 734 KB
/
license_report.csv
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
actionmailer,4.2.11.1,MIT,http://www.rubyonrails.org,"Copyright (c) 2004-2014 David Heinemeier Hansson\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL= Action Mailer -- Easy email delivery and testing\@NLAction Mailer is a framework for designing email service layers. These layers\@NLare used to consolidate code for sending out forgotten passwords, welcome\@NLwishes on signup, invoices for billing, and any other use case that requires\@NLa written notification to either a person or another system.\@NLAction Mailer is in essence a wrapper around Action Controller and the\@NLMail gem. It provides a way to make emails using templates in the same\@NLway that Action Controller renders views using templates.\@NLAdditionally, an Action Mailer class can be used to process incoming email,\@NLsuch as allowing a blog to accept new posts from an email (which could even\@NLhave been sent from a phone).\@NL== Sending emails\@NLThe framework works by initializing any instance variables you want to be\@NLavailable in the email template, followed by a call to +mail+ to deliver\@NLthe email.\@NLThis can be as simple as:\@NL class Notifier < ActionMailer::Base\@NL default from: '[email protected]'\@NL def welcome(recipient)\@NL @recipient = recipient\@NL mail(to: recipient,\@NL subject: ""[Signed up] Welcome #{recipient}"")\@NL end\@NL end\@NLThe body of the email is created by using an Action View template (regular\@NLERB) that has the instance variables that are declared in the mailer action.\@NLSo the corresponding body template for the method above could look like this:\@NL Hello there,\@NL Mr. <%= @recipient %>\@NL Thank you for signing up!\@NLIf the recipient was given as ""[email protected]"", the email\@NLgenerated would look like this:\@NL Date: Mon, 25 Jan 2010 22:48:09 +1100\@NL From: [email protected]\@NL To: [email protected]\@NL Message-ID: <[email protected]>\@NL Subject: [Signed up] Welcome [email protected]\@NL Mime-Version: 1.0\@NL Content-Type: text/plain;\@NL charset=""US-ASCII"";\@NL Content-Transfer-Encoding: 7bit\@NL Hello there,\@NL Mr. [email protected]\@NL Thank you for signing up!\@NLIn order to send mails, you simply call the method and then call +deliver_now+ on the return value.\@NLCalling the method returns a Mail Message object:\@NL message = Notifier.welcome(""[email protected]"") # => Returns a Mail::Message object\@NL message.deliver_now # => delivers the email\@NLOr you can just chain the methods together like:\@NL Notifier.welcome(""[email protected]"").deliver_now # Creates the email and sends it immediately\@NL== Setting defaults\@NLIt is possible to set default values that will be used in every method in your\@NLAction Mailer class. To implement this functionality, you just call the public\@NLclass method +default+ which you get for free from <tt>ActionMailer::Base</tt>.\@NLThis method accepts a Hash as the parameter. You can use any of the headers,\@NLemail messages have, like +:from+ as the key. You can also pass in a string as\@NLthe key, like ""Content-Type"", but Action Mailer does this out of the box for you,\@NLso you won't need to worry about that. Finally, it is also possible to pass in a\@NLProc that will get evaluated when it is needed.\@NLNote that every value you set with this method will get overwritten if you use the\@NLsame key in your mailer method.\@NLExample:\@NL class AuthenticationMailer < ActionMailer::Base\@NL default from: ""[email protected]"", subject: Proc.new { ""E-mail was generated at #{Time.now}"" }\@NL .....\@NL end\@NL== Receiving emails\@NLTo receive emails, you need to implement a public instance method called\@NL+receive+ that takes an email object as its single parameter. The Action Mailer\@NLframework has a corresponding class method, which is also called +receive+, that\@NLaccepts a raw, unprocessed email as a string, which it then turns into the email\@NLobject and calls the receive instance method.\@NLExample:\@NL class Mailman < ActionMailer::Base\@NL def receive(email)\@NL page = Page.find_by(address: email.to.first)\@NL page.emails.create(\@NL subject: email.subject, body: email.body\@NL )\@NL if email.has_attachments?\@NL email.attachments.each do |attachment|\@NL page.attachments.create({\@NL file: attachment, description: email.subject\@NL })\@NL end\@NL end\@NL end\@NL end\@NLThis Mailman can be the target for Postfix or other MTAs. In Rails, you would use\@NLthe runner in the trivial case like this:\@NL rails runner 'Mailman.receive(STDIN.read)'\@NLHowever, invoking Rails in the runner for each mail to be received is very\@NLresource intensive. A single instance of Rails should be run within a daemon, if\@NLit is going to process more than just a limited amount of email.\@NL== Configuration\@NLThe Base class has the full list of configuration options. Here's an example:\@NL ActionMailer::Base.smtp_settings = {\@NL address: 'smtp.yourserver.com', # default: localhost\@NL port: '25', # default: 25\@NL user_name: 'user',\@NL password: 'pass',\@NL authentication: :plain # :plain, :login or :cram_md5\@NL }\@NL== Download and installation\@NLThe latest version of Action Mailer can be installed with RubyGems:\@NL % [sudo] gem install actionmailer\@NLSource code can be downloaded as part of the Rails project on GitHub\@NL* https://github.com/rails/rails/tree/4-2-stable/actionmailer\@NL== License\@NLAction Mailer is released under the MIT license:\@NL* http://www.opensource.org/licenses/MIT\@NL== Support\@NLAPI documentation is at\@NL* http://api.rubyonrails.org\@NLBug reports can be filed for the Ruby on Rails project here:\@NL* https://github.com/rails/rails/issues\@NLFeature requests should be discussed on the rails-core mailing list here:\@NL* https://groups.google.com/forum/?fromgroups#!forum/rubyonrails-core",/Users/scott/.rvm/gems/ruby-2.4.6/gems/actionmailer-4.2.11.1
actionpack,4.2.11.1,MIT,http://www.rubyonrails.org,"Copyright (c) 2004-2014 David Heinemeier Hansson\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL= Action Pack -- From request to response\@NLAction Pack is a framework for handling and responding to web requests. It\@NLprovides mechanisms for *routing* (mapping request URLs to actions), defining\@NL*controllers* that implement actions, and generating responses by rendering\@NL*views*, which are templates of various formats. In short, Action Pack\@NLprovides the view and controller layers in the MVC paradigm.\@NLIt consists of several modules:\@NL* Action Dispatch, which parses information about the web request, handles\@NL routing as defined by the user, and does advanced processing related to HTTP\@NL such as MIME-type negotiation, decoding parameters in POST, PATCH, or PUT bodies,\@NL handling HTTP caching logic, cookies and sessions.\@NL* Action Controller, which provides a base controller class that can be\@NL subclassed to implement filters and actions to handle requests. The result\@NL of an action is typically content generated from views.\@NLWith the Ruby on Rails framework, users only directly interface with the\@NLAction Controller module. Necessary Action Dispatch functionality is activated\@NLby default and Action View rendering is implicitly triggered by Action\@NLController. However, these modules are designed to function on their own and\@NLcan be used outside of Rails.\@NL== Download and installation\@NLThe latest version of Action Pack can be installed with RubyGems:\@NL % [sudo] gem install actionpack\@NLSource code can be downloaded as part of the Rails project on GitHub\@NL* https://github.com/rails/rails/tree/4-2-stable/actionpack\@NL== License\@NLAction Pack is released under the MIT license:\@NL* http://www.opensource.org/licenses/MIT\@NL== Support\@NLAPI documentation is at\@NL* http://api.rubyonrails.org\@NLBug reports can be filed for the Ruby on Rails project here:\@NL* https://github.com/rails/rails/issues\@NLFeature requests should be discussed on the rails-core mailing list here:\@NL* https://groups.google.com/forum/?fromgroups#!forum/rubyonrails-core",/Users/scott/.rvm/gems/ruby-2.4.6/gems/actionpack-4.2.11.1
actionview,4.2.11.1,MIT,http://www.rubyonrails.org,"Copyright (c) 2004-2014 David Heinemeier Hansson\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL= Action View\@NLAction View is a framework for handling view template lookup and rendering, and provides\@NLview helpers that assist when building HTML forms, Atom feeds and more.\@NLTemplate formats that Action View handles are ERB (embedded Ruby, typically\@NLused to inline short Ruby snippets inside HTML), and XML Builder.\@NL== Download and installation\@NLThe latest version of Action View can be installed with RubyGems:\@NL % [sudo] gem install actionview\@NLSource code can be downloaded as part of the Rails project on GitHub\@NL* https://github.com/rails/rails/tree/4-2-stable/actionview\@NL== License\@NLAction View is released under the MIT license:\@NL* http://www.opensource.org/licenses/MIT\@NL== Support\@NLAPI documentation is at\@NL* http://api.rubyonrails.org\@NLBug reports can be filed for the Ruby on Rails project here:\@NL* https://github.com/rails/rails/issues\@NLFeature requests should be discussed on the rails-core mailing list here:\@NL* https://groups.google.com/forum/?fromgroups#!forum/rubyonrails-core",/Users/scott/.rvm/gems/ruby-2.4.6/gems/actionview-4.2.11.1
activejob,4.2.11.1,MIT,http://www.rubyonrails.org,"Copyright (c) 2014 David Heinemeier Hansson\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL# Active Job -- Make work happen later\@NLActive Job is a framework for declaring jobs and making them run on a variety\@NLof queueing backends. These jobs can be everything from regularly scheduled\@NLclean-ups, to billing charges, to mailings. Anything that can be chopped up into\@NLsmall units of work and run in parallel, really.\@NLIt also serves as the backend for Action Mailer's #deliver_later functionality\@NLthat makes it easy to turn any mailing into a job for running later. That's\@NLone of the most common jobs in a modern web application: Sending emails outside\@NLof the request-response cycle, so the user doesn't have to wait on it.\@NLThe main point is to ensure that all Rails apps will have a job infrastructure\@NLin place, even if it's in the form of an ""immediate runner"". We can then have\@NLframework features and other gems build on top of that, without having to worry\@NLabout API differences between Delayed Job and Resque. Picking your queuing\@NLbackend becomes more of an operational concern, then. And you'll be able to\@NLswitch between them without having to rewrite your jobs.\@NL## Usage\@NLSet the queue adapter for Active Job:\@NL``` ruby\@NLActiveJob::Base.queue_adapter = :inline # default queue adapter\@NL```\@NLNote: To learn how to use your preferred queueing backend see its adapter\@NLdocumentation at\@NL[ActiveJob::QueueAdapters](http://api.rubyonrails.org/classes/ActiveJob/QueueAdapters.html).\@NLDeclare a job like so:\@NL```ruby\@NLclass MyJob < ActiveJob::Base\@NL queue_as :my_jobs\@NL def perform(record)\@NL record.do_work\@NL end\@NLend\@NL```\@NLEnqueue a job like so:\@NL```ruby\@NLMyJob.perform_later record # Enqueue a job to be performed as soon the queueing system is free.\@NL```\@NL```ruby\@NLMyJob.set(wait_until: Date.tomorrow.noon).perform_later(record) # Enqueue a job to be performed tomorrow at noon.\@NL```\@NL```ruby\@NLMyJob.set(wait: 1.week).perform_later(record) # Enqueue a job to be performed 1 week from now.\@NL```\@NLThat's it!\@NL## GlobalID support\@NLActive Job supports [GlobalID serialization](https://github.com/rails/globalid/) for parameters. This makes it possible\@NLto pass live Active Record objects to your job instead of class/id pairs, which\@NLyou then have to manually deserialize. Before, jobs would look like this:\@NL```ruby\@NLclass TrashableCleanupJob\@NL def perform(trashable_class, trashable_id, depth)\@NL trashable = trashable_class.constantize.find(trashable_id)\@NL trashable.cleanup(depth)\@NL end\@NLend\@NL```\@NLNow you can simply do:\@NL```ruby\@NLclass TrashableCleanupJob\@NL def perform(trashable, depth)\@NL trashable.cleanup(depth)\@NL end\@NLend\@NL```\@NLThis works with any class that mixes in GlobalID::Identification, which\@NLby default has been mixed into Active Record classes.\@NL## Supported queueing systems\@NLActive Job has built-in adapters for multiple queueing backends (Sidekiq,\@NLResque, Delayed Job and others). To get an up-to-date list of the adapters\@NLsee the API Documentation for [ActiveJob::QueueAdapters](http://api.rubyonrails.org/classes/ActiveJob/QueueAdapters.html).\@NL## Auxiliary gems\@NL* [activejob-stats](https://github.com/seuros/activejob-stats)\@NL## Download and installation\@NLThe latest version of Active Job can be installed with RubyGems:\@NL```\@NL % [sudo] gem install activejob\@NL```\@NLSource code can be downloaded as part of the Rails project on GitHub\@NL* https://github.com/rails/rails/tree/4-2-stable/activejob\@NL## License\@NLActive Job is released under the MIT license:\@NL* http://www.opensource.org/licenses/MIT\@NL## Support\@NLAPI documentation is at\@NL* http://api.rubyonrails.org\@NLBug reports can be filed for the Ruby on Rails project here:\@NL* https://github.com/rails/rails/issues\@NLFeature requests should be discussed on the rails-core mailing list here:\@NL* https://groups.google.com/forum/?fromgroups#!forum/rubyonrails-core",/Users/scott/.rvm/gems/ruby-2.4.6/gems/activejob-4.2.11.1
activemodel,4.2.11.1,MIT,http://www.rubyonrails.org,"Copyright (c) 2004-2014 David Heinemeier Hansson\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL= Active Model -- model interfaces for Rails\@NLActive Model provides a known set of interfaces for usage in model classes.\@NLThey allow for Action Pack helpers to interact with non-Active Record models,\@NLfor example. Active Model also helps with building custom ORMs for use outside of\@NLthe Rails framework.\@NLPrior to Rails 3.0, if a plugin or gem developer wanted to have an object\@NLinteract with Action Pack helpers, it was required to either copy chunks of\@NLcode from Rails, or monkey patch entire helpers to make them handle objects\@NLthat did not exactly conform to the Active Record interface. This would result\@NLin code duplication and fragile applications that broke on upgrades. Active\@NLModel solves this by defining an explicit API. You can read more about the\@NLAPI in <tt>ActiveModel::Lint::Tests</tt>.\@NLActive Model provides a default module that implements the basic API required\@NLto integrate with Action Pack out of the box: <tt>ActiveModel::Model</tt>.\@NL class Person\@NL include ActiveModel::Model\@NL attr_accessor :name, :age\@NL validates_presence_of :name\@NL end\@NL person = Person.new(name: 'bob', age: '18')\@NL person.name # => 'bob'\@NL person.age # => '18'\@NL person.valid? # => true\@NLIt includes model name introspections, conversions, translations and\@NLvalidations, resulting in a class suitable to be used with Action Pack.\@NLSee <tt>ActiveModel::Model</tt> for more examples.\@NLActive Model also provides the following functionality to have ORM-like\@NLbehavior out of the box:\@NL* Add attribute magic to objects\@NL class Person\@NL include ActiveModel::AttributeMethods\@NL attribute_method_prefix 'clear_'\@NL define_attribute_methods :name, :age\@NL attr_accessor :name, :age\@NL def clear_attribute(attr)\@NL send(""#{attr}="", nil)\@NL end\@NL end\@NL \@NL person = Person.new\@NL person.clear_name\@NL person.clear_age\@NL {Learn more}[link:classes/ActiveModel/AttributeMethods.html]\@NL* Callbacks for certain operations\@NL class Person\@NL extend ActiveModel::Callbacks\@NL define_model_callbacks :create\@NL def create\@NL run_callbacks :create do\@NL # Your create action methods here\@NL end\@NL end\@NL end\@NL This generates +before_create+, +around_create+ and +after_create+\@NL class methods that wrap your create method.\@NL {Learn more}[link:classes/ActiveModel/Callbacks.html]\@NL* Tracking value changes\@NL class Person\@NL include ActiveModel::Dirty\@NL define_attribute_methods :name\@NL def name\@NL @name\@NL end\@NL def name=(val)\@NL name_will_change! unless val == @name\@NL @name = val\@NL end\@NL def save\@NL # do persistence work\@NL changes_applied\@NL end\@NL end\@NL person = Person.new\@NL person.name # => nil\@NL person.changed? # => false\@NL person.name = 'bob'\@NL person.changed? # => true\@NL person.changed # => ['name']\@NL person.changes # => { 'name' => [nil, 'bob'] }\@NL person.save\@NL person.name = 'robert'\@NL person.save\@NL person.previous_changes # => {'name' => ['bob, 'robert']}\@NL {Learn more}[link:classes/ActiveModel/Dirty.html]\@NL* Adding +errors+ interface to objects\@NL Exposing error messages allows objects to interact with Action Pack\@NL helpers seamlessly.\@NL class Person\@NL def initialize\@NL @errors = ActiveModel::Errors.new(self)\@NL end\@NL attr_accessor :name\@NL attr_reader :errors\@NL def validate!\@NL errors.add(:name, ""cannot be nil"") if name.nil?\@NL end\@NL def self.human_attribute_name(attr, options = {})\@NL ""Name""\@NL end\@NL end\@NL \@NL person = Person.new\@NL person.name = nil\@NL person.validate!\@NL person.errors.full_messages\@NL # => [""Name cannot be nil""]\@NL {Learn more}[link:classes/ActiveModel/Errors.html]\@NL* Model name introspection\@NL class NamedPerson\@NL extend ActiveModel::Naming\@NL end\@NL NamedPerson.model_name.name # => ""NamedPerson""\@NL NamedPerson.model_name.human # => ""Named person""\@NL {Learn more}[link:classes/ActiveModel/Naming.html]\@NL* Making objects serializable\@NL ActiveModel::Serialization provides a standard interface for your object\@NL to provide +to_json+ or +to_xml+ serialization.\@NL class SerialPerson\@NL include ActiveModel::Serialization\@NL attr_accessor :name\@NL def attributes\@NL {'name' => name}\@NL end\@NL end\@NL s = SerialPerson.new\@NL s.serializable_hash # => {""name""=>nil}\@NL class SerialPerson\@NL include ActiveModel::Serializers::JSON\@NL end\@NL s = SerialPerson.new\@NL s.to_json # => ""{\""name\"":null}""\@NL class SerialPerson\@NL include ActiveModel::Serializers::Xml\@NL end\@NL s = SerialPerson.new\@NL s.to_xml # => ""<?xml version=\""1.0\"" encoding=\""UTF-8\""?>\n<serial-person...\@NL {Learn more}[link:classes/ActiveModel/Serialization.html]\@NL* Internationalization (i18n) support\@NL class Person\@NL extend ActiveModel::Translation\@NL end\@NL Person.human_attribute_name('my_attribute')\@NL # => ""My attribute""\@NL {Learn more}[link:classes/ActiveModel/Translation.html]\@NL* Validation support\@NL class Person\@NL include ActiveModel::Validations\@NL attr_accessor :first_name, :last_name\@NL validates_each :first_name, :last_name do |record, attr, value|\@NL record.errors.add attr, 'starts with z.' if value.to_s[0] == ?z\@NL end\@NL end\@NL person = Person.new\@NL person.first_name = 'zoolander'\@NL person.valid? # => false\@NL {Learn more}[link:classes/ActiveModel/Validations.html]\@NL* Custom validators\@NL \@NL class HasNameValidator < ActiveModel::Validator\@NL def validate(record)\@NL record.errors[:name] = ""must exist"" if record.name.blank?\@NL end\@NL end\@NL class ValidatorPerson\@NL include ActiveModel::Validations\@NL validates_with HasNameValidator\@NL attr_accessor :name\@NL end\@NL p = ValidatorPerson.new\@NL p.valid? # => false\@NL p.errors.full_messages # => [""Name must exist""]\@NL p.name = ""Bob""\@NL p.valid? # => true\@NL {Learn more}[link:classes/ActiveModel/Validator.html]\@NL== Download and installation\@NLThe latest version of Active Model can be installed with RubyGems:\@NL % [sudo] gem install activemodel\@NLSource code can be downloaded as part of the Rails project on GitHub\@NL* https://github.com/rails/rails/tree/4-2-stable/activemodel\@NL== License\@NLActive Model is released under the MIT license:\@NL* http://www.opensource.org/licenses/MIT\@NL== Support\@NLAPI documentation is at\@NL* http://api.rubyonrails.org\@NLBug reports can be filed for the Ruby on Rails project here:\@NL* https://github.com/rails/rails/issues\@NLFeature requests should be discussed on the rails-core mailing list here:\@NL* https://groups.google.com/forum/?fromgroups#!forum/rubyonrails-core",/Users/scott/.rvm/gems/ruby-2.4.6/gems/activemodel-4.2.11.1
activerecord,4.2.11.1,MIT,http://www.rubyonrails.org,"Copyright (c) 2004-2014 David Heinemeier Hansson\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL= Active Record -- Object-relational mapping in Rails\@NLActive Record connects classes to relational database tables to establish an\@NLalmost zero-configuration persistence layer for applications. The library\@NLprovides a base class that, when subclassed, sets up a mapping between the new\@NLclass and an existing table in the database. In the context of an application,\@NLthese classes are commonly referred to as *models*. Models can also be\@NLconnected to other models; this is done by defining *associations*.\@NLActive Record relies heavily on naming in that it uses class and association\@NLnames to establish mappings between respective database tables and foreign key\@NLcolumns. Although these mappings can be defined explicitly, it's recommended\@NLto follow naming conventions, especially when getting started with the\@NLlibrary.\@NLA short rundown of some of the major features:\@NL* Automated mapping between classes and tables, attributes and columns.\@NL class Product < ActiveRecord::Base\@NL end\@NL {Learn more}[link:classes/ActiveRecord/Base.html]\@NLThe Product class is automatically mapped to the table named ""products"",\@NLwhich might look like this:\@NL CREATE TABLE products (\@NL id int(11) NOT NULL auto_increment,\@NL name varchar(255),\@NL PRIMARY KEY (id)\@NL );\@NLThis would also define the following accessors: `Product#name` and\@NL`Product#name=(new_name)`.\@NL* Associations between objects defined by simple class methods.\@NL class Firm < ActiveRecord::Base\@NL has_many :clients\@NL has_one :account\@NL belongs_to :conglomerate\@NL end\@NL {Learn more}[link:classes/ActiveRecord/Associations/ClassMethods.html]\@NL* Aggregations of value objects.\@NL class Account < ActiveRecord::Base\@NL composed_of :balance, class_name: 'Money',\@NL mapping: %w(balance amount)\@NL composed_of :address,\@NL mapping: [%w(address_street street), %w(address_city city)]\@NL end\@NL {Learn more}[link:classes/ActiveRecord/Aggregations/ClassMethods.html]\@NL* Validation rules that can differ for new or existing objects.\@NL class Account < ActiveRecord::Base\@NL validates :subdomain, :name, :email_address, :password, presence: true\@NL validates :subdomain, uniqueness: true\@NL validates :terms_of_service, acceptance: true, on: :create\@NL validates :password, :email_address, confirmation: true, on: :create\@NL end\@NL {Learn more}[link:classes/ActiveRecord/Validations.html]\@NL* Callbacks available for the entire life cycle (instantiation, saving, destroying, validating, etc.).\@NL class Person < ActiveRecord::Base\@NL before_destroy :invalidate_payment_plan\@NL # the `invalidate_payment_plan` method gets called just before Person#destroy\@NL end\@NL {Learn more}[link:classes/ActiveRecord/Callbacks.html]\@NL* Inheritance hierarchies.\@NL class Company < ActiveRecord::Base; end\@NL class Firm < Company; end\@NL class Client < Company; end\@NL class PriorityClient < Client; end\@NL {Learn more}[link:classes/ActiveRecord/Base.html]\@NL* Transactions.\@NL # Database transaction\@NL Account.transaction do\@NL david.withdrawal(100)\@NL mary.deposit(100)\@NL end\@NL {Learn more}[link:classes/ActiveRecord/Transactions/ClassMethods.html]\@NL* Reflections on columns, associations, and aggregations.\@NL reflection = Firm.reflect_on_association(:clients)\@NL reflection.klass # => Client (class)\@NL Firm.columns # Returns an array of column descriptors for the firms table\@NL {Learn more}[link:classes/ActiveRecord/Reflection/ClassMethods.html]\@NL* Database abstraction through simple adapters.\@NL # connect to SQLite3\@NL ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: 'dbfile.sqlite3')\@NL # connect to MySQL with authentication\@NL ActiveRecord::Base.establish_connection(\@NL adapter: 'mysql2',\@NL host: 'localhost',\@NL username: 'me',\@NL password: 'secret',\@NL database: 'activerecord'\@NL )\@NL {Learn more}[link:classes/ActiveRecord/Base.html] and read about the built-in support for\@NL MySQL[link:classes/ActiveRecord/ConnectionAdapters/MysqlAdapter.html],\@NL PostgreSQL[link:classes/ActiveRecord/ConnectionAdapters/PostgreSQLAdapter.html], and\@NL SQLite3[link:classes/ActiveRecord/ConnectionAdapters/SQLite3Adapter.html].\@NL* Logging support for Log4r[https://github.com/colbygk/log4r] and Logger[http://www.ruby-doc.org/stdlib/libdoc/logger/rdoc].\@NL ActiveRecord::Base.logger = ActiveSupport::Logger.new(STDOUT)\@NL ActiveRecord::Base.logger = Log4r::Logger.new('Application Log')\@NL* Database agnostic schema management with Migrations.\@NL class AddSystemSettings < ActiveRecord::Migration\@NL def up\@NL create_table :system_settings do |t|\@NL t.string :name\@NL t.string :label\@NL t.text :value\@NL t.string :type\@NL t.integer :position\@NL end\@NL SystemSetting.create name: 'notice', label: 'Use notice?', value: 1\@NL end\@NL def down\@NL drop_table :system_settings\@NL end\@NL end\@NL {Learn more}[link:classes/ActiveRecord/Migration.html]\@NL== Philosophy\@NLActive Record is an implementation of the object-relational mapping (ORM)\@NLpattern[http://www.martinfowler.com/eaaCatalog/activeRecord.html] by the same\@NLname described by Martin Fowler:\@NL ""An object that wraps a row in a database table or view,\@NL encapsulates the database access, and adds domain logic on that data.""\@NLActive Record attempts to provide a coherent wrapper as a solution for the inconvenience that is\@NLobject-relational mapping. The prime directive for this mapping has been to minimize\@NLthe amount of code needed to build a real-world domain model. This is made possible\@NLby relying on a number of conventions that make it easy for Active Record to infer\@NLcomplex relations and structures from a minimal amount of explicit direction.\@NLConvention over Configuration:\@NL* No XML files!\@NL* Lots of reflection and run-time extension\@NL* Magic is not inherently a bad word\@NLAdmit the Database:\@NL* Lets you drop down to SQL for odd cases and performance\@NL* Doesn't attempt to duplicate or replace data definitions\@NL== Download and installation\@NLThe latest version of Active Record can be installed with RubyGems:\@NL % [sudo] gem install activerecord\@NLSource code can be downloaded as part of the Rails project on GitHub:\@NL* https://github.com/rails/rails/tree/4-2-stable/activerecord\@NL== License\@NLActive Record is released under the MIT license:\@NL* http://www.opensource.org/licenses/MIT\@NL== Support\@NLAPI documentation is at:\@NL* http://api.rubyonrails.org\@NLBug reports can be filed for the Ruby on Rails project here:\@NL* https://github.com/rails/rails/issues\@NLFeature requests should be discussed on the rails-core mailing list here:\@NL* https://groups.google.com/forum/?fromgroups#!forum/rubyonrails-core",/Users/scott/.rvm/gems/ruby-2.4.6/gems/activerecord-4.2.11.1
activesupport,4.2.11.1,MIT,http://www.rubyonrails.org,"Copyright (c) 2005-2014 David Heinemeier Hansson\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL= Active Support -- Utility classes and Ruby extensions from Rails\@NLActive Support is a collection of utility classes and standard library\@NLextensions that were found useful for the Rails framework. These additions\@NLreside in this package so they can be loaded as needed in Ruby projects\@NLoutside of Rails.\@NL== Download and installation\@NLThe latest version of Active Support can be installed with RubyGems:\@NL % [sudo] gem install activesupport\@NLSource code can be downloaded as part of the Rails project on GitHub:\@NL* https://github.com/rails/rails/tree/4-2-stable/activesupport\@NL== License\@NLActive Support is released under the MIT license:\@NL* http://www.opensource.org/licenses/MIT\@NL== Support\@NLAPI documentation is at:\@NL* http://api.rubyonrails.org\@NLBug reports can be filed for the Ruby on Rails project here:\@NL* https://github.com/rails/rails/issues\@NLFeature requests should be discussed on the rails-core mailing list here:\@NL* https://groups.google.com/forum/?fromgroups#!forum/rubyonrails-core",/Users/scott/.rvm/gems/ruby-2.4.6/gems/activesupport-4.2.11.1
acts-as-taggable-on,3.5.0,MIT,https://github.com/mbleigh/acts-as-taggable-on,"__Copyright (c) 2007 Michael Bleigh and Intridea Inc.__\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/acts-as-taggable-on-3.5.0
addressable,2.6.0,Apache 2.0,https://github.com/sporkmonger/addressable,"\@NL Apache License\@NL Version 2.0, January 2004\@NL http://www.apache.org/licenses/\@NLTERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\@NL1. Definitions.\@NL ""License"" shall mean the terms and conditions for use, reproduction,\@NL and distribution as defined by Sections 1 through 9 of this document.\@NL ""Licensor"" shall mean the copyright owner or entity authorized by\@NL the copyright owner that is granting the License.\@NL ""Legal Entity"" shall mean the union of the acting entity and all\@NL other entities that control, are controlled by, or are under common\@NL control with that entity. For the purposes of this definition,\@NL ""control"" means (i) the power, direct or indirect, to cause the\@NL direction or management of such entity, whether by contract or\@NL otherwise, or (ii) ownership of fifty percent (50%) or more of the\@NL outstanding shares, or (iii) beneficial ownership of such entity.\@NL ""You"" (or ""Your"") shall mean an individual or Legal Entity\@NL exercising permissions granted by this License.\@NL ""Source"" form shall mean the preferred form for making modifications,\@NL including but not limited to software source code, documentation\@NL source, and configuration files.\@NL ""Object"" form shall mean any form resulting from mechanical\@NL transformation or translation of a Source form, including but\@NL not limited to compiled object code, generated documentation,\@NL and conversions to other media types.\@NL ""Work"" shall mean the work of authorship, whether in Source or\@NL Object form, made available under the License, as indicated by a\@NL copyright notice that is included in or attached to the work\@NL (an example is provided in the Appendix below).\@NL ""Derivative Works"" shall mean any work, whether in Source or Object\@NL form, that is based on (or derived from) the Work and for which the\@NL editorial revisions, annotations, elaborations, or other modifications\@NL represent, as a whole, an original work of authorship. For the purposes\@NL of this License, Derivative Works shall not include works that remain\@NL separable from, or merely link (or bind by name) to the interfaces of,\@NL the Work and Derivative Works thereof.\@NL ""Contribution"" shall mean any work of authorship, including\@NL the original version of the Work and any modifications or additions\@NL to that Work or Derivative Works thereof, that is intentionally\@NL submitted to Licensor for inclusion in the Work by the copyright owner\@NL or by an individual or Legal Entity authorized to submit on behalf of\@NL the copyright owner. For the purposes of this definition, ""submitted""\@NL means any form of electronic, verbal, or written communication sent\@NL to the Licensor or its representatives, including but not limited to\@NL communication on electronic mailing lists, source code control systems,\@NL and issue tracking systems that are managed by, or on behalf of, the\@NL Licensor for the purpose of discussing and improving the Work, but\@NL excluding communication that is conspicuously marked or otherwise\@NL designated in writing by the copyright owner as ""Not a Contribution.""\@NL ""Contributor"" shall mean Licensor and any individual or Legal Entity\@NL on behalf of whom a Contribution has been received by Licensor and\@NL subsequently incorporated within the Work.\@NL2. Grant of Copyright License. Subject to the terms and conditions of\@NL this License, each Contributor hereby grants to You a perpetual,\@NL worldwide, non-exclusive, no-charge, royalty-free, irrevocable\@NL copyright license to reproduce, prepare Derivative Works of,\@NL publicly display, publicly perform, sublicense, and distribute the\@NL Work and such Derivative Works in Source or Object form.\@NL3. Grant of Patent License. Subject to the terms and conditions of\@NL this License, each Contributor hereby grants to You a perpetual,\@NL worldwide, non-exclusive, no-charge, royalty-free, irrevocable\@NL (except as stated in this section) patent license to make, have made,\@NL use, offer to sell, sell, import, and otherwise transfer the Work,\@NL where such license applies only to those patent claims licensable\@NL by such Contributor that are necessarily infringed by their\@NL Contribution(s) alone or by combination of their Contribution(s)\@NL with the Work to which such Contribution(s) was submitted. If You\@NL institute patent litigation against any entity (including a\@NL cross-claim or counterclaim in a lawsuit) alleging that the Work\@NL or a Contribution incorporated within the Work constitutes direct\@NL or contributory patent infringement, then any patent licenses\@NL granted to You under this License for that Work shall terminate\@NL as of the date such litigation is filed.\@NL4. Redistribution. You may reproduce and distribute copies of the\@NL Work or Derivative Works thereof in any medium, with or without\@NL modifications, and in Source or Object form, provided that You\@NL meet the following conditions:\@NL (a) You must give any other recipients of the Work or\@NL Derivative Works a copy of this License; and\@NL (b) You must cause any modified files to carry prominent notices\@NL stating that You changed the files; and\@NL (c) You must retain, in the Source form of any Derivative Works\@NL that You distribute, all copyright, patent, trademark, and\@NL attribution notices from the Source form of the Work,\@NL excluding those notices that do not pertain to any part of\@NL the Derivative Works; and\@NL (d) If the Work includes a ""NOTICE"" text file as part of its\@NL distribution, then any Derivative Works that You distribute must\@NL include a readable copy of the attribution notices contained\@NL within such NOTICE file, excluding those notices that do not\@NL pertain to any part of the Derivative Works, in at least one\@NL of the following places: within a NOTICE text file distributed\@NL as part of the Derivative Works; within the Source form or\@NL documentation, if provided along with the Derivative Works; or,\@NL within a display generated by the Derivative Works, if and\@NL wherever such third-party notices normally appear. The contents\@NL of the NOTICE file are for informational purposes only and\@NL do not modify the License. You may add Your own attribution\@NL notices within Derivative Works that You distribute, alongside\@NL or as an addendum to the NOTICE text from the Work, provided\@NL that such additional attribution notices cannot be construed\@NL as modifying the License.\@NL You may add Your own copyright statement to Your modifications and\@NL may provide additional or different license terms and conditions\@NL for use, reproduction, or distribution of Your modifications, or\@NL for any such Derivative Works as a whole, provided Your use,\@NL reproduction, and distribution of the Work otherwise complies with\@NL the conditions stated in this License.\@NL5. Submission of Contributions. Unless You explicitly state otherwise,\@NL any Contribution intentionally submitted for inclusion in the Work\@NL by You to the Licensor shall be under the terms and conditions of\@NL this License, without any additional terms or conditions.\@NL Notwithstanding the above, nothing herein shall supersede or modify\@NL the terms of any separate license agreement you may have executed\@NL with Licensor regarding such Contributions.\@NL6. Trademarks. This License does not grant permission to use the trade\@NL names, trademarks, service marks, or product names of the Licensor,\@NL except as required for reasonable and customary use in describing the\@NL origin of the Work and reproducing the content of the NOTICE file.\@NL7. Disclaimer of Warranty. Unless required by applicable law or\@NL agreed to in writing, Licensor provides the Work (and each\@NL Contributor provides its Contributions) on an ""AS IS"" BASIS,\@NL WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\@NL implied, including, without limitation, any warranties or conditions\@NL of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\@NL PARTICULAR PURPOSE. You are solely responsible for determining the\@NL appropriateness of using or redistributing the Work and assume any\@NL risks associated with Your exercise of permissions under this License.\@NL8. Limitation of Liability. In no event and under no legal theory,\@NL whether in tort (including negligence), contract, or otherwise,\@NL unless required by applicable law (such as deliberate and grossly\@NL negligent acts) or agreed to in writing, shall any Contributor be\@NL liable to You for damages, including any direct, indirect, special,\@NL incidental, or consequential damages of any character arising as a\@NL result of this License or out of the use or inability to use the\@NL Work (including but not limited to damages for loss of goodwill,\@NL work stoppage, computer failure or malfunction, or any and all\@NL other commercial damages or losses), even if such Contributor\@NL has been advised of the possibility of such damages.\@NL9. Accepting Warranty or Additional Liability. While redistributing\@NL the Work or Derivative Works thereof, You may choose to offer,\@NL and charge a fee for, acceptance of support, warranty, indemnity,\@NL or other liability obligations and/or rights consistent with this\@NL License. However, in accepting such obligations, You may act only\@NL on Your own behalf and on Your sole responsibility, not on behalf\@NL of any other Contributor, and only if You agree to indemnify,\@NL defend, and hold each Contributor harmless for any liability\@NL incurred by, or claims asserted against, such Contributor by reason\@NL of your accepting any such warranty or additional liability.\@NLEND OF TERMS AND CONDITIONS\@NLAPPENDIX: How to apply the Apache License to your work.\@NL To apply the Apache License to your work, attach the following\@NL boilerplate notice, with the fields enclosed by brackets ""[]""\@NL replaced with your own identifying information. (Don't include\@NL the brackets!) The text should be enclosed in the appropriate\@NL comment syntax for the file format. We also recommend that a\@NL file or class name and description of purpose be included on the\@NL same ""printed page"" as the copyright notice for easier\@NL identification within third-party archives.\@NLCopyright [yyyy] [name of copyright owner]\@NLLicensed under the Apache License, Version 2.0 (the ""License"");\@NLyou may not use this file except in compliance with the License.\@NLYou may obtain a copy of the License at\@NL http://www.apache.org/licenses/LICENSE-2.0\@NLUnless required by applicable law or agreed to in writing, software\@NLdistributed under the License is distributed on an ""AS IS"" BASIS,\@NLWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\@NLSee the License for the specific language governing permissions and\@NLlimitations under the License.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/addressable-2.6.0
animate.css,3.3.0,MIT,https://github.com/daneden/animate.css,"",/Users/scott/Workspace/Helpy/helpy/vendor/assets/components/animate.css
arel,6.0.4,MIT,https://github.com/rails/arel,"Copyright (c) 2007-2010 Nick Kallen, Bryan Helmkamp, Emilio Tagua, Aaron Patterson\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/arel-6.0.4
attachinary,1.3.1,MIT,"","Copyright 2012 Milovan Zogovic\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/attachinary-1.3.1
autolink,1.0.1,MIT,https://github.com/bryanwoods/autolink-js,"",/Users/scott/Workspace/Helpy/helpy/vendor/assets/components/autolink
autoprefixer-rails,9.5.0,MIT,https://github.com/ai/autoprefixer-rails,"The MIT License (MIT)\@NLCopyright 2013 Andrey Sitnik <[email protected]>\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of\@NLthis software and associated documentation files (the ""Software""), to deal in\@NLthe Software without restriction, including without limitation the rights to\@NLuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\@NLthe Software, and to permit persons to whom the Software is furnished to do so,\@NLsubject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all\@NLcopies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\@NLFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\@NLCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\@NLIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\@NLCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/autoprefixer-rails-9.5.0
aws_cf_signer,0.1.3,MIT,"","",
axiom-types,0.1.1,MIT,https://github.com/dkubb/axiom-types,"Copyright (c) 2013 Dan Kubb\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/axiom-types-0.1.1
bcrypt,3.1.12,MIT,https://github.com/codahale/bcrypt-ruby,"(The MIT License)\@NLCopyright 2007-2011:\@NL* Coda Hale <[email protected]>\@NLC implementation of the BCrypt algorithm by Solar Designer and placed in the\@NLpublic domain.\@NLjBCrypt is Copyright (c) 2006 Damien Miller <[email protected]>.\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL'Software'), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\@NLIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\@NLCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\@NLTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\@NLSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/bcrypt-3.1.12
best_in_place,3.1.1,MIT,"","",
bootstrap-datepicker-rails,1.8.0.1,MIT,https://github.com/Nerian/bootstrap-datepicker-rails,"# Bootstrap Datepicker for Rails\@NL[![Gem Version](https://badge.fury.io/rb/bootstrap-datepicker-rails.png)](http://badge.fury.io/rb/bootstrap-datepicker-rails)\@NL[![endorse](https://api.coderwall.com/nerian/endorsecount.png)](https://coderwall.com/nerian)\@NLbootstrap-datepicker-rails project integrates a datepicker with Rails 3 assets pipeline.\@NLhttp://github.com/Nerian/bootstrap-datepicker-rails\@NLhttps://github.com/eternicode/bootstrap-datepicker\@NL## Rails > 3.1\@NLInclude bootstrap-datepicker-rails in Gemfile;\@NL``` ruby\@NLgem 'bootstrap-datepicker-rails'\@NL```\@NLor you can install from latest build;\@NL``` ruby\@NLgem 'bootstrap-datepicker-rails', :require => 'bootstrap-datepicker-rails',\@NL :git => 'git://github.com/Nerian/bootstrap-datepicker-rails.git'\@NL```\@NLand run bundle install.\@NL## Configuration\@NLAdd this line to app/assets/stylesheets/application.css\@NL``` css\@NL *= require bootstrap-datepicker\@NL # Or if using bootstrap v3:\@NL *= require bootstrap-datepicker3\@NL```\@NLAdd this line to app/assets/javascripts/application.js\@NL``` javascript\@NL//= require bootstrap-datepicker\@NL```\@NLYou can fine tune the included files to suit your needs.\@NL```javascript\@NL//= require bootstrap-datepicker/core\@NL//= require bootstrap-datepicker/locales/bootstrap-datepicker.es.js\@NL//= require bootstrap-datepicker/locales/bootstrap-datepicker.fr.js\@NL```\@NL## Using bootstrap-datepicker-rails\@NLJust use the simple ```data-provide='datepicker'``` attribute.\@NL```html\@NL<input type=""text"" data-provide='datepicker' >\@NL```\@NLOr call datepicker() with any selector.\@NL```html\@NL<input type=""text"" class='datepicker' >\@NL<script type=""text/javascript"">\@NL $(document).ready(function(){\@NL $('.datepicker').datepicker();\@NL });\@NL</script>\@NL```\@NLExamples:\@NLhttp://eternicode.github.io/bootstrap-datepicker/\@NLThere are a lot of options you can pass to datepicker(). They are documented at [https://github.com/eternicode/bootstrap-datepicker](https://github.com/eternicode/bootstrap-datepicker)\@NL## Updating the assets\@NLPlease use the rake task to update the assets.\@NLExamples :\@NL```bash\@NLrake update # Update the assets with the latest tag source code on master\@NLrake update v1.4.0 # Update the assets with the specified tag source code\@NL```\@NL## Questions? Bugs?\@NLUse Github Issues.\@NL## License\@NLCopyright (c) 2014 Gonzalo RodrÃguez-Baltanás DÃaz\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ""Software""), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/bootstrap-datepicker-rails-1.8.0.1
bootstrap-icon-chooser,,MIT,https://github.com/scott/bootstrap-icon-chooser,"Copyright 2015-2019 Tito433, certain modifications Scott Miller\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ""Software""), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/Workspace/Helpy/helpy/vendor/assets/components/bootstrap-icon-chooser
bootstrap-sass,3.4.1,MIT,https://github.com/twbs/bootstrap-sass,"The MIT License (MIT)\@NLCopyright (c) 2011-2016 Twitter, Inc\@NLCopyright (c) 2011-2016 The Bootstrap Authors\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/bootstrap-sass-3.4.1
bootstrap-select-rails,1.12.4,MIT,https://github.com/Slashek/bootstrap-select-rails,"Copyright (c) 2013 Maciej Krajowski-Kukiel\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL# Bootstrap::Select::Rails\@NLAssets for https://github.com/silviomoreto/bootstrap-select - see it for details\@NLadd to application.js and application.css something like\@NL //= require bootstrap-select\@NLAlso, you must require at least the *alert* and *dropdown* bootstrap components.\@NLFor example, if using\@NL[bootstrap-sass](https://github.com/twbs/bootstrap-sass):\@NL //= require bootstrap/alert\@NL //= require bootstrap/dropdown\@NL## Installation\@NLAdd this line to your application's Gemfile:\@NL gem 'bootstrap-select-rails'\@NLAnd then execute:\@NL $ bundle\@NLOr install it yourself as:\@NL $ gem install bootstrap-select-rails\@NL## Usage\@NLTODO: Write usage instructions here\@NL## Contributing\@NL1. Fork it\@NL2. Create your feature branch (`git checkout -b my-new-feature`)\@NL3. Commit your changes (`git commit -am 'Add some feature'`)\@NL4. Push to the branch (`git push origin my-new-feature`)\@NL5. Create new Pull Request\@NL# Copyright and license\@NLCopyright (C) 2013 bootstrap-select-rails\@NLLicensed under the MIT license.\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ""Software""), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/bootstrap-select-rails-1.12.4
bootstrap-social,4.10.1,MIT,https://github.com/lipis/bootstrap-social,"The MIT License (MIT)\@NLCopyright (c) 2013-2015 Panayiotis Lipiridis\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of\@NLthis software and associated documentation files (the ""Software""), to deal in\@NLthe Software without restriction, including without limitation the rights to\@NLuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\@NLthe Software, and to permit persons to whom the Software is furnished to do so,\@NLsubject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all\@NLcopies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\@NLFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\@NLCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\@NLIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\@NLCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/Workspace/Helpy/helpy/vendor/assets/components/bootstrap-social
bootstrap-switch-rails,3.3.3,"MIT, Apache License v2.0",https://github.com/manuelvanrijn/bootstrap-switch-rails,"Copyright (c) 2013 Manuel van Rijn\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL# bootstrap-switch-rails [![Gem Version](https://badge.fury.io/rb/bootstrap-switch-rails.png)](http://badge.fury.io/rb/bootstrap-switch-rails)\@NLbootstrap-switch-rails provides the [bootstrap-switch](http://www.bootstrap-switch.org/)\@NLplugin as a Rails engine to use it within the asset pipeline.\@NL## Installation\@NLAdd this to your Gemfile:\@NL```ruby\@NLgem ""bootstrap-switch-rails""\@NL```\@NLand run `bundle install`.\@NL## Usage\@NLIn your `application.js`, include the following:\@NL```js\@NL//= require bootstrap-switch\@NL```\@NLIn your `application.css`, include the following:\@NL```css\@NL/*\@NL * for bootstrap3\@NL *= require bootstrap3-switch\@NL *\@NL * or for bootstrap2\@NL *= require bootstrap2-switch\@NL */\@NL *= require bootstrap-switch\@NL```\@NLor in any `SASS` file, include the following:\@NL```css\@NL/* for bootstrap3 */\@NL@import ""bootstrap3-switch"";\@NL/* or for bootstrap2 */\@NL@import ""bootstrap2-switch"";\@NL```\@NL## Examples\@NLSee the [demo page of Mattia Larentis](http://www.bootstrap-switch.org/) for examples how to use the plugin\@NL## License\@NL* The [bootstrap-switch](http://www.bootstrap-switch.org/) plugin is licensed under the\@NL[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)\@NL* The [bootstrap-switch-rails](https://github.com/manuelvanrijn/bootstrap-switch-rails) project is\@NL licensed under the [MIT License](http://opensource.org/licenses/mit-license.html)\@NL## Contributing\@NL1. Fork it\@NL2. Create your feature branch (`git checkout -b my-new-feature`)\@NL3. Commit your changes (`git commit -am 'Add some feature'`)\@NL4. Push to the branch (`git push origin my-new-feature`)\@NL5. Create new Pull Request",/Users/scott/.rvm/gems/ruby-2.4.6/gems/bootstrap-switch-rails-3.3.3
bootstrap_form,2.7.0,MIT,http://github.com/bootstrap-ruby/rails-bootstrap-forms,"Copyright 2012-2014 Stephen Potenza <[email protected]>\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/bootstrap_form-2.7.0
builder,3.2.3,MIT,http://onestepback.org,"Copyright (c) 2003-2012 Jim Weirich ([email protected])\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL# Project: Builder\@NL## Goal\@NLProvide a simple way to create XML markup and data structures.\@NL## Classes\@NLBuilder::XmlMarkup:: Generate XML markup notation\@NLBuilder::XmlEvents:: Generate XML events (i.e. SAX-like)\@NL**Notes:**\@NL* An <tt>Builder::XmlTree</tt> class to generate XML tree\@NL (i.e. DOM-like) structures is also planned, but not yet implemented.\@NL Also, the events builder is currently lagging the markup builder in\@NL features.\@NL## Usage\@NL```ruby\@NL require 'rubygems'\@NL require_gem 'builder', '~> 2.0'\@NL builder = Builder::XmlMarkup.new\@NL xml = builder.person { |b| b.name(""Jim""); b.phone(""555-1234"") }\@NL xml #=> <person><name>Jim</name><phone>555-1234</phone></person>\@NL```\@NLor\@NL```ruby\@NL require 'rubygems'\@NL require_gem 'builder'\@NL builder = Builder::XmlMarkup.new(:target=>STDOUT, :indent=>2)\@NL builder.person { |b| b.name(""Jim""); b.phone(""555-1234"") }\@NL #\@NL # Prints:\@NL # <person>\@NL # <name>Jim</name>\@NL # <phone>555-1234</phone>\@NL # </person>\@NL```\@NL## Compatibility\@NL### Version 2.0.0 Compatibility Changes\@NLVersion 2.0.0 introduces automatically escaped attribute values for\@NLthe first time. Versions prior to 2.0.0 did not insert escape\@NLcharacters into attribute values in the XML markup. This allowed\@NLattribute values to explicitly reference entities, which was\@NLoccasionally used by a small number of developers. Since strings\@NLcould always be explicitly escaped by hand, this was not a major\@NLrestriction in functionality.\@NLHowever, it did surprise most users of builder. Since the body text is\@NLnormally escaped, everybody expected the attribute values to be\@NLescaped as well. Escaped attribute values were the number one support\@NLrequest on the 1.x Builder series.\@NLStarting with Builder version 2.0.0, all attribute values expressed as\@NLstrings will be processed and the appropriate characters will be\@NLescaped (e.g. ""&"" will be translated to ""&amp;""). Attribute values\@NLthat are expressed as Symbol values will not be processed for escaped\@NLcharacters and will be unchanged in output. (Yes, this probably counts\@NLas Symbol abuse, but the convention is convenient and flexible).\@NLExample:\@NL```ruby\@NL xml = Builder::XmlMarkup.new\@NL xml.sample(:escaped=>""This&That"", :unescaped=>:""Here&There"")\@NL xml.target! =>\@NL <sample escaped=""This&That"" unescaped=""Here&There""/>\@NL```\@NL### Version 1.0.0 Compatibility Changes\@NLVersion 1.0.0 introduces some changes that are not backwards\@NLcompatible with earlier releases of builder. The main areas of\@NLincompatibility are:\@NL* Keyword based arguments to +new+ (rather than positional based). It\@NL was found that a developer would often like to specify indentation\@NL without providing an explicit target, or specify a target without\@NL indentation. Keyword based arguments handle this situation nicely.\@NL* Builder must now be an explicit target for markup tags. Instead of\@NL writing\@NL```ruby\@NL xml_markup = Builder::XmlMarkup.new\@NL xml_markup.div { strong(""text"") }\@NL```\@NL you need to write\@NL```ruby\@NL xml_markup = Builder::XmlMarkup.new\@NL xml_markup.div { xml_markup.strong(""text"") }\@NL```\@NL* The builder object is passed as a parameter to all nested markup\@NL blocks. This allows you to create a short alias for the builder\@NL object that can be used within the block. For example, the previous\@NL example can be written as:\@NL```ruby\@NL xml_markup = Builder::XmlMarkup.new\@NL xml_markup.div { |xml| xml.strong(""text"") }\@NL```\@NL* If you have both a pre-1.0 and a post-1.0 gem of builder installed,\@NL you can choose which version to use through the RubyGems\@NL +require_gem+ facility.\@NL```ruby\@NL require_gem 'builder', ""~> 0.0"" # Gets the old version\@NL require_gem 'builder', ""~> 1.0"" # Gets the new version\@NL```\@NL## Features\@NL* XML Comments are supported ...\@NL```ruby\@NL xml_markup.comment! ""This is a comment""\@NL #=> <!-- This is a comment -->\@NL```\@NL* XML processing instructions are supported ...\@NL```ruby\@NL xml_markup.instruct! :xml, :version=>""1.0"", :encoding=>""UTF-8""\@NL #=> <?xml version=""1.0"" encoding=""UTF-8""?>\@NL```\@NL If the processing instruction is omitted, it defaults to ""xml"".\@NL When the processing instruction is ""xml"", the defaults attributes\@NL are:\@NL <b>version</b>: 1.0\@NL <b>encoding</b>: ""UTF-8""\@NL (NOTE: if the encoding is set to ""UTF-8"" and $KCODE is set to\@NL ""UTF8"", then Builder will emit UTF-8 encoded strings rather than\@NL encoding non-ASCII characters as entities.)\@NL* XML entity declarations are now supported to a small degree.\@NL```ruby\@NL xml_markup.declare! :DOCTYPE, :chapter, :SYSTEM, ""../dtds/chapter.dtd""\@NL #=> <!DOCTYPE chapter SYSTEM ""../dtds/chapter.dtd"">\@NL```\@NL The parameters to a declare! method must be either symbols or\@NL strings. Symbols are inserted without quotes, and strings are\@NL inserted with double quotes. Attribute-like arguments in hashes are\@NL not allowed.\@NL If you need to have an argument to declare! be inserted without\@NL quotes, but the argument does not conform to the typical Ruby\@NL syntax for symbols, then use the :""string"" form to specify a symbol.\@NL For example:\@NL```ruby\@NL xml_markup.declare! :ELEMENT, :chapter, :""(title,para+)""\@NL #=> <!ELEMENT chapter (title,para+)>\@NL```\@NL Nested entity declarations are allowed. For example:\@NL```ruby\@NL @xml_markup.declare! :DOCTYPE, :chapter do |x|\@NL x.declare! :ELEMENT, :chapter, :""(title,para+)""\@NL x.declare! :ELEMENT, :title, :""(#PCDATA)""\@NL x.declare! :ELEMENT, :para, :""(#PCDATA)""\@NL end\@NL #=>\@NL <!DOCTYPE chapter [\@NL <!ELEMENT chapter (title,para+)>\@NL <!ELEMENT title (#PCDATA)>\@NL <!ELEMENT para (#PCDATA)>\@NL ]>\@NL```\@NL* Some support for XML namespaces is now available. If the first\@NL argument to a tag call is a symbol, it will be joined to the tag to\@NL produce a namespace:tag combination. It is easier to show this than\@NL describe it.\@NL```ruby\@NL xml.SOAP :Envelope do ... end\@NL```\@NL Just put a space before the colon in a namespace to produce the\@NL right form for builder (e.g. ""<tt>SOAP:Envelope</tt>"" =>\@NL ""<tt>xml.SOAP :Envelope</tt>"")\@NL* String attribute values are <em>now</em> escaped by default by\@NL Builder (<b>NOTE:</b> this is _new_ behavior as of version 2.0).\@NL However, occasionally you need to use entities in attribute values.\@NL Using a symbol (rather than a string) for an attribute value will\@NL cause Builder to not run its quoting/escaping algorithm on that\@NL particular value.\@NL (<b>Note:</b> The +escape_attrs+ option for builder is now\@NL obsolete).\@NL Example:\@NL```ruby\@NL xml = Builder::XmlMarkup.new\@NL xml.sample(:escaped=>""This&That"", :unescaped=>:""Here&There"")\@NL xml.target! =>\@NL <sample escaped=""This&That"" unescaped=""Here&There""/>\@NL```\@NL* UTF-8 Support\@NL Builder correctly translates UTF-8 characters into valid XML. (New\@NL in version 2.0.0). Thanks to Sam Ruby for the translation code.\@NL You can get UTF-8 encoded output by making sure that the XML\@NL encoding is set to ""UTF-8"" and that the $KCODE variable is set to\@NL ""UTF8"".\@NL```ruby\@NL $KCODE = 'UTF8'\@NL xml = Builder::Markup.new\@NL xml.instruct!(:xml, :encoding => ""UTF-8"")\@NL xml.sample(""Iñtërnâtiônà l"")\@NL xml.target! =>\@NL ""<sample>Iñtërnâtiônà l</sample>""\@NL```\@NL## Links\@NL| Description | Link |\@NL| :----: | :----: |\@NL| Documents | http://builder.rubyforge.org/ |\@NL| Github Clone | git://github.com/jimweirich/builder.git |\@NL| Issue / Bug Reports | https://github.com/jimweirich/builder/issues?state=open |\@NL## Contact\@NL| Description | Value |\@NL| :----: | :----: |\@NL| Author | Jim Weirich |\@NL| Email | [email protected] |\@NL| Home Page | http://onestepback.org |\@NL| License | MIT Licence (http://www.opensource.org/licenses/mit-license.html) |",/Users/scott/.rvm/gems/ruby-2.4.6/gems/builder-3.2.3
bulk_insert,1.7.0,MIT,http://github.com/jamis/bulk_insert,"Copyright 2015 Jamis Buck\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL# BulkInsert\@NLA little ActiveRecord extension for helping to insert lots of rows in a\@NLsingle insert statement.\@NL## Installation\@NLAdd it to your Gemfile:\@NL```ruby\@NLgem 'bulk_insert'\@NL```\@NL## Usage\@NLBulkInsert adds a new class method to your ActiveRecord models:\@NL```ruby\@NLclass Book < ActiveRecord::Base\@NLend\@NLbook_attrs = ... # some array of hashes, for instance\@NLBook.bulk_insert do |worker|\@NL book_attrs.each do |attrs|\@NL worker.add(attrs)\@NL end\@NLend\@NL```\@NLAll of those `#add` calls will be accumulated into a single SQL insert\@NLstatement, vastly improving the performance of multiple sequential\@NLinserts (think data imports and the like).\@NLIf you don't like using a block API, you can also simply pass an array\@NLof rows to be inserted:\@NL```ruby\@NLbook_attrs = ... # some array of hashes, for instance\@NLBook.bulk_insert values: book_attrs\@NL```\@NLBy default, the columns to be inserted will be all columns in the table,\@NLminus the `id` column, but if you want, you can explicitly enumerate\@NLthe columns:\@NL```ruby\@NLBook.bulk_insert(:title, :author) do |worker|\@NL # specify a row as an array of values...\@NL worker.add [""Eye of the World"", ""Robert Jordan""]\@NL # or as a hash\@NL worker.add title: ""Lord of Light"", author: ""Roger Zelazny""\@NLend\@NL```\@NLIt will automatically set `created_at`/`updated_at` columns to the current\@NLdate, as well.\@NL```ruby\@NLBook.bulk_insert(:title, :author, :created_at, :updated_at) do |worker|\@NL # specify created_at/updated_at explicitly...\@NL worker.add [""The Chosen"", ""Chaim Potok"", Time.now, Time.now]\@NL # or let BulkInsert set them by default...\@NL worker.add [""Hello Ruby"", ""Linda Liukas""]\@NLend\@NL```\@NLSimilarly, if a value is omitted, BulkInsert will use whatever default\@NLvalue is defined for that column in the database:\@NL```ruby\@NL# create_table :books do |t|\@NL# ...\@NL# t.string ""medium"", default: ""paper""\@NL# ...\@NL# end\@NLBook.bulk_insert(:title, :author, :medium) do |worker|\@NL worker.add title: ""Ender's Game"", author: ""Orson Scott Card""\@NLend\@NLBook.first.medium #-> ""paper""\@NL```\@NLBy default, the batch is always saved when the block finishes, but you\@NLcan explicitly save inside the block whenever you want, by calling\@NL`#save!` on the worker:\@NL```ruby\@NLBook.bulk_insert do |worker|\@NL worker.add(...)\@NL worker.add(...)\@NL worker.save!\@NL worker.add(...)\@NL #...\@NLend\@NL```\@NLThat will save the batch as it has been defined to that point, and then\@NLempty the batch so that you can add more rows to it if you want. Note\@NLthat all records saved together will have the same created_at/updated_at\@NLtimestamp (unless one was explicitly set).\@NL### Batch Set Size\@NLBy default, the size of the insert is limited to 500 rows at a time.\@NLThis is called the _set size_. If you add another row that causes the\@NLset to exceed the set size, the insert statement is automatically built\@NLand executed, and the batch is reset.\@NLIf you want a larger (or smaller) set size, you can specify it in\@NLtwo ways:\@NL```ruby\@NL# specify set_size when initializing the bulk insert...\@NLBook.bulk_insert(set_size: 100) do |worker|\@NL # ...\@NLend\@NL# specify it on the worker directly...\@NLBook.bulk_insert do |worker|\@NL worker.set_size = 100\@NL # ...\@NLend\@NL```\@NL### Insert Ignore\@NLBy default, when an insert fails the whole batch of inserts fail. The\@NL_ignore_ option ignores the inserts that would have failed (because of\@NLduplicate keys or a null in column with a not null constraint) and\@NLinserts the rest of the batch.\@NLThis is not the default because no errors are raised for the bad\@NLinserts in the batch.\@NL```ruby\@NLdestination_columns = [:title, :author]\@NL# Ignore bad inserts in the batch\@NLBook.bulk_insert(*destination_columns, ignore: true) do |worker|\@NL worker.add(...)\@NL worker.add(...)\@NL # ...\@NLend\@NL```\@NL### Update Duplicates (MySQL)\@NLIf you don't want to ignore duplicate rows but instead want to update them\@NLthen you can use the _update_duplicates_ option. Set this option to true\@NLand when a duplicate row is found the row will be updated with your new\@NLvalues. Default value for this option is false.\@NL```ruby\@NLdestination_columns = [:title, :author]\@NL# Update duplicate rows\@NLBook.bulk_insert(*destination_columns, update_duplicates: true) do |worker|\@NL worker.add(...)\@NL worker.add(...)\@NL # ...\@NLend\@NL```\@NL### Return Primary Keys (PostgreSQL, PostGIS)\@NLIf you want the worker to store primary keys of inserted records, then you can\@NLuse the _return_primary_keys_ option. The worker will store a `result_sets`\@NLarray of `ActiveRecord::Result` objects. Each `ActiveRecord::Result` object\@NLwill contain the primary keys of a batch of inserted records.\@NL```ruby\@NLworker = Book.bulk_insert(*destination_columns, return_primary_keys: true) do\@NL|worker|\@NL worker.add(...)\@NL worker.add(...)\@NL # ...\@NLend\@NLworker.result_sets\@NL```\@NL## License\@NLBulkInsert is released under the MIT license (see MIT-LICENSE) by\@NLJamis Buck ([email protected]).",/Users/scott/.rvm/gems/ruby-2.4.6/gems/bulk_insert-1.7.0
bundler,1.17.2,MIT,http://bundler.io,"Portions copyright (c) 2010 Andre Arko \@NLPortions copyright (c) 2009 Engine Yard\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NLThe MIT License (MIT)\@NLCopyright (c) <%= Time.now.year %> <%= config[:author] %>\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/bundler-1.17.2
carrierwave,1.3.1,MIT,https://github.com/carrierwaveuploader/carrierwave,"# CarrierWave\@NLThis gem provides a simple and extremely flexible way to upload files from Ruby applications.\@NLIt works well with Rack based web applications, such as Ruby on Rails.\@NL[![Build Status](https://travis-ci.org/carrierwaveuploader/carrierwave.svg?branch=master)](http://travis-ci.org/carrierwaveuploader/carrierwave)\@NL[![Code Climate](https://codeclimate.com/github/carrierwaveuploader/carrierwave.svg)](https://codeclimate.com/github/carrierwaveuploader/carrierwave)\@NL[![SemVer](https://api.dependabot.com/badges/compatibility_score?dependency-name=carrierwave&package-manager=bundler&version-scheme=semver)](https://dependabot.com/compatibility-score.html?dependency-name=carrierwave&package-manager=bundler&version-scheme=semver)\@NL## Information\@NL* RDoc documentation [available on RubyDoc.info](http://rubydoc.info/gems/carrierwave/frames)\@NL* Source code [available on GitHub](http://github.com/carrierwaveuploader/carrierwave)\@NL* More information, known limitations, and how-tos [available on the wiki](https://github.com/carrierwaveuploader/carrierwave/wiki)\@NL## Getting Help\@NL* Please ask the community on [Stack Overflow](https://stackoverflow.com/questions/tagged/carrierwave) for help if you have any questions. Please do not post usage questions on the issue tracker.\@NL* Please report bugs on the [issue tracker](http://github.com/carrierwaveuploader/carrierwave/issues) but read the ""getting help"" section in the wiki first.\@NL## Installation\@NLInstall the latest release:\@NL```\@NL$ gem install carrierwave\@NL```\@NLIn Rails, add it to your Gemfile:\@NL```ruby\@NLgem 'carrierwave', '~> 1.0'\@NL```\@NLFinally, restart the server to apply the changes.\@NLAs of version 1.0, CarrierWave requires Rails 4.0 or higher and Ruby 2.0\@NLor higher. If you're on Rails 3, you should use v0.11.0.\@NL## Getting Started\@NLStart off by generating an uploader:\@NL rails generate uploader Avatar\@NLthis should give you a file in:\@NL app/uploaders/avatar_uploader.rb\@NLCheck out this file for some hints on how you can customize your uploader. It\@NLshould look something like this:\@NL```ruby\@NLclass AvatarUploader < CarrierWave::Uploader::Base\@NL storage :file\@NLend\@NL```\@NLYou can use your uploader class to store and retrieve files like this:\@NL```ruby\@NLuploader = AvatarUploader.new\@NLuploader.store!(my_file)\@NLuploader.retrieve_from_store!('my_file.png')\@NL```\@NLCarrierWave gives you a `store` for permanent storage, and a `cache` for\@NLtemporary storage. You can use different stores, including filesystem\@NLand cloud storage.\@NLMost of the time you are going to want to use CarrierWave together with an ORM.\@NLIt is quite simple to mount uploaders on columns in your model, so you can\@NLsimply assign files and get going:\@NL### ActiveRecord\@NLMake sure you are loading CarrierWave after loading your ORM, otherwise you'll\@NLneed to require the relevant extension manually, e.g.:\@NL```ruby\@NLrequire 'carrierwave/orm/activerecord'\@NL```\@NLAdd a string column to the model you want to mount the uploader by creating\@NLa migration:\@NL rails g migration add_avatar_to_users avatar:string\@NL rails db:migrate\@NLOpen your model file and mount the uploader:\@NL```ruby\@NLclass User < ActiveRecord::Base\@NL mount_uploader :avatar, AvatarUploader\@NLend\@NL```\@NLNow you can cache files by assigning them to the attribute, they will\@NLautomatically be stored when the record is saved.\@NL```ruby\@NLu = User.new\@NLu.avatar = params[:file] # Assign a file like this, or\@NL# like this\@NLFile.open('somewhere') do |f|\@NL u.avatar = f\@NLend\@NLu.save!\@NLu.avatar.url # => '/url/to/file.png'\@NLu.avatar.current_path # => 'path/to/file.png'\@NLu.avatar_identifier # => 'file.png'\@NL```\@NL**Note**: `u.avatar` will never return nil, even if there is no photo associated to it.\@NLTo check if a photo was saved to the model, use `u.avatar.file.nil?` instead.\@NL### DataMapper, Mongoid, Sequel\@NLOther ORM support has been extracted into separate gems:\@NL* [carrierwave-datamapper](https://github.com/carrierwaveuploader/carrierwave-datamapper)\@NL* [carrierwave-mongoid](https://github.com/carrierwaveuploader/carrierwave-mongoid)\@NL* [carrierwave-sequel](https://github.com/carrierwaveuploader/carrierwave-sequel)\@NLThere are more extensions listed in [the wiki](https://github.com/carrierwaveuploader/carrierwave/wiki)\@NL## Multiple file uploads\@NLCarrierWave also has convenient support for multiple file upload fields.\@NL### ActiveRecord\@NLAdd a column which can store an array. This could be an array column or a JSON\@NLcolumn for example. Your choice depends on what your database supports. For\@NLexample, create a migration like this:\@NL#### For databases with ActiveRecord json data type support (e.g. PostgreSQL, MySQL)\@NL rails g migration add_avatars_to_users avatars:json\@NL rails db:migrate\@NL#### For database without ActiveRecord json data type support (e.g. SQLite)\@NL rails g migration add_avatars_to_users avatars:string\@NL rails db:migrate\@NL__Note__: JSON datatype doesn't exists in SQLite adapter, that's why you can use a string datatype which will be serialized in model.\@NLOpen your model file and mount the uploader:\@NL```ruby\@NLclass User < ActiveRecord::Base\@NL mount_uploaders :avatars, AvatarUploader\@NL serialize :avatars, JSON # If you use SQLite, add this line.\@NLend\@NL```\@NLMake sure your file input fields are set up as multiple file fields. For\@NLexample in Rails you'll want to do something like this:\@NL```erb\@NL<%= form.file_field :avatars, multiple: true %>\@NL```\@NLAlso, make sure your upload controller permits the multiple file upload attribute, *pointing to an empty array in a hash*. For example:\@NL```ruby\@NLparams.require(:user).permit(:email, :first_name, :last_name, {avatars: []})\@NL```\@NLNow you can select multiple files in the upload dialog (e.g. SHIFT+SELECT), and they will\@NLautomatically be stored when the record is saved.\@NL```ruby\@NLu = User.new(params[:user])\@NLu.save!\@NLu.avatars[0].url # => '/url/to/file.png'\@NLu.avatars[0].current_path # => 'path/to/file.png'\@NLu.avatars[0].identifier # => 'file.png'\@NL```\@NL## Changing the storage directory\@NLIn order to change where uploaded files are put, just override the `store_dir`\@NLmethod:\@NL```ruby\@NLclass MyUploader < CarrierWave::Uploader::Base\@NL def store_dir\@NL 'public/my/upload/directory'\@NL end\@NLend\@NL```\@NLThis works for the file storage as well as Amazon S3 and Rackspace Cloud Files.\@NLDefine `store_dir` as `nil` if you'd like to store files at the root level.\@NLIf you store files outside the project root folder, you may want to define `cache_dir` in the same way:\@NL```ruby\@NLclass MyUploader < CarrierWave::Uploader::Base\@NL def cache_dir\@NL '/tmp/projectname-cache'\@NL end\@NLend\@NL```\@NL## Securing uploads\@NLCertain files might be dangerous if uploaded to the wrong location, such as PHP\@NLfiles or other script files. CarrierWave allows you to specify a whitelist of\@NLallowed extensions or content types.\@NLIf you're mounting the uploader, uploading a file with the wrong extension will\@NLmake the record invalid instead. Otherwise, an error is raised.\@NL```ruby\@NLclass MyUploader < CarrierWave::Uploader::Base\@NL def extension_whitelist\@NL %w(jpg jpeg gif png)\@NL end\@NLend\@NL```\@NLThe same thing could be done using content types.\@NLLet's say we need an uploader that accepts only images. This can be done like this\@NL```ruby\@NLclass MyUploader < CarrierWave::Uploader::Base\@NL def content_type_whitelist\@NL /image\//\@NL end\@NLend\@NL```\@NLYou can use a blacklist to reject content types.\@NLLet's say we need an uploader that reject JSON files. This can be done like this\@NL```ruby\@NLclass NoJsonUploader < CarrierWave::Uploader::Base\@NL def content_type_blacklist\@NL ['application/text', 'application/json']\@NL end\@NLend\@NL```\@NL### Filenames and unicode chars\@NLAnother security issue you should care for is the file names (see\@NL[Ruby On Rails Security Guide](http://guides.rubyonrails.org/security.html#file-uploads)).\@NLBy default, CarrierWave provides only English letters, arabic numerals and some symbols as\@NLwhite-listed characters in the file name. If you want to support local scripts (Cyrillic letters, letters with diacritics and so on), you\@NLhave to override `sanitize_regexp` method. It should return regular expression which would match\@NLall *non*-allowed symbols.\@NL```ruby\@NLCarrierWave::SanitizedFile.sanitize_regexp = /[^[:word:]\.\-\+]/\@NL```\@NLAlso make sure that allowing non-latin characters won't cause a compatibility issue with a third-party\@NLplugins or client-side software.\@NL## Setting the content type\@NLAs of v0.11.0, the `mime-types` gem is a runtime dependency and the content type is set automatically.\@NLYou no longer need to do this manually.\@NL## Adding versions\@NLOften you'll want to add different versions of the same file. The classic example is image thumbnails. There is built in support for this*:\@NL*Note:* You must have Imagemagick and MiniMagick installed to do image resizing. MiniMagick is a Ruby interface for Imagemagick which is a C program. This is why MiniMagick fails on 'bundle install' without Imagemagick installed.\@NLSome documentation refers to RMagick instead of MiniMagick but MiniMagick is recommended.\@NLTo install Imagemagick on OSX with homebrew type the following:\@NL```\@NL$ brew install imagemagick\@NL```\@NL```ruby\@NLclass MyUploader < CarrierWave::Uploader::Base\@NL include CarrierWave::MiniMagick\@NL process resize_to_fit: [800, 800]\@NL version :thumb do\@NL process resize_to_fill: [200,200]\@NL end\@NLend\@NL```\@NLWhen this uploader is used, an uploaded image would be scaled to be no larger\@NLthan 800 by 800 pixels. The original aspect ratio will be kept.\@NLA version called thumb is then created, which is scaled\@NLto exactly 200 by 200 pixels.\@NLIf you would like to crop images to a specific height and width you\@NLcan use the alternative option of '''resize_to_fill'''. It will make sure\@NLthat the width and height specified are filled, only cropping\@NLif the aspect ratio requires it.\@NLThe uploader could be used like this:\@NL```ruby\@NLuploader = AvatarUploader.new\@NLuploader.store!(my_file) # size: 1024x768\@NLuploader.url # => '/url/to/my_file.png' # size: 800x800\@NLuploader.thumb.url # => '/url/to/thumb_my_file.png' # size: 200x200\@NL```\@NLOne important thing to remember is that process is called *before* versions are\@NLcreated. This can cut down on processing cost.\@NLIt is possible to nest versions within versions:\@NL```ruby\@NLclass MyUploader < CarrierWave::Uploader::Base\@NL version :animal do\@NL version :human\@NL version :monkey\@NL version :llama\@NL end\@NLend\@NL```\@NL### Conditional versions\@NLOccasionally you want to restrict the creation of versions on certain\@NLproperties within the model or based on the picture itself.\@NL```ruby\@NLclass MyUploader < CarrierWave::Uploader::Base\@NL version :human, if: :is_human?\@NL version :monkey, if: :is_monkey?\@NL version :banner, if: :is_landscape?\@NLprivate\@NL def is_human? picture\@NL model.can_program?(:ruby)\@NL end\@NL def is_monkey? picture\@NL model.favorite_food == 'banana'\@NL end\@NL def is_landscape? picture\@NL image = MiniMagick::Image.open(picture.path)\@NL image[:width] > image[:height]\@NL end\@NLend\@NL```\@NLThe `model` variable points to the instance object the uploader is attached to.\@NL### Create versions from existing versions\@NLFor performance reasons, it is often useful to create versions from existing ones\@NLinstead of using the original file. If your uploader generates several versions\@NLwhere the next is smaller than the last, it will take less time to generate from\@NLa smaller, already processed image.\@NL```ruby\@NLclass MyUploader < CarrierWave::Uploader::Base\@NL version :thumb do\@NL process resize_to_fill: [280, 280]\@NL end\@NL version :small_thumb, from_version: :thumb do\@NL process resize_to_fill: [20, 20]\@NL end\@NLend\@NL```\@NLThe option `:from_version` uses the file cached in the `:thumb` version instead\@NLof the original version, potentially resulting in faster processing.\@NL## Making uploads work across form redisplays\@NLOften you'll notice that uploaded files disappear when a validation fails.\@NLCarrierWave has a feature that makes it easy to remember the uploaded file even\@NLin that case. Suppose your `user` model has an uploader mounted on `avatar`\@NLfile, just add a hidden field called `avatar_cache` (don't forget to add it to\@NLthe attr_accessible list as necessary). In Rails, this would look like this:\@NL```erb\@NL<%= form_for @user, html: { multipart: true } do |f| %>\@NL <p>\@NL <label>My Avatar</label>\@NL <%= f.file_field :avatar %>\@NL <%= f.hidden_field :avatar_cache %>\@NL </p>\@NL<% end %>\@NL````\@NLIt might be a good idea to show the user that a file has been uploaded, in the\@NLcase of images, a small thumbnail would be a good indicator:\@NL```erb\@NL<%= form_for @user, html: { multipart: true } do |f| %>\@NL <p>\@NL <label>My Avatar</label>\@NL <%= image_tag(@user.avatar_url) if @user.avatar? %>\@NL <%= f.file_field :avatar %>\@NL <%= f.hidden_field :avatar_cache %>\@NL </p>\@NL<% end %>\@NL```\@NL## Removing uploaded files\@NLIf you want to remove a previously uploaded file on a mounted uploader, you can\@NLeasily add a checkbox to the form which will remove the file when checked.\@NL```erb\@NL<%= form_for @user, html: { multipart: true } do |f| %>\@NL <p>\@NL <label>My Avatar</label>\@NL <%= image_tag(@user.avatar_url) if @user.avatar? %>\@NL <%= f.file_field :avatar %>\@NL </p>\@NL <p>\@NL <label>\@NL <%= f.check_box :remove_avatar %>\@NL Remove avatar\@NL </label>\@NL </p>\@NL<% end %>\@NL```\@NLIf you want to remove the file manually, you can call <code>remove_avatar!</code>, then save the object.\@NL```erb\@[email protected]_avatar!\@[email protected]\@NL#=> true\@NL```\@NL## Uploading files from a remote location\@NLYour users may find it convenient to upload a file from a location on the Internet\@NLvia a URL. CarrierWave makes this simple, just add the appropriate attribute to your\@NLform and you're good to go:\@NL```erb\@NL<%= form_for @user, html: { multipart: true } do |f| %>\@NL <p>\@NL <label>My Avatar URL:</label>\@NL <%= image_tag(@user.avatar_url) if @user.avatar? %>\@NL <%= f.text_field :remote_avatar_url %>\@NL </p>\@NL<% end %>\@NL```\@NLIf you're using ActiveRecord, CarrierWave will indicate invalid URLs and download\@NLfailures automatically with attribute validation errors. If you aren't, or you\@NLdisable CarrierWave's `validate_download` option, you'll need to handle those\@NLerrors yourself.\@NL## Providing a default URL\@NLIn many cases, especially when working with images, it might be a good idea to\@NLprovide a default url, a fallback in case no file has been uploaded. You can do\@NLthis easily by overriding the `default_url` method in your uploader:\@NL```ruby\@NLclass MyUploader < CarrierWave::Uploader::Base\@NL def default_url(*args)\@NL ""/images/fallback/"" + [version_name, ""default.png""].compact.join('_')\@NL end\@NLend\@NL```\@NLOr if you are using the Rails asset pipeline:\@NL```ruby\@NLclass MyUploader < CarrierWave::Uploader::Base\@NL def default_url(*args)\@NL ActionController::Base.helpers.asset_path(""fallback/"" + [version_name, ""default.png""].compact.join('_'))\@NL end\@NLend\@NL```\@NL## Recreating versions\@NLYou might come to a situation where you want to retroactively change a version\@NLor add a new one. You can use the `recreate_versions!` method to recreate the\@NLversions from the base file. This uses a naive approach which will re-upload and\@NLprocess the specified version or all versions, if none is passed as an argument.\@NLWhen you are generating random unique filenames you have to call `save!` on\@NLthe model after using `recreate_versions!`. This is necessary because\@NL`recreate_versions!` doesn't save the new filename to the database. Calling\@NL`save!` yourself will prevent that the database and file system are running\@NLout of sync.\@NL```ruby\@NLinstance = MyUploader.new\@NLinstance.recreate_versions!(:thumb, :large)\@NL```\@NLOr on a mounted uploader:\@NL```ruby\@NLUser.find_each do |user|\@NL user.avatar.recreate_versions!\@NLend\@NL```\@NLNote: `recreate_versions!` will throw an exception on records without an image. To avoid this, scope the records to those with images or check if an image exists within the block. If you're using ActiveRecord, recreating versions for a user avatar might look like this:\@NL```ruby\@NLUser.find_each do |user|\@NL user.avatar.recreate_versions! if user.avatar?\@NLend\@NL```\@NL## Configuring CarrierWave\@NLCarrierWave has a broad range of configuration options, which you can configure,\@NLboth globally and on a per-uploader basis:\@NL```ruby\@NLCarrierWave.configure do |config|\@NL config.permissions = 0666\@NL config.directory_permissions = 0777\@NL config.storage = :file\@NLend\@NL```\@NLOr alternatively:\@NL```ruby\@NLclass AvatarUploader < CarrierWave::Uploader::Base\@NL permissions 0777\@NLend\@NL```\@NLIf you're using Rails, create an initializer for this:\@NL config/initializers/carrierwave.rb\@NLIf you want CarrierWave to fail noisily in development, you can change these configs in your environment file:\@NL```ruby\@NLCarrierWave.configure do |config|\@NL config.ignore_integrity_errors = false\@NL config.ignore_processing_errors = false\@NL config.ignore_download_errors = false\@NLend\@NL```\@NL## Testing with CarrierWave\@NLIt's a good idea to test your uploaders in isolation. In order to speed up your\@NLtests, it's recommended to switch off processing in your tests, and to use the\@NLfile storage. In Rails you could do that by adding an initializer with:\@NL```ruby\@NLif Rails.env.test? or Rails.env.cucumber?\@NL CarrierWave.configure do |config|\@NL config.storage = :file\@NL config.enable_processing = false\@NL end\@NLend\@NL```\@NLRemember, if you have already set `storage :something` in your uploader, the `storage`\@NLsetting from this initializer will be ignored.\@NLIf you need to test your processing, you should test it in isolation, and enable\@NLprocessing only for those tests that need it.\@NLCarrierWave comes with some RSpec matchers which you may find useful:\@NL```ruby\@NLrequire 'carrierwave/test/matchers'\@NLdescribe MyUploader do\@NL include CarrierWave::Test::Matchers\@NL let(:user) { double('user') }\@NL let(:uploader) { MyUploader.new(user, :avatar) }\@NL before do\@NL MyUploader.enable_processing = true\@NL File.open(path_to_file) { |f| uploader.store!(f) }\@NL end\@NL after do\@NL MyUploader.enable_processing = false\@NL uploader.remove!\@NL end\@NL context 'the thumb version' do\@NL it ""scales down a landscape image to be exactly 64 by 64 pixels"" do\@NL expect(uploader.thumb).to have_dimensions(64, 64)\@NL end\@NL end\@NL context 'the small version' do\@NL it ""scales down a landscape image to fit within 200 by 200 pixels"" do\@NL expect(uploader.small).to be_no_larger_than(200, 200)\@NL end\@NL end\@NL it ""makes the image readable only to the owner and not executable"" do\@NL expect(uploader).to have_permissions(0600)\@NL end\@NL it ""has the correct format"" do\@NL expect(uploader).to be_format('png')\@NL end\@NLend\@NL```\@NLIf you're looking for minitest asserts, checkout [carrierwave_asserts](https://github.com/hcfairbanks/carrierwave_asserts).\@NLSetting the enable_processing flag on an uploader will prevent any of the versions from processing as well.\@NLProcessing can be enabled for a single version by setting the processing flag on the version like so:\@NL```ruby\@[email protected]_processing = true\@NL```\@NL## Fog\@NLIf you want to use fog you must add in your CarrierWave initializer the\@NLfollowing lines\@NL```ruby\@NLconfig.fog_provider = 'fog' # 'fog/aws' etc. Defaults to 'fog'\@NLconfig.fog_credentials = { ... } # Provider specific credentials\@NL```\@NL## Using Amazon S3\@NL[Fog AWS](http://github.com/fog/fog-aws) is used to support Amazon S3. Ensure you have it in your Gemfile:\@NL```ruby\@NLgem ""fog-aws""\@NL```\@NLYou'll need to provide your fog_credentials and a fog_directory (also known as a bucket) in an initializer.\@NLFor the sake of performance it is assumed that the directory already exists, so please create it if it needs to be.\@NLYou can also pass in additional options, as documented fully in lib/carrierwave/storage/fog.rb. Here's a full example:\@NL```ruby\@NLCarrierWave.configure do |config|\@NL config.fog_provider = 'fog/aws' # required\@NL config.fog_credentials = {\@NL provider: 'AWS', # required\@NL aws_access_key_id: 'xxx', # required unless using use_iam_profile\@NL aws_secret_access_key: 'yyy', # required unless using use_iam_profile\@NL use_iam_profile: true, # optional, defaults to false\@NL region: 'eu-west-1', # optional, defaults to 'us-east-1'\@NL host: 's3.example.com', # optional, defaults to nil\@NL endpoint: 'https://s3.example.com:8080' # optional, defaults to nil\@NL }\@NL config.fog_directory = 'name_of_bucket' # required\@NL config.fog_public = false # optional, defaults to true\@NL config.fog_attributes = { cache_control: ""public, max-age=#{365.days.to_i}"" } # optional, defaults to {}\@NLend\@NL```\@NLIn your uploader, set the storage to :fog\@NL```ruby\@NLclass AvatarUploader < CarrierWave::Uploader::Base\@NL storage :fog\@NLend\@NL```\@NLThat's it! You can still use the `CarrierWave::Uploader#url` method to return the url to the file on Amazon S3.\@NL## Using Rackspace Cloud Files\@NL[Fog](http://github.com/fog/fog) is used to support Rackspace Cloud Files. Ensure you have it in your Gemfile:\@NL```ruby\@NLgem ""fog""\@NL```\@NLYou'll need to configure a directory (also known as a container), username and API key in the initializer.\@NLFor the sake of performance it is assumed that the directory already exists, so please create it if need be.\@NLUsing a US-based account:\@NL```ruby\@NLCarrierWave.configure do |config|\@NL config.fog_provider = ""fog/rackspace/storage"" # optional, defaults to ""fog""\@NL config.fog_credentials = {\@NL provider: 'Rackspace',\@NL rackspace_username: 'xxxxxx',\@NL rackspace_api_key: 'yyyyyy',\@NL rackspace_region: :ord # optional, defaults to :dfw\@NL }\@NL config.fog_directory = 'name_of_directory'\@NLend\@NL```\@NLUsing a UK-based account:\@NL```ruby\@NLCarrierWave.configure do |config|\@NL config.fog_provider = ""fog/rackspace/storage"" # optional, defaults to ""fog""\@NL config.fog_credentials = {\@NL provider: 'Rackspace',\@NL rackspace_username: 'xxxxxx',\@NL rackspace_api_key: 'yyyyyy',\@NL rackspace_auth_url: Fog::Rackspace::UK_AUTH_ENDPOINT,\@NL rackspace_region: :lon\@NL }\@NL config.fog_directory = 'name_of_directory'\@NLend\@NL```\@NLYou can optionally include your CDN host name in the configuration.\@NLThis is *highly* recommended, as without it every request requires a lookup\@NLof this information.\@NL```ruby\@NLconfig.asset_host = ""http://c000000.cdn.rackspacecloud.com""\@NL```\@NLIn your uploader, set the storage to :fog\@NL```ruby\@NLclass AvatarUploader < CarrierWave::Uploader::Base\@NL storage :fog\@NLend\@NL```\@NLThat's it! You can still use the `CarrierWave::Uploader#url` method to return\@NLthe url to the file on Rackspace Cloud Files.\@NL## Using Google Storage for Developers\@NL[Fog](http://github.com/fog/fog-google) is used to support Google Storage for Developers. Ensure you have it in your Gemfile:\@NL```ruby\@NLgem ""fog-google""\@NLgem ""google-api-client"", ""> 0.8.5"", ""< 0.9""\@NLgem ""mime-types""\@NL```\@NLYou'll need to configure a directory (also known as a bucket), access key id and secret access key in the initializer.\@NLFor the sake of performance it is assumed that the directory already exists, so please create it if need be.\@NLPlease read the [fog-google README](https://github.com/fog/fog-google/blob/master/README.md) on how to get credentials.\@NL```ruby\@NLCarrierWave.configure do |config|\@NL config.fog_provider = 'fog/google' # required\@NL config.fog_credentials = {\@NL provider: 'Google',\@NL google_storage_access_key_id: 'xxxxxx',\@NL google_storage_secret_access_key: 'yyyyyy'\@NL }\@NL config.fog_directory = 'name_of_directory'\@NLend\@NL```\@NLIn your uploader, set the storage to :fog\@NL```ruby\@NLclass AvatarUploader < CarrierWave::Uploader::Base\@NL storage :fog\@NLend\@NL```\@NLThat's it! You can still use the `CarrierWave::Uploader#url` method to return\@NLthe url to the file on Google.\@NL## Optimized Loading of Fog\@NLSince Carrierwave doesn't know which parts of Fog you intend to use, it will just load the entire library (unless you use e.g. [`fog-aws`, `fog-google`] instead of fog proper). If you prefer to load fewer classes into your application, you need to load those parts of Fog yourself *before* loading CarrierWave in your Gemfile. Ex:\@NL```ruby\@NLgem ""fog"", ""~> 1.27"", require: ""fog/rackspace/storage""\@NLgem ""carrierwave""\@NL```\@NLA couple of notes about versions:\@NL* This functionality was introduced in Fog v1.20.\@NL* This functionality is slated for CarrierWave v1.0.0.\@NLIf you're not relying on Gemfile entries alone and are requiring ""carrierwave"" anywhere, ensure you require ""fog/rackspace/storage"" before it. Ex:\@NL```ruby\@NLrequire ""fog/rackspace/storage""\@NLrequire ""carrierwave""\@NL```\@NLBeware that this specific require is only needed when working with a fog provider that was not extracted to its own gem yet.\@NLA list of the extracted providers can be found in the page of the `fog` organizations [here](https://github.com/fog).\@NLWhen in doubt, inspect `Fog.constants` to see what has been loaded.\@NL## Dynamic Asset Host\@NLThe `asset_host` config property can be assigned a proc (or anything that responds to `call`) for generating the host dynamically. The proc-compliant object gets an instance of the current `CarrierWave::Storage::Fog::File` or `CarrierWave::SanitizedFile` as its only argument.\@NL```ruby\@NLCarrierWave.configure do |config|\@NL config.asset_host = proc do |file|\@NL identifier = # some logic\@NL ""http://#{identifier}.cdn.rackspacecloud.com""\@NL end\@NLend\@NL```\@NL## Using RMagick\@NLIf you're uploading images, you'll probably want to manipulate them in some way,\@NLyou might want to create thumbnail images for example. CarrierWave comes with a\@NLsmall library to make manipulating images with RMagick easier, you'll need to\@NLinclude it in your Uploader:\@NL```ruby\@NLclass AvatarUploader < CarrierWave::Uploader::Base\@NL include CarrierWave::RMagick\@NLend\@NL```\@NLThe RMagick module gives you a few methods, like\@NL`CarrierWave::RMagick#resize_to_fill` which manipulate the image file in some\@NLway. You can set a `process` callback, which will call that method any time a\@NLfile is uploaded.\@NLThere is a demonstration of convert here.\@NLConvert will only work if the file has the same file extension, thus the use of the filename method.\@NL```ruby\@NLclass AvatarUploader < CarrierWave::Uploader::Base\@NL include CarrierWave::RMagick\@NL process resize_to_fill: [200, 200]\@NL process convert: 'png'\@NL def filename\@NL super.chomp(File.extname(super)) + '.png' if original_filename.present?\@NL end\@NLend\@NL```\@NLCheck out the manipulate! method, which makes it easy for you to write your own\@NLmanipulation methods.\@NL## Using MiniMagick\@NLMiniMagick is similar to RMagick but performs all the operations using the 'mogrify'\@NLcommand which is part of the standard ImageMagick kit. This allows you to have the power\@NLof ImageMagick without having to worry about installing all the RMagick libraries.\@NLSee the MiniMagick site for more details:\@NLhttps://github.com/minimagick/minimagick\@NLAnd the ImageMagick command line options for more for whats on offer:\@NLhttp://www.imagemagick.org/script/command-line-options.php\@NLCurrently, the MiniMagick carrierwave processor provides exactly the same methods as\@NLfor the RMagick processor.\@NL```ruby\@NLclass AvatarUploader < CarrierWave::Uploader::Base\@NL include CarrierWave::MiniMagick\@NL process resize_to_fill: [200, 200]\@NLend\@NL```\@NL## Migrating from Paperclip\@NLIf you are using Paperclip, you can use the provided compatibility module:\@NL```ruby\@NLclass AvatarUploader < CarrierWave::Uploader::Base\@NL include CarrierWave::Compatibility::Paperclip\@NLend\@NL```\@NLSee the documentation for `CarrierWave::Compatibility::Paperclip` for more\@NLdetails.\@NLBe sure to use mount_on to specify the correct column:\@NL```ruby\@NLmount_uploader :avatar, AvatarUploader, mount_on: :avatar_file_name\@NL```\@NL## I18n\@NLThe Active Record validations use the Rails `i18n` framework. Add these keys to\@NLyour translations file:\@NL```yaml\@NLerrors:\@NL messages:\@NL carrierwave_processing_error: failed to be processed\@NL carrierwave_integrity_error: is not of an allowed file type\@NL carrierwave_download_error: could not be downloaded\@NL extension_whitelist_error: ""You are not allowed to upload %{extension} files, allowed types: %{allowed_types}""\@NL extension_blacklist_error: ""You are not allowed to upload %{extension} files, prohibited types: %{prohibited_types}""\@NL content_type_whitelist_error: ""You are not allowed to upload %{content_type} files, allowed types: %{allowed_types}""\@NL content_type_blacklist_error: ""You are not allowed to upload %{content_type} files""\@NL rmagick_processing_error: ""Failed to manipulate with rmagick, maybe it is not an image?""\@NL mini_magick_processing_error: ""Failed to manipulate with MiniMagick, maybe it is not an image? Original Error: %{e}""\@NL min_size_error: ""File size should be greater than %{min_size}""\@NL max_size_error: ""File size should be less than %{max_size}""\@NL```\@NLThe [`carrierwave-i18n`](https://github.com/carrierwaveuploader/carrierwave-i18n)\@NLlibrary adds support for additional locales.\@NL## Large files\@NLBy default, CarrierWave copies an uploaded file twice, first copying the file into the cache, then\@NLcopying the file into the store. For large files, this can be prohibitively time consuming.\@NLYou may change this behavior by overriding either or both of the `move_to_cache` and\@NL`move_to_store` methods:\@NL```ruby\@NLclass MyUploader < CarrierWave::Uploader::Base\@NL def move_to_cache\@NL true\@NL end\@NL def move_to_store\@NL true\@NL end\@NLend\@NL```\@NLWhen the `move_to_cache` and/or `move_to_store` methods return true, files will be moved (instead of copied) to the cache and store respectively.\@NLThis has only been tested with the local filesystem store.\@NL## Skipping ActiveRecord callbacks\@NLBy default, mounting an uploader into an ActiveRecord model will add a few\@NLcallbacks. For example, this code:\@NL```ruby\@NLclass User\@NL mount_uploader :avatar, AvatarUploader\@NLend\@NL```\@NLWill add these callbacks:\@NL```ruby\@NLafter_save :store_avatar!\@NLbefore_save :write_avatar_identifier\@NLafter_commit :remove_avatar!, on: :destroy\@NLafter_commit :mark_remove_avatar_false, on: :update\@NLafter_save :store_previous_changes_for_avatar\@NLafter_commit :remove_previously_stored_avatar, on: :update\@NL```\@NLIf you want to skip any of these callbacks (eg. you want to keep the existing\@NLavatar, even after uploading a new one), you can use ActiveRecordâs\@NL`skip_callback` method.\@NL```ruby\@NLclass User\@NL mount_uploader :avatar, AvatarUploader\@NL skip_callback :commit, :after, :remove_previously_stored_avatar\@NLend\@NL```\@NL## Contributing to CarrierWave\@NLSee [CONTRIBUTING.md](https://github.com/carrierwaveuploader/carrierwave/blob/master/CONTRIBUTING.md)\@NL## License\@NLCopyright (c) 2008-2015 Jonas Nicklas\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/carrierwave-1.3.1
celluloid,0.16.0,MIT,https://github.com/celluloid/celluloid,"Copyright (c) 2011-2014 Tony Arcieri\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/celluloid-0.16.0
chartkick,3.0.1,MIT,https://www.chartkick.com,"Copyright (c) 2013-2018 Andrew Kane\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/chartkick-3.0.1
client_side_validations,4.2.12,MIT,https://github.com/DavyJonesLocker/client_side_validations,"",/Users/scott/.rvm/gems/ruby-2.4.6/gems/client_side_validations-4.2.12
client_side_validations-simple_form,3.4.0,MIT,https://github.com/DavyJonesLocker/client_side_validations-simple_form,"",/Users/scott/.rvm/gems/ruby-2.4.6/gems/client_side_validations-simple_form-3.4.0
cloudinary,1.0.25,http://www.opensource.org/licenses/MIT,http://cloudinary.com/documentation/jquery_integration,"",/Users/scott/Workspace/Helpy/helpy/vendor/assets/components/cloudinary_js
cloudinary,1.1.7,MIT,http://cloudinary.com,"",/Users/scott/.rvm/gems/ruby-2.4.6/gems/cloudinary-1.1.7
codemirror-rails,5.16.0,MIT,https://rubygems.org/gems/codemirror-rails,"Copyright (C) 2013 by Nathan Fixler\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.\@NLCopyright (C) 2013 by Marijn Haverbeke <[email protected]>\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.\@NLPlease note that some subdirectories of the CodeMirror distribution\@NLinclude their own LICENSE files, and are released under different\@NLlicences.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/codemirror-rails-5.16.0
coercible,1.0.0,MIT,https://github.com/solnic/coercible,"Copyright (c) 2012 Piotr Solnica\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/coercible-1.0.0
coffee-rails,4.2.2,MIT,https://github.com/rails/coffee-rails,"Copyright (c) 2011-2016 Santiago Pastorino\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/coffee-rails-4.2.2
coffee-script,2.4.1,MIT,http://github.com/josh/ruby-coffee-script,"Copyright (c) 2010 Joshua Peek\@NLPermission is hereby granted, free of charge, to any person\@NLobtaining a copy of this software and associated documentation\@NLfiles (the ""Software""), to deal in the Software without\@NLrestriction, including without limitation the rights to use,\@NLcopy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the\@NLSoftware is furnished to do so, subject to the following\@NLconditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\@NLOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\@NLHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\@NLWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\@NLFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\@NLOTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/coffee-script-2.4.1
coffee-script-source,1.12.2,MIT,http://coffeescript.org,"",/Users/scott/.rvm/gems/ruby-2.4.6/gems/coffee-script-source-1.12.2
commonjs,0.2.7,MIT,http://github.com/cowboyd/commonjs.rb,"(The MIT License: http://www.opensource.org/licenses/MIT)\@NLCopyright (c) 2011,2012 Charles Lowell\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files\@NL(the ""Software""), to deal in the Software without restriction,\@NLincluding without limitation the rights to use, copy, modify, merge,\@NLpublish, distribute, sublicense, and/or sell copies of the Software,\@NLand to permit persons to whom the Software is furnished to do so,\@NLsubject to the following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\@NLOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\@NLBE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\@NLACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\@NLCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\@NLSOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/commonjs-0.2.7
concurrent-ruby,1.1.5,MIT,http://www.concurrent-ruby.com,"```\@NLCopyright (c) Jerry D'Antonio -- released under the MIT license.\@NLhttp://www.opensource.org/licenses/mit-license.php \@NLPermission is hereby granted, free of charge, to any person obtaining a copy \@NLof this software and associated documentation files (the ""Software""), to deal \@NLin the Software without restriction, including without limitation the rights \@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell \@NLcopies of the Software, and to permit persons to whom the Software is \@NLfurnished to do so, subject to the following conditions: \@NL \@NLThe above copyright notice and this permission notice shall be included in \@NLall copies or substantial portions of the Software. \@NL \@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, \@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN \@NLTHE SOFTWARE. \@NL```",/Users/scott/.rvm/gems/ruby-2.4.6/gems/concurrent-ruby-1.1.5
config,1.1.1,MIT,https://github.com/railsconfig/config,"The MIT License (MIT)\@NLCopyright (c) 2010-2014 Jacques Crocker, Fred Wu, Piotr Kuczynski\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.\@NLThird-party materials and licenses:\@NL* Config contains Deep Merge (deep_merge.rb) which is governed by the MIT license\@NL Copyright (C) 2008 Steve Midgley",/Users/scott/.rvm/gems/ruby-2.4.6/gems/config-1.1.1
crass,1.0.4,MIT,https://github.com/rgrove/crass/,"",/Users/scott/.rvm/gems/ruby-2.4.6/gems/crass-1.0.4
css_parser,1.7.0,MIT,https://github.com/premailer/css_parser,"=== Ruby CSS Parser License\@NLCopyright (c) 2007-11 Alex Dunae\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/css_parser-1.7.0
daemons,1.2.6,MIT,https://github.com/thuehlinger/daemons,"Copyright (c) 2005-2017 Thomas Uehlinger, 2014-2016 Aaron Stone\@NLPermission is hereby granted, free of charge, to any person\@NLobtaining a copy of this software and associated documentation\@NLfiles (the ""Software""), to deal in the Software without\@NLrestriction, including without limitation the rights to use,\@NLcopy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the\@NLSoftware is furnished to do so, subject to the following\@NLconditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\@NLOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\@NLHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\@NLWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\@NLFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\@NLOTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/daemons-1.2.6
deep_merge,1.0.1,MIT,http://github.com/danielsdeleo/deep_merge,"",/Users/scott/.rvm/gems/ruby-2.4.6/gems/deep_merge-1.0.1
deface,1.3.2,MIT,https://github.com/spree/deface,"Copyright (c) 2010 Brian Quinn \@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/deface-1.3.2
descendants_tracker,0.0.4,MIT,https://github.com/dkubb/descendants_tracker,"Copyright (c) 2012-2013 Dan Kubb (author)\@NLCopyright (c) 2011-2012 Piotr Solnica (source maintainer)\@NLCopyright (c) 2012 Markus Schirp (packaging)\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/descendants_tracker-0.0.4
devise,4.6.2,MIT,https://github.com/plataformatec/devise,"Copyright 2009-2019 Plataformatec. http://plataformatec.com.br\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/devise-4.6.2
devise-bootstrap-views,1.1.0,MIT,https://github.com/hisea/devise-bootstrap-views,"Copyright (c) 2018 Yinghai Zhao\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/devise-bootstrap-views-1.1.0
devise-i18n,1.8.0,MIT,http://github.com/tigrish/devise-i18n,"Copyright (c) 2011 Christopher Dell, 2012 mcasimir\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/devise-i18n-1.8.0
devise_invitable,1.7.5,MIT,https://github.com/scambra/devise_invitable,"Copyright (c) 2009 Sergio Cambra\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/devise_invitable-1.7.5
domain_name,0.5.20180417,"Simplified BSD,New BSD,Mozilla Public License 2.0",https://github.com/knu/ruby-domain_name,"",/Users/scott/.rvm/gems/ruby-2.4.6/gems/domain_name-0.5.20180417
email_reply_trimmer,0.1.12,MIT,https://github.com/discourse/email_reply_trimmer,"The MIT License (MIT)\@NLCopyright (c) Discourse\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ""Software""), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/email_reply_trimmer-0.1.12
equalizer,0.0.11,MIT,https://github.com/dkubb/equalizer,"Copyright (c) 2009-2013 Dan Kubb\@NLCopyright (c) 2012 Markus Schirp (packaging)\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/equalizer-0.0.11
erubis,2.7.0,MIT,http://www.kuwata-lab.com/erubis/,"copyright(c) 2006-2011 kuwata-lab.com all rights reserved.\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/erubis-2.7.0
excon,0.62.0,MIT,https://github.com/excon/excon,"The MIT License (MIT)\@NLCopyright (c) 2009-2015 [CONTRIBUTORS.md](https://github.com/excon/excon/blob/master/CONTRIBUTORS.md)\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of\@NLthis software and associated documentation files (the ""Software""), to deal in\@NLthe Software without restriction, including without limitation the rights to\@NLuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\@NLthe Software, and to permit persons to whom the Software is furnished to do so,\@NLsubject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all\@NLcopies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\@NLFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\@NLCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\@NLIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\@NLCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/excon-0.62.0
execjs,2.7.0,MIT,https://github.com/rails/execjs,"Copyright (c) 2015-2016 Sam Stephenson\@NLCopyright (c) 2015-2016 Josh Peek\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/execjs-2.7.0
faker,1.9.3,MIT,https://github.com/stympy/faker,"Copyright (c) 2007-2019 Benjamin Curtis\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/faker-1.9.3
faraday,0.15.4,MIT,https://github.com/lostisland/faraday,"Copyright (c) 2009-2017 Rick Olson, Zack Hobson\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/faraday-0.15.4
ffi,1.10.0,New BSD,http://wiki.github.com/ffi/ffi,"Copyright (c) 2008-2016, Ruby FFI project contributors\@NLAll rights reserved.\@NLRedistribution and use in source and binary forms, with or without\@NLmodification, are permitted provided that the following conditions are met:\@NL * Redistributions of source code must retain the above copyright\@NL notice, this list of conditions and the following disclaimer.\@NL * Redistributions in binary form must reproduce the above copyright\@NL notice, this list of conditions and the following disclaimer in the\@NL documentation and/or other materials provided with the distribution.\@NL * Neither the name of the Ruby FFI project nor the\@NL names of its contributors may be used to endorse or promote products\@NL derived from this software without specific prior written permission.\@NLTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ""AS IS"" AND\@NLANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\@NLWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\@NLDISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\@NLDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\@NL(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\@NLLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\@NLON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\@NL(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\@NLSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\@NLThe libffi source distribution contains certain code that is not part\@NLof libffi, and is only used as tooling to assist with the building and\@NLtesting of libffi. This includes the msvcc.sh script used to wrap the\@NLMicrosoft compiler with GNU compatible command-line options, and the\@NLlibffi test code distributed in the testsuite/libffi.bhaible\@NLdirectory. This code is distributed with libffi for the purpose of\@NLconvenience only, and libffi is in no way derived from this code.\@NLmsvcc.sh an testsuite/libffi.bhaible are both distributed under the\@NLterms of the GNU GPL version 2, as below.\@NL GNU GENERAL PUBLIC LICENSE\@NL Version 2, June 1991\@NL Copyright (C) 1989, 1991 Free Software Foundation, Inc.,\@NL 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\@NL Everyone is permitted to copy and distribute verbatim copies\@NL of this license document, but changing it is not allowed.\@NL Preamble\@NL The licenses for most software are designed to take away your\@NLfreedom to share and change it. By contrast, the GNU General Public\@NLLicense is intended to guarantee your freedom to share and change free\@NLsoftware--to make sure the software is free for all its users. This\@NLGeneral Public License applies to most of the Free Software\@NLFoundation's software and to any other program whose authors commit to\@NLusing it. (Some other Free Software Foundation software is covered by\@NLthe GNU Lesser General Public License instead.) You can apply it to\@NLyour programs, too.\@NL When we speak of free software, we are referring to freedom, not\@NLprice. Our General Public Licenses are designed to make sure that you\@NLhave the freedom to distribute copies of free software (and charge for\@NLthis service if you wish), that you receive source code or can get it\@NLif you want it, that you can change the software or use pieces of it\@NLin new free programs; and that you know you can do these things.\@NL To protect your rights, we need to make restrictions that forbid\@NLanyone to deny you these rights or to ask you to surrender the rights.\@NLThese restrictions translate to certain responsibilities for you if you\@NLdistribute copies of the software, or if you modify it.\@NL For example, if you distribute copies of such a program, whether\@NLgratis or for a fee, you must give the recipients all the rights that\@NLyou have. You must make sure that they, too, receive or can get the\@NLsource code. And you must show them these terms so they know their\@NLrights.\@NL We protect your rights with two steps: (1) copyright the software, and\@NL(2) offer you this license which gives you legal permission to copy,\@NLdistribute and/or modify the software.\@NL Also, for each author's protection and ours, we want to make certain\@NLthat everyone understands that there is no warranty for this free\@NLsoftware. If the software is modified by someone else and passed on, we\@NLwant its recipients to know that what they have is not the original, so\@NLthat any problems introduced by others will not reflect on the original\@NLauthors' reputations.\@NL Finally, any free program is threatened constantly by software\@NLpatents. We wish to avoid the danger that redistributors of a free\@NLprogram will individually obtain patent licenses, in effect making the\@NLprogram proprietary. To prevent this, we have made it clear that any\@NLpatent must be licensed for everyone's free use or not licensed at all.\@NL The precise terms and conditions for copying, distribution and\@NLmodification follow.\@NL GNU GENERAL PUBLIC LICENSE\@NL TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\@NL 0. This License applies to any program or other work which contains\@NLa notice placed by the copyright holder saying it may be distributed\@NLunder the terms of this General Public License. The ""Program"", below,\@NLrefers to any such program or work, and a ""work based on the Program""\@NLmeans either the Program or any derivative work under copyright law:\@NLthat is to say, a work containing the Program or a portion of it,\@NLeither verbatim or with modifications and/or translated into another\@NLlanguage. (Hereinafter, translation is included without limitation in\@NLthe term ""modification"".) Each licensee is addressed as ""you"".\@NLActivities other than copying, distribution and modification are not\@NLcovered by this License; they are outside its scope. The act of\@NLrunning the Program is not restricted, and the output from the Program\@NLis covered only if its contents constitute a work based on the\@NLProgram (independent of having been made by running the Program).\@NLWhether that is true depends on what the Program does.\@NL 1. You may copy and distribute verbatim copies of the Program's\@NLsource code as you receive it, in any medium, provided that you\@NLconspicuously and appropriately publish on each copy an appropriate\@NLcopyright notice and disclaimer of warranty; keep intact all the\@NLnotices that refer to this License and to the absence of any warranty;\@NLand give any other recipients of the Program a copy of this License\@NLalong with the Program.\@NLYou may charge a fee for the physical act of transferring a copy, and\@NLyou may at your option offer warranty protection in exchange for a fee.\@NL 2. You may modify your copy or copies of the Program or any portion\@NLof it, thus forming a work based on the Program, and copy and\@NLdistribute such modifications or work under the terms of Section 1\@NLabove, provided that you also meet all of these conditions:\@NL a) You must cause the modified files to carry prominent notices\@NL stating that you changed the files and the date of any change.\@NL b) You must cause any work that you distribute or publish, that in\@NL whole or in part contains or is derived from the Program or any\@NL part thereof, to be licensed as a whole at no charge to all third\@NL parties under the terms of this License.\@NL c) If the modified program normally reads commands interactively\@NL when run, you must cause it, when started running for such\@NL interactive use in the most ordinary way, to print or display an\@NL announcement including an appropriate copyright notice and a\@NL notice that there is no warranty (or else, saying that you provide\@NL a warranty) and that users may redistribute the program under\@NL these conditions, and telling the user how to view a copy of this\@NL License. (Exception: if the Program itself is interactive but\@NL does not normally print such an announcement, your work based on\@NL the Program is not required to print an announcement.)\@NLThese requirements apply to the modified work as a whole. If\@NLidentifiable sections of that work are not derived from the Program,\@NLand can be reasonably considered independent and separate works in\@NLthemselves, then this License, and its terms, do not apply to those\@NLsections when you distribute them as separate works. But when you\@NLdistribute the same sections as part of a whole which is a work based\@NLon the Program, the distribution of the whole must be on the terms of\@NLthis License, whose permissions for other licensees extend to the\@NLentire whole, and thus to each and every part regardless of who wrote it.\@NLThus, it is not the intent of this section to claim rights or contest\@NLyour rights to work written entirely by you; rather, the intent is to\@NLexercise the right to control the distribution of derivative or\@NLcollective works based on the Program.\@NLIn addition, mere aggregation of another work not based on the Program\@NLwith the Program (or with a work based on the Program) on a volume of\@NLa storage or distribution medium does not bring the other work under\@NLthe scope of this License.\@NL 3. You may copy and distribute the Program (or a work based on it,\@NLunder Section 2) in object code or executable form under the terms of\@NLSections 1 and 2 above provided that you also do one of the following:\@NL a) Accompany it with the complete corresponding machine-readable\@NL source code, which must be distributed under the terms of Sections\@NL 1 and 2 above on a medium customarily used for software interchange; or,\@NL b) Accompany it with a written offer, valid for at least three\@NL years, to give any third party, for a charge no more than your\@NL cost of physically performing source distribution, a complete\@NL machine-readable copy of the corresponding source code, to be\@NL distributed under the terms of Sections 1 and 2 above on a medium\@NL customarily used for software interchange; or,\@NL c) Accompany it with the information you received as to the offer\@NL to distribute corresponding source code. (This alternative is\@NL allowed only for noncommercial distribution and only if you\@NL received the program in object code or executable form with such\@NL an offer, in accord with Subsection b above.)\@NLThe source code for a work means the preferred form of the work for\@NLmaking modifications to it. For an executable work, complete source\@NLcode means all the source code for all modules it contains, plus any\@NLassociated interface definition files, plus the scripts used to\@NLcontrol compilation and installation of the executable. However, as a\@NLspecial exception, the source code distributed need not include\@NLanything that is normally distributed (in either source or binary\@NLform) with the major components (compiler, kernel, and so on) of the\@NLoperating system on which the executable runs, unless that component\@NLitself accompanies the executable.\@NLIf distribution of executable or object code is made by offering\@NLaccess to copy from a designated place, then offering equivalent\@NLaccess to copy the source code from the same place counts as\@NLdistribution of the source code, even though third parties are not\@NLcompelled to copy the source along with the object code.\@NL 4. You may not copy, modify, sublicense, or distribute the Program\@NLexcept as expressly provided under this License. Any attempt\@NLotherwise to copy, modify, sublicense or distribute the Program is\@NLvoid, and will automatically terminate your rights under this License.\@NLHowever, parties who have received copies, or rights, from you under\@NLthis License will not have their licenses terminated so long as such\@NLparties remain in full compliance.\@NL 5. You are not required to accept this License, since you have not\@NLsigned it. However, nothing else grants you permission to modify or\@NLdistribute the Program or its derivative works. These actions are\@NLprohibited by law if you do not accept this License. Therefore, by\@NLmodifying or distributing the Program (or any work based on the\@NLProgram), you indicate your acceptance of this License to do so, and\@NLall its terms and conditions for copying, distributing or modifying\@NLthe Program or works based on it.\@NL 6. Each time you redistribute the Program (or any work based on the\@NLProgram), the recipient automatically receives a license from the\@NLoriginal licensor to copy, distribute or modify the Program subject to\@NLthese terms and conditions. You may not impose any further\@NLrestrictions on the recipients' exercise of the rights granted herein.\@NLYou are not responsible for enforcing compliance by third parties to\@NLthis License.\@NL 7. If, as a consequence of a court judgment or allegation of patent\@NLinfringement or for any other reason (not limited to patent issues),\@NLconditions are imposed on you (whether by court order, agreement or\@NLotherwise) that contradict the conditions of this License, they do not\@NLexcuse you from the conditions of this License. If you cannot\@NLdistribute so as to satisfy simultaneously your obligations under this\@NLLicense and any other pertinent obligations, then as a consequence you\@NLmay not distribute the Program at all. For example, if a patent\@NLlicense would not permit royalty-free redistribution of the Program by\@NLall those who receive copies directly or indirectly through you, then\@NLthe only way you could satisfy both it and this License would be to\@NLrefrain entirely from distribution of the Program.\@NLIf any portion of this section is held invalid or unenforceable under\@NLany particular circumstance, the balance of the section is intended to\@NLapply and the section as a whole is intended to apply in other\@NLcircumstances.\@NLIt is not the purpose of this section to induce you to infringe any\@NLpatents or other property right claims or to contest validity of any\@NLsuch claims; this section has the sole purpose of protecting the\@NLintegrity of the free software distribution system, which is\@NLimplemented by public license practices. Many people have made\@NLgenerous contributions to the wide range of software distributed\@NLthrough that system in reliance on consistent application of that\@NLsystem; it is up to the author/donor to decide if he or she is willing\@NLto distribute software through any other system and a licensee cannot\@NLimpose that choice.\@NLThis section is intended to make thoroughly clear what is believed to\@NLbe a consequence of the rest of this License.\@NL 8. If the distribution and/or use of the Program is restricted in\@NLcertain countries either by patents or by copyrighted interfaces, the\@NLoriginal copyright holder who places the Program under this License\@NLmay add an explicit geographical distribution limitation excluding\@NLthose countries, so that distribution is permitted only in or among\@NLcountries not thus excluded. In such case, this License incorporates\@NLthe limitation as if written in the body of this License.\@NL 9. The Free Software Foundation may publish revised and/or new versions\@NLof the General Public License from time to time. Such new versions will\@NLbe similar in spirit to the present version, but may differ in detail to\@NLaddress new problems or concerns.\@NLEach version is given a distinguishing version number. If the Program\@NLspecifies a version number of this License which applies to it and ""any\@NLlater version"", you have the option of following the terms and conditions\@NLeither of that version or of any later version published by the Free\@NLSoftware Foundation. If the Program does not specify a version number of\@NLthis License, you may choose any version ever published by the Free Software\@NLFoundation.\@NL 10. If you wish to incorporate parts of the Program into other free\@NLprograms whose distribution conditions are different, write to the author\@NLto ask for permission. For software which is copyrighted by the Free\@NLSoftware Foundation, write to the Free Software Foundation; we sometimes\@NLmake exceptions for this. Our decision will be guided by the two goals\@NLof preserving the free status of all derivatives of our free software and\@NLof promoting the sharing and reuse of software generally.\@NL NO WARRANTY\@NL 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\@NLFOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN\@NLOTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\@NLPROVIDE THE PROGRAM ""AS IS"" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\@NLOR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\@NLMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS\@NLTO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE\@NLPROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\@NLREPAIR OR CORRECTION.\@NL 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\@NLWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\@NLREDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\@NLINCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\@NLOUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\@NLTO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\@NLYOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\@NLPROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\@NLPOSSIBILITY OF SUCH DAMAGES.\@NL END OF TERMS AND CONDITIONS\@NL How to Apply These Terms to Your New Programs\@NL If you develop a new program, and you want it to be of the greatest\@NLpossible use to the public, the best way to achieve this is to make it\@NLfree software which everyone can redistribute and change under these terms.\@NL To do so, attach the following notices to the program. It is safest\@NLto attach them to the start of each source file to most effectively\@NLconvey the exclusion of warranty; and each file should have at least\@NLthe ""copyright"" line and a pointer to where the full notice is found.\@NL <one line to give the program's name and a brief idea of what it does.>\@NL Copyright (C) <year> <name of author>\@NL This program is free software; you can redistribute it and/or modify\@NL it under the terms of the GNU General Public License as published by\@NL the Free Software Foundation; either version 2 of the License, or\@NL (at your option) any later version.\@NL This program is distributed in the hope that it will be useful,\@NL but WITHOUT ANY WARRANTY; without even the implied warranty of\@NL MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\@NL GNU General Public License for more details.\@NL You should have received a copy of the GNU General Public License along\@NL with this program; if not, write to the Free Software Foundation, Inc.,\@NL 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\@NLAlso add information on how to contact you by electronic and paper mail.\@NLIf the program is interactive, make it output a short notice like this\@NLwhen it starts in an interactive mode:\@NL Gnomovision version 69, Copyright (C) year name of author\@NL Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\@NL This is free software, and you are welcome to redistribute it\@NL under certain conditions; type `show c' for details.\@NLThe hypothetical commands `show w' and `show c' should show the appropriate\@NLparts of the General Public License. Of course, the commands you use may\@NLbe called something other than `show w' and `show c'; they could even be\@NLmouse-clicks or menu items--whatever suits your program.\@NLYou should also get your employer (if you work as a programmer) or your\@NLschool, if any, to sign a ""copyright disclaimer"" for the program, if\@NLnecessary. Here is a sample; alter the names:\@NL Yoyodyne, Inc., hereby disclaims all copyright interest in the program\@NL `Gnomovision' (which makes passes at compilers) written by James Hacker.\@NL <signature of Ty Coon>, 1 April 1989\@NL Ty Coon, President of Vice\@NLThis General Public License does not permit incorporating your program into\@NLproprietary programs. If your program is a subroutine library, you may\@NLconsider it more useful to permit linking proprietary applications with the\@NLlibrary. If this is what you want to do, use the GNU Lesser General\@NLPublic License instead of this License.\@NLlibffi - Copyright (c) 1996-2014 Anthony Green, Red Hat, Inc and others.\@NLSee source files for details.\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL``Software''), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\@NLIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\@NLCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\@NLTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\@NLSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NLCopyright (c) 2008-2012 Ruby-FFI contributors\@NLPermission is hereby granted, free of charge, to any person\@NLobtaining a copy of this software and associated documentation\@NLfiles (the ""Software""), to deal in the Software without\@NLrestriction, including without limitation the rights to use,\@NLcopy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the\@NLSoftware is furnished to do so, subject to the following\@NLconditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\@NLOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\@NLHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\@NLWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\@NLFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\@NLOTHER DEALINGS IN THE SOFTWARE.\@NLCopyright (c) 2008-2013, Ruby FFI project contributors\@NLAll rights reserved.\@NLRedistribution and use in source and binary forms, with or without\@NLmodification, are permitted provided that the following conditions are met:\@NL * Redistributions of source code must retain the above copyright\@NL notice, this list of conditions and the following disclaimer.\@NL * Redistributions in binary form must reproduce the above copyright\@NL notice, this list of conditions and the following disclaimer in the\@NL documentation and/or other materials provided with the distribution.\@NL * Neither the name of the Ruby FFI project nor the\@NL names of its contributors may be used to endorse or promote products\@NL derived from this software without specific prior written permission.\@NLTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ""AS IS"" AND\@NLANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\@NLWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\@NLDISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\@NLDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\@NL(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\@NLLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\@NLON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\@NL(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\@NLSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\@NLlibffi, used by this project, is licensed under the MIT license:\@NLlibffi - Copyright (c) 1996-2011 Anthony Green, Red Hat, Inc and others.\@NLSee source files for details.\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL``Software''), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\@NLIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\@NLCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\@NLTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\@NLSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/ffi-1.10.0
flare,1.0.0,MIT,https://github.com/toddmotto/flare,"LICENSE\@NLThe MIT License\@NLCopyright (c) 2014 Todd Motto\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/Workspace/Helpy/helpy/vendor/assets/components/flare
fog-aws,3.4.0,MIT,https://github.com/fog/fog-aws,"The MIT License (MIT)\@NLCopyright (c) 2014-2017 [CONTRIBUTORS.md](https://github.com/fog/fog-aws/blob/master/CONTRIBUTORS.md)\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of\@NLthis software and associated documentation files (the ""Software""), to deal in\@NLthe Software without restriction, including without limitation the rights to\@NLuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\@NLthe Software, and to permit persons to whom the Software is furnished to do so,\@NLsubject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all\@NLcopies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\@NLFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\@NLCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\@NLIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\@NLCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/fog-aws-3.4.0
fog-core,2.1.2,MIT,https://github.com/fog/fog-core,"The MIT License (MIT)\@NLCopyright (c) 2014-2016 [CONTRIBUTORS.md](https://github.com/fog/fog/blob/master/CONTRIBUTORS.md)\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of\@NLthis software and associated documentation files (the ""Software""), to deal in\@NLthe Software without restriction, including without limitation the rights to\@NLuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\@NLthe Software, and to permit persons to whom the Software is furnished to do so,\@NLsubject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all\@NLcopies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\@NLFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\@NLCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\@NLIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\@NLCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/fog-core-2.1.2
fog-json,1.2.0,MIT,http://github.com/fog/fog-json,"The MIT License (MIT)\@NLCopyright (c) 2014 [CONTRIBUTORS.md](https://github.com/fog/fog/blob/master/CONTRIBUTORS.md)\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of\@NLthis software and associated documentation files (the ""Software""), to deal in\@NLthe Software without restriction, including without limitation the rights to\@NLuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\@NLthe Software, and to permit persons to whom the Software is furnished to do so,\@NLsubject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all\@NLcopies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\@NLFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\@NLCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\@NLIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\@NLCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/fog-json-1.2.0
fog-xml,0.1.3,MIT,https://github.com/fog/fog-xml,"The MIT License (MIT)\@NLCopyright (c) 2014-2014 [CONTRIBUTORS.md](https://github.com/zertico/fog-xml/blob/master/CONTRIBUTORS.md)\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of\@NLthis software and associated documentation files (the ""Software""), to deal in\@NLthe Software without restriction, including without limitation the rights to\@NLuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\@NLthe Software, and to permit persons to whom the Software is furnished to do so,\@NLsubject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all\@NLcopies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\@NLFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\@NLCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\@NLIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\@NLCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/fog-xml-0.1.3
font-awesome-sass,5.8.1,MIT,https://github.com/FortAwesome/font-awesome-sass,"Copyright (c) 2013 Travis Chase\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/font-awesome-sass-5.8.1
formatador,0.2.5,MIT,http://github.com/geemus/formatador,"The MIT License (MIT)\@NLCopyright (c) 2009-2013 [CONTRIBUTORS.md](https://github.com/geemus/formatador/blob/master/CONTRIBUTORS.md)\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of\@NLthis software and associated documentation files (the ""Software""), to deal in\@NLthe Software without restriction, including without limitation the rights to\@NLuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\@NLthe Software, and to permit persons to whom the Software is furnished to do so,\@NLsubject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all\@NLcopies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\@NLFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\@NLCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\@NLIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\@NLCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL= formatador\@NLSTDOUT text formatting\@NL== Quick and dirty\@NLYou can call class methods to print out single lines like this:\@NL Formatador.display_line('Hello World')\@NLYou use tags, similar to html, to set formatting options:\@NL Formatador.display_line('[green]Hello World[/]')\@NL [/] resets everything to normal, colors are supported and [_color_] sets the background color.\@NL== Standard options\@NL* format - and adds color codes if STDOUT.tty? is true\@NL* display - calls format on the input and prints it\@NL* display_line - calls display, but adds on a newline (\n)\@NL* redisplay - Displays text, prepended with \r which will overwrite the last existing line\@NL== Extensions\@NL* display_table: takes an array of hashes. Each hash is a row, with the keys being the headers and values being the data. An optional second argument can specify which headers/columns to include and in what order they should appear.\@NL* display_compact_table: Same as display_table, execpt that split lines are not drawn by default in the body of the table. If you need a split line, put a :split constant in the body array.\@NL* redisplay_progressbar: takes the current and total values as its first two arguments and redisplays a progressbar (until current = total and then it display_lines). An optional third argument represents the start time and will add an elapsed time counter.\@NL=== Progress Bar examples\@NL total = 1000\@NL progress = ProgressBar.new(total)\@NL 1000.times do\@NL progress.increment\@NL end\@NL 978/1000 |************************************************* |\@NL # Change the color of the bar\@NL total = 1000\@NL progress = ProgressBar.new(total, :color => ""light_blue"")\@NL 1000.times do\@NL progress.increment\@NL end\@NL # Change the color of a completed progress bar\@NL total = 1000\@NL progress = ProgressBar.new(total) { |b| b.opts[:color] = ""green"" }\@NL 1000.times do\@NL progress.increment\@NL end\@NL=== Table examples\@NL table_data = [{:name => ""Joe"", :food => ""Burger""}, {:name => ""Bill"", :food => ""French fries""}]\@NL Formatador.display_table(table_data)\@NL +------+--------------+\@NL | name | food |\@NL +------+--------------+\@NL | Joe | Burger |\@NL +------+--------------+\@NL | Bill | French fries |\@NL +------+--------------+\@NL table_data = [\@NL {:name => ""Joe"", :meal => {:main_dish => ""Burger"", :drink => ""water""}}, \@NL {:name => ""Bill"", :meal => {:main_dish => ""Chicken"", :drink => ""soda""}}\@NL ]\@NL Formatador.display_table(table_data, [:name, :""meal.drink""])\@NL +------+------------+\@NL | name | meal.drink |\@NL +------+------------+\@NL | Joe | water |\@NL +------+------------+\@NL | Bill | soda |\@NL +------+------------+\@NL== Indentation\@NLBy initializing a formatador object you can keep track of indentation:\@NL formatador = Formatador.new\@NL formatador.display_line('one level of indentation')\@NL formatador.indent {\@NL formatador.display_line('two levels of indentation')\@NL }\@NL formatador.display_line('one level of indentation')\@NL== Copyright\@NL(The MIT License)\@NLCopyright (c) 2009 {geemus (Wesley Beary)}[http://github.com/geemus]\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/formatador-0.2.5
foundation_emails,2.2.1.0,MIT,http://foundation.zurb.com/emails,"Copyright (c) 2016 ZURB, inc.\@NLThe MIT License\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ""Software""), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/foundation_emails-2.2.1.0
gemoji,3.0.0,MIT,https://github.com/github/gemoji,"",/Users/scott/.rvm/gems/ruby-2.4.6/gems/gemoji-3.0.0
globalid,0.4.2,MIT,http://www.rubyonrails.org,"Copyright (c) 2014-2016 David Heinemeier Hansson\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/globalid-0.4.2
globalize,5.0.1,MIT,http://github.com/globalize/globalize,"The MIT License\@NLCopyright (c) 2008-2014 Sven Fuchs, Joshua Harvey, Clemens Kofler, John-Paul\@NLBader, Tomasz Stachewicz, Philip Arndt, Chris Salzberg\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/globalize-5.0.1
globalize-accessors,0.2.1,MIT,http://rubygems.org/gems/globalize-accessors,"Copyright (c) 2009, 2010, 2011, 2012, 2013 Tomek ""Tomash"" Stachewicz,\@NLRobert Pankowecki, Chris Salzberg\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/globalize-accessors-0.2.1
globalize-versioning,0.2.0,MIT,http://github.com/globalize/globalize-versioning,"The MIT License\@NLCopyright (c) 2013 Philip Arndt, Chris Salzberg\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/globalize-versioning-0.2.0
grape,1.2.1,MIT,https://github.com/ruby-grape/grape,"Copyright (c) 2010-2018 Michael Bleigh, Intridea Inc. and Contributors.\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/grape-1.2.1
grape-entity,0.7.1,MIT,https://github.com/ruby-grape/grape-entity,"Copyright (c) 2010-2016 Michael Bleigh, Intridea, Inc., ruby-grape and Contributors.\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/grape-entity-0.7.1
grape-kaminari,0.1.9,MIT,"","The MIT License (MIT)\@NLCopyright (c) 2013-2014 Monterail.com LLC\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of\@NLthis software and associated documentation files (the ""Software""), to deal in\@NLthe Software without restriction, including without limitation the rights to\@NLuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\@NLthe Software, and to permit persons to whom the Software is furnished to do so,\@NLsubject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all\@NLcopies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\@NLFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\@NLCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\@NLIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\@NLCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/grape-kaminari-0.1.9
grape-swagger,0.32.0,MIT,https://github.com/ruby-grape/grape-swagger,"Copyright (c) 2012-2016 Tim Vandecasteele, ruby-grape and Contributors\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/grape-swagger-0.32.0
grape-swagger-entity,0.3.3,MIT,https://github.com/ruby-grape/grape-swagger-entity,"The MIT License (MIT)\@NLCopyright (c) 2016 Kirill Zaitsev\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/grape-swagger-entity-0.3.3
grape-swagger-rails,0.3.1,MIT,https://github.com/ruby-grape/grape-swagger-rails,"Copyright (c) 2013-2014 Aleksandr B. Ivanov & Contributors\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/grape-swagger-rails-0.3.1
gravtastic,3.2.6,MIT,http://github.com/chrislloyd/gravtastic," _____ _ _ _\@NL / ____| | | | | (_)\@NL | | __ _ __ __ ___ _| |_ __ _ ___| |_ _ ___\@NL | | |_ | '__/ _` \ \ / / __/ _` / __| __| |/ __|\@NL | |__| | | | (_| |\ V /| || (_| \__ \ |_| | (__\@NL \_____|_| \__,_| \_/ \__\__,_|___/\__|_|\___|\@NL<center><small>The super fantastic way of getting Gravatars. By [The Poacher](http://thelincolnshirepoacher.com).</small></center>\@NLIn less than a minute you can add Gravatars to your Ruby project. It works in Rails, Merb & Sinatra.\@NLThe best way to learn more about Gravtastic is to [look through the annotated source](http://chrislloyd.github.com/gravtastic). It's one file, about 80 LOC and really pretty simple. If that isn't for you, then follow the instructions below!\@NL## Install\@NL sudo gem install gravtastic\@NL## Usage\@NLFor this example I'm going to assume you are using Rails. Don't worry if you aren't, the concepts are still the same.\@NLFirst off, add this to your `Gemfile`:\@NL gem 'gravtastic'\@NLNext, in your model:\@NL class User < ActiveRecord::Base\@NL include Gravtastic\@NL gravtastic\@NL end\@NL<small>_Note: You can use either `is_gravtastic!`, `is_gravtastic` or `has_gravatar`, they all do the same thing._</small>\@NLAnd you are done! In your views you can now use the `#gravatar_url` method on instances of `User`:\@NL <%= image_tag @user.gravatar_url %>\@NLGravatar gives you some options. You can use them like this:\@NL <%= image_tag @user.gravatar_url(:rating => 'R', :secure => true) %>\@NLThat will show R rated Gravatars over a secure connection. If you find yourself using the same options over and over again, you can set the Gravatar defaults. In your model, just change the `is_gravtastic` line to something like this:\@NL gravtastic :secure => true,\@NL :filetype => :gif,\@NL :size => 120\@NLNow all your Gravatars will come from a secure connection, be a GIF and be 120x120px.\@NLGravatar needs an email address to find the person's avatar. By default, Gravtastic calls the `#email` method to find this. You can customise this.\@NL gravtastic :author_email\@NL### Defaults\@NLA common question is ""how do I detect wether the user has an avatar or not?"" People usually write code to perform a HTTP request to Gravatar to see wether the gravatar exists. This is certainly a solution, but not a very good one. If you have page where you show 50 users, the client will have to wait for 50 HTTP requests before they even get the page. Slooww.\@NLThe best way to do this is to set the `:default` option when using `#gravatr_url`. If the user doesn't have an avatar, Gravatar essentially redirects to the ""default"" url you provide.\@NL### Complete List of Options\@NL<table width=""100%"">\@NL <thead>\@NL <th>Option</th>\@NL <th>Description</th>\@NL <th>Default</th>\@NL <th>Values<th>\@NL </tr>\@NL <tr>\@NL <td><b>secure</b></td>\@NL <td>Gravatar transmitted with SSL</td>\@NL <td>true</td>\@NL <td>true/false</td>\@NL </tr>\@NL <tr>\@NL <td><b>size</b></td>\@NL <td>The size of the image</td>\@NL <td>80</td>\@NL <td>1..512</td>\@NL </tr>\@NL <tr>\@NL <td><b>default</b></td>\@NL <td>The default avatar image</td>\@NL <td><i>none</i></td>\@NL <td>""identicon"", ""monsterid"", ""wavatar"" or an absolute URL.</td>\@NL </tr>\@NL <tr>\@NL <td><b>rating</b></td>\@NL <td>The highest level of ratings you want to allow</td>\@NL <td>G</td>\@NL <td>G, PG, R or X</td>\@NL </tr>\@NL <tr>\@NL <td><b>filetype</b></td>\@NL <td>The filetype of the image</td>\@NL <td>png</td>\@NL <td>gif, jpg or png</td>\@NL </tr>\@NL</table>\@NL### Other ORMs\@NLGravatar is really just simple Ruby. There is no special magic which ties it to one ORM (like ActiveRecord or MongoMapper). You can use the following pattern to include it anywhere:\@NL require 'gravtastic'\@NL class MyClass\@NL include Gravtastic\@NL is_gravtastic\@NL end\@NLFor instance, with the excellent [MongoMapper](http://github.com/jnunemaker/mongomapper) you can use do this:\@NL class Person\@NL include MongoMapper::Document\@NL include Gravtastic\@NL is_gravtastic\@NL key :email\@NL end\@NLAnd wallah! It's exactly the same as with ActiveRecord! Now all instances of the `Person` class will have `#gravatar_url` methods.\@NL_Note: the `#gravatar_url` methods don't get included until you specify the class `is_gravtastic!`_\@NL## Javascript\@NL_Note: this feature requires Rails 3.1 & CoffeeScript._\@NLWeb applications are increasingly performing client side rendering in Javascript. It's not always practical or clean to calculate the `gravatar_url` on the server. As of version 3.2, Gravtastic comes bundled with Javascript helpers.\@NLIf you are using Rails 3.1 you can simple require Gravtastic in your `Gemfile` and add\@NL //= require gravtastic\@NLin your `application.js` file. This will include a function, `Gravtastic` which performs similarly to `gravtastic_url`.\@NL > Gravtastic('[email protected]')\@NL ""https://secure.gravatar.com/avatar/08f077ea061585744ee080824f5a8e65.png?r=PG""\@NL > Gravtastic('[email protected]', {default: 'identicon', size: 64})\@NL ""https://secure.gravatar.com/avatar/08f077ea061585744ee080824f5a8e65.png?r=PG&d=identicon&s=64""\@NL## Making Changes Yourself\@NLGravtastic is a mature project. There isn't any active work which needs to be done on it, but I do continue to maintain it. Just don't expect same day fixes. If you find something that needs fixing, the best way to contribute is to fork the repo and submit a pull request.\@NL git clone git://github.com/chrislloyd/gravtastic.git\@NL## Thanks\@NL* [Xavier Shay](http://github.com/xaviershay) and others for [Enki](http://enkiblog.com) (the reason this was originally written)\@NL* [Matthew Moore](http://github.com/moorage)\@NL* [Galen O'Hanlon](http://github.com/gohanlon)\@NL* [Jason Cheow](http://jasoncheow.com)\@NL* [Paul Farnell](http://github.com/salted)\@NL* [Jeff Kreeftmeijer](http://github.com/jeffkreeftmeijer)\@NL* [Ryan Lewis](http://github.com/c00lryguy)\@NL* [Arthur Chiu](http://github.com/achiu)\@NL* [Paul Johnston](http://pajhome.org.uk/crypt/md5/) for his awesome MD5.js implementation.\@NL## License\@NLCopyright (c) 2008 Chris Lloyd.\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL--\@NLmd5.js Copyright (c) 1998 - 2009, Paul Johnston & Contributors\@NLAll rights reserved.\@NLRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\@NLRedistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\@NLNeither the name of the author nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\@NLTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/gravtastic-3.2.6
griddler,1.5.2,MIT,http://thoughtbot.com,"Copyright (c) 2014 Caleb Thompson, Joel Oliveira and thoughtbot, inc.\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/griddler-1.5.2
griddler-mailgun,1.0.3,MIT,https://github.com/bradpauly/griddler-mailgun,"Copyright (c) 2014 Brad Pauly\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/griddler-mailgun-1.0.3
griddler-mandrill,1.1.4,MIT,https://github.com/wingrunr21/griddler-mandrill,"Copyright (c) 2014 Stafford Brunk\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/griddler-mandrill-1.1.4
griddler-postmark,1.0.0,MIT,https://github.com/r38y/griddler-postmark,"Copyright (c) 2014 Randy Schmidt\@NLPortions copyright (c) 2014 Caleb Thompson, Joel Oliveira and thoughtbot, inc.\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/griddler-postmark-1.0.0
griddler-sendgrid,1.1.0,MIT,https://github.com/thoughtbot/griddler,"Copyright (c) 2014 Caleb Thompson\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/griddler-sendgrid-1.1.0
griddler-sparkpost,0.0.3,MIT,https://github.com/PrestoDoctor/griddler-sparkpost,"Copyright (c) 2016 Kyle Powers\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/griddler-sparkpost-0.0.3
groupdate,4.1.0,MIT,https://github.com/ankane/groupdate,"Copyright (c) 2013-2018 Andrew Kane\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/groupdate-4.1.0
hashid-rails,1.2.2,MIT,https://github.com/jcypret/hashid-rails,"The MIT License (MIT)\@NLCopyright (c) 2015 Justin Cypret\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/hashid-rails-1.2.2
hashids,1.0.5,MIT,https://github.com/peterhellberg/hashids.rb,"Copyright (c) 2013-2017 Peter Hellberg\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/hashids-1.0.5
hashie,3.6.0,MIT,https://github.com/intridea/hashie,"Copyright (c) 2009 Intridea, Inc., and Contributors\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/hashie-3.6.0
helpy_imap,1.0,MIT.,https://helpy.io,"The MIT License (MIT)\@NLCopyright (c) 2018 Jan Renz, Scott Miller, and Contributors.\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/bundler/gems/helpy_imap-85f944a0d793
helpy_onboarding,2.0,MIT.,http://helpy.io,"The MIT License (MIT)\@NLCopyright (c) 2017 Helpy.io, LLC, Scott Miller, and Contributors.\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/bundler/gems/helpy_onboarding-cc742c8e4847
hitimes,1.3.0,ISC,http://github.com/copiousfreetime/hitimes,"ISC LICENSE - http://opensource.org/licenses/isc-license.txt\@NLCopyright (c) 2008-2015 Jeremy Hinegardner\@NLPermission to use, copy, modify, and/or distribute this software for any\@NLpurpose with or without fee is hereby granted, provided that the above\@NLcopyright notice and this permission notice appear in all copies.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\@NLWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\@NLMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\@NLANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\@NLWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\@NLACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\@NLOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\@NL# Hitimes\@NL[![Build Status](https://travis-ci.org/copiousfreetime/hitimes.svg?branch=master)](https://travis-ci.org/copiousfreetime/hitimes)\@NLA fast, high resolution timer library for recording peformance metrics.\@NL* [Homepage](http://github.com/copiousfreetime/hitimes)\@NL* [Github project](http://github.com.org/copiousfreetime/hitimes)\@NL* email jeremy at copiousfreetime dot org\@NL* `git clone url git://github.com/copiousfreetime/hitimes.git`\@NL## Table of Contents\@NL* [Requirements](#requirements)\@NL* [Usage](#usage)\@NL* [Contributing](#contributing)\@NL* [Support](#support)\@NL* [License](#license)\@NL## Requirements\@NLHitimes requires the following to run:\@NL * Ruby\@NL## Usage\@NLHitimes easiest to use when installed with `rubygems`:\@NL```sh\@NLgem install hitimes\@NL```\@NLOr as part of your bundler `Gemfile`:\@NL```ruby\@NLgem 'hitimes'\@NL```\@NLYou can load it with the standard ruby require statement.\@NL```ruby\@NLrequire 'hitimes'\@NL```\@NL### Interval\@NLUse `Hitimes::Interval` to calculate only the duration of a block of code.\@NLReturns the time as seconds.\@NL```ruby\@NLduration = Hitimes::Interval.measure do\@NL 1_000_000.times do |x|\@NL 2 + 2\@NL end\@NL end\@NLputs duration # => 0.047414297 (seconds)\@NL```\@NL### TimedMetric\@NLUse a `Hitimes::TimedMetric` to calculate statistics about an iterative operation\@NL```ruby\@NLtimed_metric = Hitimes::TimedMetric.new('operation on items')\@NL```\@NLExplicitly use `start` and `stop`:\@NL```ruby\@NLcollection.each do |item|\@NL timed_metric.start\@NL # .. do something with item\@NL timed_metric.stop\@NLend\@NL```\@NLOr use the block. In `TimedMetric` the return value of `measure` is the return\@NLvalue of the block.\@NL```ruby\@NLcollection.each do |item|\@NL result_of_do_something = timed_metric.measure { do_something( item ) }\@NLend\@NL```\@NLAnd then look at the stats\@NL```ruby\@NLputs timed_metric.mean\@NLputs timed_metric.max\@NLputs timed_metric.min\@NLputs timed_metric.stddev\@NLputs timed_metric.rate\@NL```\@NL### ValueMetric\@NLUse a `Hitimes::ValueMetric` to calculate statistics about measured samples.\@NL``` ruby\@NLvalue_metric = Hitimes::ValueMetric.new( 'size of thing' )\@NLloop do\@NL # ... do stuff changing sizes of 'thing'\@NL value_metric.measure( thing.size )\@NL # ... do other stuff that may change size of thing\@NLend\@NLputs value_metric.mean\@NLputs value_metric.max\@NLputs value_metric.min\@NLputs value_metric.stddev\@NLputs value_metric.rate\@NL```\@NL### TimedValueMetric\@NLUse a `Hitimes::TimedValueMetric` to calculate statistics about batches of samples.\@NL``` ruby\@NLtimed_value_metric = Hitimes::TimedValueMetric.new( 'batch times' )\@NLloop do \@NL batch = ... # get a batch of things\@NL timed_value_metric.start\@NL # .. do something with batch\@NL timed_value_metric.stop( batch.size )\@NLend\@NLputs timed_value_metric.rate\@NLputs timed_value_metric.timed_stats.mean\@NLputs timed_value_metric.timed_stats.max\@NLputs timed_value_metric.timed_stats.min\@NLputs timed_value_metric.timed_stats.stddev\@NLputs timed_value_metric.value_stats.mean\@NLputs timed_value_metric.value_stats.max\@NLputs timed_value_metric.value_stats.min\@NLputs timed_value_metric.value_stats.stddev\@NL```\@NL### Implementation details\@NLHitimes use the appropriate low-level system call for each operating system to\@NLget the highest granularity time increment possible. Generally this is\@NLnanosecond resolution, or whatever the hardware chip in the CPU supports.\@NLIt currently supports any of the following systems:\@NL* any system with the POSIX call `clock_gettime()`\@NL* Mac OS X\@NL* Windows\@NL* JRuby\@NL## Support\@NLHitimes is supported on whatever versions of ruby are currently supported.\@NLHitimes also follows [semantic versioning](http://semver.org/).\@NLThe current officially supported versions of Ruby are:\@NL* MRI Ruby (all platforms) 2.2 - 2.4\@NL* JRuby 1.7.25, 9.0.5.0\@NLUnofficially supported versions, these have been supported in the past when they\@NLwere the primary rubies around. In all likelihood they still work, but are not\@NLsupported.\@NL* MRI Ruby (linux/mac/bsd/unix/etc) - everything from 1.8.7 to 2.1\@NL* MRI Ruby (windows) - 2.0 and up\@NL * Ruby 1.8 and 1.9 for windows are supported in hitimes version 1.2.4 or earlier\@NL* JRuby - I think everything back to 1.4\@NL* Rubinius\@NL## Contributing\@NLPlease read the [CONTRIBUTING.md](CONTRIBUTING.md)\@NL## Credits\@NL* [Bruce Williams](https://github.com/bruce) for suggesting the idea\@NL## License\@NLHitimes is licensed under the [ISC](https://opensource.org/licenses/ISC)\@NLlicense.\@NLCopyright (c) 2008-2016 Jeremy Hinegardner\@NLPermission to use, copy, modify, and/or distribute this software for any\@NLpurpose with or without fee is hereby granted, provided that the above\@NLcopyright notice and this permission notice appear in all copies.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\@NLREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\@NLFITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\@NLINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\@NLLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\@NLOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\@NLPERFORMANCE OF THIS SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/hitimes-1.3.0
hopscotch,0.2.7,Apache 2.0,https://github.com/linkedin/hopscotch,"\@NL Apache License\@NL Version 2.0, January 2004\@NL http://www.apache.org/licenses/\@NL TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\@NL 1. Definitions.\@NL ""License"" shall mean the terms and conditions for use, reproduction,\@NL and distribution as defined by Sections 1 through 9 of this document.\@NL ""Licensor"" shall mean the copyright owner or entity authorized by\@NL the copyright owner that is granting the License.\@NL ""Legal Entity"" shall mean the union of the acting entity and all\@NL other entities that control, are controlled by, or are under common\@NL control with that entity. For the purposes of this definition,\@NL ""control"" means (i) the power, direct or indirect, to cause the\@NL direction or management of such entity, whether by contract or\@NL otherwise, or (ii) ownership of fifty percent (50%) or more of the\@NL outstanding shares, or (iii) beneficial ownership of such entity.\@NL ""You"" (or ""Your"") shall mean an individual or Legal Entity\@NL exercising permissions granted by this License.\@NL ""Source"" form shall mean the preferred form for making modifications,\@NL including but not limited to software source code, documentation\@NL source, and configuration files.\@NL ""Object"" form shall mean any form resulting from mechanical\@NL transformation or translation of a Source form, including but\@NL not limited to compiled object code, generated documentation,\@NL and conversions to other media types.\@NL ""Work"" shall mean the work of authorship, whether in Source or\@NL Object form, made available under the License, as indicated by a\@NL copyright notice that is included in or attached to the work\@NL (an example is provided in the Appendix below).\@NL ""Derivative Works"" shall mean any work, whether in Source or Object\@NL form, that is based on (or derived from) the Work and for which the\@NL editorial revisions, annotations, elaborations, or other modifications\@NL represent, as a whole, an original work of authorship. For the purposes\@NL of this License, Derivative Works shall not include works that remain\@NL separable from, or merely link (or bind by name) to the interfaces of,\@NL the Work and Derivative Works thereof.\@NL ""Contribution"" shall mean any work of authorship, including\@NL the original version of the Work and any modifications or additions\@NL to that Work or Derivative Works thereof, that is intentionally\@NL submitted to Licensor for inclusion in the Work by the copyright owner\@NL or by an individual or Legal Entity authorized to submit on behalf of\@NL the copyright owner. For the purposes of this definition, ""submitted""\@NL means any form of electronic, verbal, or written communication sent\@NL to the Licensor or its representatives, including but not limited to\@NL communication on electronic mailing lists, source code control systems,\@NL and issue tracking systems that are managed by, or on behalf of, the\@NL Licensor for the purpose of discussing and improving the Work, but\@NL excluding communication that is conspicuously marked or otherwise\@NL designated in writing by the copyright owner as ""Not a Contribution.""\@NL ""Contributor"" shall mean Licensor and any individual or Legal Entity\@NL on behalf of whom a Contribution has been received by Licensor and\@NL subsequently incorporated within the Work.\@NL 2. Grant of Copyright License. Subject to the terms and conditions of\@NL this License, each Contributor hereby grants to You a perpetual,\@NL worldwide, non-exclusive, no-charge, royalty-free, irrevocable\@NL copyright license to reproduce, prepare Derivative Works of,\@NL publicly display, publicly perform, sublicense, and distribute the\@NL Work and such Derivative Works in Source or Object form.\@NL 3. Grant of Patent License. Subject to the terms and conditions of\@NL this License, each Contributor hereby grants to You a perpetual,\@NL worldwide, non-exclusive, no-charge, royalty-free, irrevocable\@NL (except as stated in this section) patent license to make, have made,\@NL use, offer to sell, sell, import, and otherwise transfer the Work,\@NL where such license applies only to those patent claims licensable\@NL by such Contributor that are necessarily infringed by their\@NL Contribution(s) alone or by combination of their Contribution(s)\@NL with the Work to which such Contribution(s) was submitted. If You\@NL institute patent litigation against any entity (including a\@NL cross-claim or counterclaim in a lawsuit) alleging that the Work\@NL or a Contribution incorporated within the Work constitutes direct\@NL or contributory patent infringement, then any patent licenses\@NL granted to You under this License for that Work shall terminate\@NL as of the date such litigation is filed.\@NL 4. Redistribution. You may reproduce and distribute copies of the\@NL Work or Derivative Works thereof in any medium, with or without\@NL modifications, and in Source or Object form, provided that You\@NL meet the following conditions:\@NL (a) You must give any other recipients of the Work or\@NL Derivative Works a copy of this License; and\@NL (b) You must cause any modified files to carry prominent notices\@NL stating that You changed the files; and\@NL (c) You must retain, in the Source form of any Derivative Works\@NL that You distribute, all copyright, patent, trademark, and\@NL attribution notices from the Source form of the Work,\@NL excluding those notices that do not pertain to any part of\@NL the Derivative Works; and\@NL (d) If the Work includes a ""NOTICE"" text file as part of its\@NL distribution, then any Derivative Works that You distribute must\@NL include a readable copy of the attribution notices contained\@NL within such NOTICE file, excluding those notices that do not\@NL pertain to any part of the Derivative Works, in at least one\@NL of the following places: within a NOTICE text file distributed\@NL as part of the Derivative Works; within the Source form or\@NL documentation, if provided along with the Derivative Works; or,\@NL within a display generated by the Derivative Works, if and\@NL wherever such third-party notices normally appear. The contents\@NL of the NOTICE file are for informational purposes only and\@NL do not modify the License. You may add Your own attribution\@NL notices within Derivative Works that You distribute, alongside\@NL or as an addendum to the NOTICE text from the Work, provided\@NL that such additional attribution notices cannot be construed\@NL as modifying the License.\@NL You may add Your own copyright statement to Your modifications and\@NL may provide additional or different license terms and conditions\@NL for use, reproduction, or distribution of Your modifications, or\@NL for any such Derivative Works as a whole, provided Your use,\@NL reproduction, and distribution of the Work otherwise complies with\@NL the conditions stated in this License.\@NL 5. Submission of Contributions. Unless You explicitly state otherwise,\@NL any Contribution intentionally submitted for inclusion in the Work\@NL by You to the Licensor shall be under the terms and conditions of\@NL this License, without any additional terms or conditions.\@NL Notwithstanding the above, nothing herein shall supersede or modify\@NL the terms of any separate license agreement you may have executed\@NL with Licensor regarding such Contributions.\@NL 6. Trademarks. This License does not grant permission to use the trade\@NL names, trademarks, service marks, or product names of the Licensor,\@NL except as required for reasonable and customary use in describing the\@NL origin of the Work and reproducing the content of the NOTICE file.\@NL 7. Disclaimer of Warranty. Unless required by applicable law or\@NL agreed to in writing, Licensor provides the Work (and each\@NL Contributor provides its Contributions) on an ""AS IS"" BASIS,\@NL WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\@NL implied, including, without limitation, any warranties or conditions\@NL of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\@NL PARTICULAR PURPOSE. You are solely responsible for determining the\@NL appropriateness of using or redistributing the Work and assume any\@NL risks associated with Your exercise of permissions under this License.\@NL 8. Limitation of Liability. In no event and under no legal theory,\@NL whether in tort (including negligence), contract, or otherwise,\@NL unless required by applicable law (such as deliberate and grossly\@NL negligent acts) or agreed to in writing, shall any Contributor be\@NL liable to You for damages, including any direct, indirect, special,\@NL incidental, or consequential damages of any character arising as a\@NL result of this License or out of the use or inability to use the\@NL Work (including but not limited to damages for loss of goodwill,\@NL work stoppage, computer failure or malfunction, or any and all\@NL other commercial damages or losses), even if such Contributor\@NL has been advised of the possibility of such damages.\@NL 9. Accepting Warranty or Additional Liability. While redistributing\@NL the Work or Derivative Works thereof, You may choose to offer,\@NL and charge a fee for, acceptance of support, warranty, indemnity,\@NL or other liability obligations and/or rights consistent with this\@NL License. However, in accepting such obligations, You may act only\@NL on Your own behalf and on Your sole responsibility, not on behalf\@NL of any other Contributor, and only if You agree to indemnify,\@NL defend, and hold each Contributor harmless for any liability\@NL incurred by, or claims asserted against, such Contributor by reason\@NL of your accepting any such warranty or additional liability.\@NL END OF TERMS AND CONDITIONS\@NL\@NL Apache License\@NL Version 2.0, January 2004\@NL http://www.apache.org/licenses/\@NL TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\@NL 1. Definitions.\@NL ""License"" shall mean the terms and conditions for use, reproduction,\@NL and distribution as defined by Sections 1 through 9 of this document.\@NL ""Licensor"" shall mean the copyright owner or entity authorized by\@NL the copyright owner that is granting the License.\@NL ""Legal Entity"" shall mean the union of the acting entity and all\@NL other entities that control, are controlled by, or are under common\@NL control with that entity. For the purposes of this definition,\@NL ""control"" means (i) the power, direct or indirect, to cause the\@NL direction or management of such entity, whether by contract or\@NL otherwise, or (ii) ownership of fifty percent (50%) or more of the\@NL outstanding shares, or (iii) beneficial ownership of such entity.\@NL ""You"" (or ""Your"") shall mean an individual or Legal Entity\@NL exercising permissions granted by this License.\@NL ""Source"" form shall mean the preferred form for making modifications,\@NL including but not limited to software source code, documentation\@NL source, and configuration files.\@NL ""Object"" form shall mean any form resulting from mechanical\@NL transformation or translation of a Source form, including but\@NL not limited to compiled object code, generated documentation,\@NL and conversions to other media types.\@NL ""Work"" shall mean the work of authorship, whether in Source or\@NL Object form, made available under the License, as indicated by a\@NL copyright notice that is included in or attached to the work\@NL (an example is provided in the Appendix below).\@NL ""Derivative Works"" shall mean any work, whether in Source or Object\@NL form, that is based on (or derived from) the Work and for which the\@NL editorial revisions, annotations, elaborations, or other modifications\@NL represent, as a whole, an original work of authorship. For the purposes\@NL of this License, Derivative Works shall not include works that remain\@NL separable from, or merely link (or bind by name) to the interfaces of,\@NL the Work and Derivative Works thereof.\@NL ""Contribution"" shall mean any work of authorship, including\@NL the original version of the Work and any modifications or additions\@NL to that Work or Derivative Works thereof, that is intentionally\@NL submitted to Licensor for inclusion in the Work by the copyright owner\@NL or by an individual or Legal Entity authorized to submit on behalf of\@NL the copyright owner. For the purposes of this definition, ""submitted""\@NL means any form of electronic, verbal, or written communication sent\@NL to the Licensor or its representatives, including but not limited to\@NL communication on electronic mailing lists, source code control systems,\@NL and issue tracking systems that are managed by, or on behalf of, the\@NL Licensor for the purpose of discussing and improving the Work, but\@NL excluding communication that is conspicuously marked or otherwise\@NL designated in writing by the copyright owner as ""Not a Contribution.""\@NL ""Contributor"" shall mean Licensor and any individual or Legal Entity\@NL on behalf of whom a Contribution has been received by Licensor and\@NL subsequently incorporated within the Work.\@NL 2. Grant of Copyright License. Subject to the terms and conditions of\@NL this License, each Contributor hereby grants to You a perpetual,\@NL worldwide, non-exclusive, no-charge, royalty-free, irrevocable\@NL copyright license to reproduce, prepare Derivative Works of,\@NL publicly display, publicly perform, sublicense, and distribute the\@NL Work and such Derivative Works in Source or Object form.\@NL 3. Grant of Patent License. Subject to the terms and conditions of\@NL this License, each Contributor hereby grants to You a perpetual,\@NL worldwide, non-exclusive, no-charge, royalty-free, irrevocable\@NL (except as stated in this section) patent license to make, have made,\@NL use, offer to sell, sell, import, and otherwise transfer the Work,\@NL where such license applies only to those patent claims licensable\@NL by such Contributor that are necessarily infringed by their\@NL Contribution(s) alone or by combination of their Contribution(s)\@NL with the Work to which such Contribution(s) was submitted. If You\@NL institute patent litigation against any entity (including a\@NL cross-claim or counterclaim in a lawsuit) alleging that the Work\@NL or a Contribution incorporated within the Work constitutes direct\@NL or contributory patent infringement, then any patent licenses\@NL granted to You under this License for that Work shall terminate\@NL as of the date such litigation is filed.\@NL 4. Redistribution. You may reproduce and distribute copies of the\@NL Work or Derivative Works thereof in any medium, with or without\@NL modifications, and in Source or Object form, provided that You\@NL meet the following conditions:\@NL (a) You must give any other recipients of the Work or\@NL Derivative Works a copy of this License; and\@NL (b) You must cause any modified files to carry prominent notices\@NL stating that You changed the files; and\@NL (c) You must retain, in the Source form of any Derivative Works\@NL that You distribute, all copyright, patent, trademark, and\@NL attribution notices from the Source form of the Work,\@NL excluding those notices that do not pertain to any part of\@NL the Derivative Works; and\@NL (d) If the Work includes a ""NOTICE"" text file as part of its\@NL distribution, then any Derivative Works that You distribute must\@NL include a readable copy of the attribution notices contained\@NL within such NOTICE file, excluding those notices that do not\@NL pertain to any part of the Derivative Works, in at least one\@NL of the following places: within a NOTICE text file distributed\@NL as part of the Derivative Works; within the Source form or\@NL documentation, if provided along with the Derivative Works; or,\@NL within a display generated by the Derivative Works, if and\@NL wherever such third-party notices normally appear. The contents\@NL of the NOTICE file are for informational purposes only and\@NL do not modify the License. You may add Your own attribution\@NL notices within Derivative Works that You distribute, alongside\@NL or as an addendum to the NOTICE text from the Work, provided\@NL that such additional attribution notices cannot be construed\@NL as modifying the License.\@NL You may add Your own copyright statement to Your modifications and\@NL may provide additional or different license terms and conditions\@NL for use, reproduction, or distribution of Your modifications, or\@NL for any such Derivative Works as a whole, provided Your use,\@NL reproduction, and distribution of the Work otherwise complies with\@NL the conditions stated in this License.\@NL 5. Submission of Contributions. Unless You explicitly state otherwise,\@NL any Contribution intentionally submitted for inclusion in the Work\@NL by You to the Licensor shall be under the terms and conditions of\@NL this License, without any additional terms or conditions.\@NL Notwithstanding the above, nothing herein shall supersede or modify\@NL the terms of any separate license agreement you may have executed\@NL with Licensor regarding such Contributions.\@NL 6. Trademarks. This License does not grant permission to use the trade\@NL names, trademarks, service marks, or product names of the Licensor,\@NL except as required for reasonable and customary use in describing the\@NL origin of the Work and reproducing the content of the NOTICE file.\@NL 7. Disclaimer of Warranty. Unless required by applicable law or\@NL agreed to in writing, Licensor provides the Work (and each\@NL Contributor provides its Contributions) on an ""AS IS"" BASIS,\@NL WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\@NL implied, including, without limitation, any warranties or conditions\@NL of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\@NL PARTICULAR PURPOSE. You are solely responsible for determining the\@NL appropriateness of using or redistributing the Work and assume any\@NL risks associated with Your exercise of permissions under this License.\@NL 8. Limitation of Liability. In no event and under no legal theory,\@NL whether in tort (including negligence), contract, or otherwise,\@NL unless required by applicable law (such as deliberate and grossly\@NL negligent acts) or agreed to in writing, shall any Contributor be\@NL liable to You for damages, including any direct, indirect, special,\@NL incidental, or consequential damages of any character arising as a\@NL result of this License or out of the use or inability to use the\@NL Work (including but not limited to damages for loss of goodwill,\@NL work stoppage, computer failure or malfunction, or any and all\@NL other commercial damages or losses), even if such Contributor\@NL has been advised of the possibility of such damages.\@NL 9. Accepting Warranty or Additional Liability. While redistributing\@NL the Work or Derivative Works thereof, You may choose to offer,\@NL and charge a fee for, acceptance of support, warranty, indemnity,\@NL or other liability obligations and/or rights consistent with this\@NL License. However, in accepting such obligations, You may act only\@NL on Your own behalf and on Your sole responsibility, not on behalf\@NL of any other Contributor, and only if You agree to indemnify,\@NL defend, and hold each Contributor harmless for any liability\@NL incurred by, or claims asserted against, such Contributor by reason\@NL of your accepting any such warranty or additional liability.\@NL END OF TERMS AND CONDITIONS",/Users/scott/Workspace/Helpy/helpy/vendor/assets/components/hopscotch
htmlentities,4.3.4,MIT,https://github.com/threedaymonk/htmlentities,"== Licence (MIT)\@NLCopyright (c) 2005-2013 Paul Battley\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all\@NLcopies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\@NLSOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/htmlentities-4.3.4
http-cookie,1.0.3,MIT,https://github.com/sparklemotion/http-cookie,"Copyright (c) 2013 Akinori MUSHA\@NLCopyright (c) 2011-2012 Akinori MUSHA, Eric Hodel\@NLCopyright (c) 2006-2011 Aaron Patterson, Mike Dalessio\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/http-cookie-1.0.3
http_accept_language,2.1.1,MIT,https://github.com/iain/http_accept_language,"",/Users/scott/.rvm/gems/ruby-2.4.6/gems/http_accept_language-2.1.1
i18n,0.9.5,MIT,http://github.com/svenfuchs/i18n,"Copyright (c) 2008 The Ruby I18n team\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/i18n-0.9.5
i18n-country-translations,1.3.0,"MIT,GPL-3.0",https://github.com/onomojo/i18n-country-translations,"Copyright 2012 YOURNAME\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/i18n-country-translations-1.3.0
ice_nine,0.11.2,MIT,https://github.com/dkubb/ice_nine,"Copyright (c) 2012-2014 Dan Kubb\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/ice_nine-0.11.2
initial.js,0.1.0,MIT,https://github.com/judesfernando/initial.js,"The MIT License (MIT)\@NLCopyright (c) 2014 Jude Fernando\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all\@NLcopies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\@NLSOFTWARE.",/Users/scott/Workspace/Helpy/helpy/vendor/assets/components/initial.js
inky-rb,1.3.7.5,MIT,https://github.com/zurb/inky-rb,"Copyright (c) 2013-2018 ZURB, inc.\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/inky-rb-1.3.7.5
ipaddress,0.8.3,MIT,https://github.com/bluemonk/ipaddress,"Copyright (c) 2009-2015 Marco Ceresa\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/ipaddress-0.8.3
jbuilder,2.8.0,MIT,https://github.com/rails/jbuilder,"Copyright (c) 2011-2018 David Heinemeier Hansson, 37signals\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/jbuilder-2.8.0
jquery-fileupload-rails,1.0.0,MIT,https://github.com/tors/jquery-fileupload-rails,"# jQuery File Upload for Rails\@NL[jQuery-File-Plugin](https://github.com/blueimp/jQuery-File-Upload) is a file upload plugin written by [Sebastian Tschan](https://github.com/blueimp). jQuery File Upload features multiple file selection, drag&drop support, progress bars and preview images for jQuery. Supports cross-domain, chunked and resumable file uploads and client-side image resizing.\@NLjquery-fileupload-rails is a library that integrates jQuery File Upload for Rails 3.1 Asset Pipeline (Rails 3.2 supported).\@NL## Plugin versions\@NL* jQuery File Upload Plugin v9.12.5\@NL## Installing Gem\@NL gem ""jquery-fileupload-rails""\@NL## Using the javascripts\@NLRequire jquery-fileupload in your app/assets/application.js file.\@NL //= require jquery-fileupload\@NLThe snippet above will add the following js files to the manifest file.\@NL //= require jquery-fileupload/vendor/jquery.ui.widget\@NL //= require jquery-fileupload/vendor/tmpl\@NL //= require jquery-fileupload/vendor/load-image.all.min\@NL //= require jquery-fileupload/vendor/canvas-to-blob\@NL //= require jquery-fileupload/jquery.iframe-transport\@NL //= require jquery-fileupload/jquery.fileupload\@NL //= require jquery-fileupload/jquery.fileupload-process\@NL //= require jquery-fileupload/jquery.fileupload-image\@NL //= require jquery-fileupload/jquery.fileupload-audio\@NL //= require jquery-fileupload/jquery.fileupload-video\@NL //= require jquery-fileupload/jquery.fileupload-validate\@NL //= require jquery-fileupload/jquery.fileupload-ui\@NL //= require jquery-fileupload/locale\@NL //= require jquery-fileupload/jquery.fileupload-angular\@NL //= require jquery-fileupload/jquery.fileupload-jquery-ui\@NL //= require jquery-fileupload/cors/jquery.postmessage-transport\@NL //= require jquery-fileupload/cors/jquery.xdr-transport\@NLIf you only need the basic files, just add the code below to your application.js file. [Basic setup guide](https://github.com/blueimp/jQuery-File-Upload/wiki/Basic-plugin)\@NL //= require jquery-fileupload/basic\@NLThe basic setup only includes the following files:\@NL //= require jquery-fileupload/vendor/jquery.ui.widget\@NL //= require jquery-fileupload/jquery.iframe-transport\@NL //= require jquery-fileupload/jquery.fileupload\@NLYou can also require the following to get the js from the Basic-Plus, AngularJS and jQuery UI Examples:\@NL //= require jquery-fileupload/basic-plus\@NL //= require jquery-fileupload/angularjs\@NL //= require jquery-fileupload/jquery-ui\@NL## Using the stylesheet\@NLRequire the stylesheet file to app/assets/stylesheets/application.css\@NL *= require jquery.fileupload\@NL *= require jquery.fileupload-ui\@NLThere are also noscript styles for Browsers with Javascript disabled, to use them create a noscript.css and add it to your precompile-list and layout inside a noscript tag:\@NL *= require jquery.fileupload-noscript\@NL *= require jquery.fileupload-ui-noscript\@NL## Using the middleware\@NLThe `jquery.iframe-transport` fallback transport has some special caveats regarding the response data type, http status, and character encodings. `jquery-fileupload-rails` includes a middleware that handles these inconsistencies seamlessly. If you decide to use it, create an initializer that adds the middleware to your application's middleware stack.\@NL```ruby\@NLRails.application.config.middleware.use JQuery::FileUpload::Rails::Middleware\@NL```\@NL## Example apps\@NL[jquery-fileupload-rails-paperclip-example](https://github.com/tors/jquery-fileupload-rails-paperclip-example): jQuery File Upload in Rails 3.2 with Paperclip and Bootstrap\@NL[rails-resumable-jquery-fileupload](https://github.com/vgantchev/rails-resumable-jquery-fileupload): resumable (chunked) uploads with jQuery File Upload in Rails 4.2 using Paperclip\@NLYou can also check out Ryan Bate's RailsCast [jQuery File Upload episode](http://railscasts.com/episodes/381-jquery-file-upload). \@NL## Thanks\@NLThanks to [Sebastian Tschan](https://github.com/blueimp) for writing an awesome file upload plugin.\@NL## License\@NLCopyright (c) 2012 Tors Dalid\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ""Software""), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/jquery-fileupload-rails-1.0.0
jquery-minicolors-rails,2.2.6.1,MIT,https://github.com/kostia/jquery-minicolors-rails,"# jQuery colorpicker for Rails\@NL[![Gem Version](https://badge.fury.io/rb/jquery-minicolors-rails.png)](http://badge.fury.io/rb/jquery-minicolors-rails)\@NL[![Build Status](https://travis-ci.org/kostia/jquery-minicolors-rails.png)](https://travis-ci.org/kostia/jquery-minicolors-rails)\@NL[![Code Climate](https://codeclimate.com/github/kostia/jquery-minicolors-rails.png)](https://codeclimate.com/github/kostia/jquery-minicolors-rails)\@NLThis gem embeddes the jQuery colorpicker in the Rails asset pipeline.\@NL![Screenshot](https://raw.github.com/kostia/jquery-minicolors-rails/master/screenshot.png)\@NLSee http://labs.abeautifulsite.net/jquery-minicolors/\@NL## Installation\@NLAdd to `Gemfile` and run `bundle install`:\@NL```ruby\@NL# Gemfile\@NLgem 'jquery-minicolors-rails'\@NL```\@NLAdd to `app/assets/javascripts/application.js`:\@NL```javascript\@NL//= require jquery # Not included\@NL//= require jquery.minicolors\@NL```\@NLAdd to `app/assets/stylesheets/application.css`:\@NL```css\@NL/*\@NL *= require jquery.minicolors\@NL */\@NL```\@NL## Usage\@NLJust call `minicolors()` with any text-input selector:\@NL```coffeescript\@NL# With default options:\@NL$ -> $('input[type=text]').minicolors()\@NL# With Bootstrap theme (Bootstrap-3 is supported):\@NL$ -> $('input[type=text]').minicolors theme: 'bootstrap'\@NL```\@NL### SimpleForm\@NLAdd to `app/assets/javascripts/application.js`:\@NL```javascript\@NL//= require jquery # Not included\@NL//= require jquery.minicolors\@NL//= require jquery.minicolors.simple_form\@NL```\@NLSee https://github.com/plataformatec/simple_form\@NL```erb\@NL<%# app/views/balloons/_form.html.erb %>\@NL<%# Basic usage: %>\@NL<%= simple_form_for @balloon do |f| %>\@NL <%= f.input :color, as: :minicolors %>\@NL<% end %>\@NL<%# With Bootstrap theme and swatch on the right: %>\@NL<%= simple_form_for @balloon do |f| %>\@NL <%= f.input :color, as: :minicolors, input_html: {data: {\@NL minicolors: {theme: :bootstrap, position: :right}}} %>\@NL<% end %>\@NL```\@NL## Testing\@NL```bash\@NLbundle exec rspec\@NL```\@NLSince this gem uses a lot of different frameworks, anything is possible. So despite the specs are\@NL""green"", please verify manually:\@NL```bash\@NLcd test_app\@NLbundle\@NLrails s\@NLopen http://localhost:3000/ # Assert everything looks & works good.\@NL```\@NL```bash\@NLrm -rf tmp/cache\@NLrm -rf public/assets\@NLRAILS_ENV=production bundle exec rake assets:precompile\@NLrails s -eproduction\@NLopen http://localhost:3000/ # Assert everything looks & works good.\@NL```\@NL## Versioning\@NL[![Gem Version](https://badge.fury.io/rb/jquery-minicolors-rails.png)](http://badge.fury.io/rb/jquery-minicolors-rails)\@NLGem has the same version as the vendored minicolors library (http://git.io/ZWaGNg)\@NL__plus__ an extra minor version number.\@NL## MIT-License\@NLCopyright 2012 Kostiantyn Kahanskyi\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/jquery-minicolors-rails-2.2.6.1
jquery-rails,4.3.3,MIT,https://github.com/rails/jquery-rails,"The MIT License\@NLCopyright (c) 2010-2016 Andre Arko\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/jquery-rails-4.3.3
jquery-turbolinks,2.1.0,MIT,https://github.com/kossnocorp/jquery.turbolinks,"The MIT License\@NLCopyright (c) 2012 Sasha Koss\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ""Software""), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/jquery-turbolinks-2.1.0
jquery-ui-rails,6.0.1,MIT,https://github.com/joliss/jquery-ui-rails,"",/Users/scott/.rvm/gems/ruby-2.4.6/gems/jquery-ui-rails-6.0.1
js-cookie,2.1.0,MIT,https://github.com/js-cookie/js-cookie,"Copyright 2014 Klaus Hartl\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/Workspace/Helpy/helpy/vendor/assets/components/js-cookie
js_regex,1.2.3,MIT,https://github.com/janosch-x/js_regex,"",/Users/scott/.rvm/gems/ruby-2.4.6/gems/js_regex-1.2.3
json,2.2.0,ruby,http://flori.github.com/json,"",/Users/scott/.rvm/gems/ruby-2.4.6/gems/json-2.2.0
jwt,2.1.0,MIT,http://github.com/jwt/ruby-jwt,"Copyright (c) 2011 Jeff Lindsay\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ""Software""), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL# JWT\@NL[![Gem Version](https://badge.fury.io/rb/jwt.svg)](https://badge.fury.io/rb/jwt)\@NL[![Build Status](https://travis-ci.org/jwt/ruby-jwt.svg)](https://travis-ci.org/jwt/ruby-jwt)\@NL[![Code Climate](https://codeclimate.com/github/jwt/ruby-jwt/badges/gpa.svg)](https://codeclimate.com/github/jwt/ruby-jwt)\@NL[![Test Coverage](https://codeclimate.com/github/jwt/ruby-jwt/badges/coverage.svg)](https://codeclimate.com/github/jwt/ruby-jwt/coverage)\@NL[![Issue Count](https://codeclimate.com/github/jwt/ruby-jwt/badges/issue_count.svg)](https://codeclimate.com/github/jwt/ruby-jwt)\@NLA pure ruby implementation of the [RFC 7519 OAuth JSON Web Token (JWT)](https://tools.ietf.org/html/rfc7519) standard.\@NLIf you have further questions related to development or usage, join us: [ruby-jwt google group](https://groups.google.com/forum/#!forum/ruby-jwt).\@NL## Announcements\@NL* Ruby 1.9.3 support was dropped at December 31st, 2016.\@NL* Version 1.5.3 yanked. See: [#132](https://github.com/jwt/ruby-jwt/issues/132) and [#133](https://github.com/jwt/ruby-jwt/issues/133)\@NL## Installing\@NL### Using Rubygems:\@NL```bash\@NLsudo gem install jwt\@NL```\@NL### Using Bundler:\@NLAdd the following to your Gemfile\@NL```\@NLgem 'jwt'\@NL```\@NLAnd run `bundle install`\@NL## Algorithms and Usage\@NLThe JWT spec supports NONE, HMAC, RSASSA, ECDSA and RSASSA-PSS algorithms for cryptographic signing. Currently the jwt gem supports NONE, HMAC, RSASSA and ECDSA. If you are using cryptographic signing, you need to specify the algorithm in the options hash whenever you call JWT.decode to ensure that an attacker [cannot bypass the algorithm verification step](https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/).\@NLSee: [ JSON Web Algorithms (JWA) 3.1. ""alg"" (Algorithm) Header Parameter Values for JWS](https://tools.ietf.org/html/rfc7518#section-3.1)\@NL**NONE**\@NL* none - unsigned token\@NL```ruby\@NLrequire 'jwt'\@NLpayload = {:data => 'test'}\@NL# IMPORTANT: set nil as password parameter\@NLtoken = JWT.encode payload, nil, 'none'\@NL# eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJkYXRhIjoidGVzdCJ9.\@NLputs token\@NL# Set password to nil and validation to false otherwise this won't work\@NLdecoded_token = JWT.decode token, nil, false\@NL# Array\@NL# [\@NL# {""data""=>""test""}, # payload\@NL# {""alg""=>""none""} # header\@NL# ]\@NLputs decoded_token\@NL```\@NL**HMAC**\@NL* HS256 - HMAC using SHA-256 hash algorithm\@NL* HS512256 - HMAC using SHA-512-256 hash algorithm (only available with RbNaCl; see note below)\@NL* HS384 - HMAC using SHA-384 hash algorithm\@NL* HS512 - HMAC using SHA-512 hash algorithm\@NL```ruby\@NLhmac_secret = 'my$ecretK3y'\@NLtoken = JWT.encode payload, hmac_secret, 'HS256'\@NL# eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJkYXRhIjoidGVzdCJ9.ZxW8go9hz3ETCSfxFxpwSkYg_602gOPKearsf6DsxgY\@NLputs token\@NLdecoded_token = JWT.decode token, hmac_secret, true, { :algorithm => 'HS256' }\@NL# Array\@NL# [\@NL# {""data""=>""test""}, # payload\@NL# {""alg""=>""HS256""} # header\@NL# ]\@NLputs decoded_token\@NL```\@NLNote: If [RbNaCl](https://github.com/cryptosphere/rbnacl) is loadable, ruby-jwt will use it for HMAC-SHA256, HMAC-SHA512-256, and HMAC-SHA512. RbNaCl enforces a maximum key size of 32 bytes for these algorithms.\@NL[RbNaCl](https://github.com/cryptosphere/rbnacl) requires\@NL[libsodium](https://github.com/jedisct1/libsodium), it can be installed\@NLon MacOS with `brew install libsodium`.\@NL**RSA**\@NL* RS256 - RSA using SHA-256 hash algorithm\@NL* RS384 - RSA using SHA-384 hash algorithm\@NL* RS512 - RSA using SHA-512 hash algorithm\@NL```ruby\@NLrsa_private = OpenSSL::PKey::RSA.generate 2048\@NLrsa_public = rsa_private.public_key\@NLtoken = JWT.encode payload, rsa_private, 'RS256'\@NL# eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ0ZXN0IjoiZGF0YSJ9.c2FynXNyi6_PeKxrDGxfS3OLwQ8lTDbWBWdq7oMviCy2ZfFpzvW2E_odCWJrbLof-eplHCsKzW7MGAntHMALXgclm_Cs9i2Exi6BZHzpr9suYkrhIjwqV1tCgMBCQpdeMwIq6SyKVjgH3L51ivIt0-GDDPDH1Rcut3jRQzp3Q35bg3tcI2iVg7t3Msvl9QrxXAdYNFiS5KXH22aJZ8X_O2HgqVYBXfSB1ygTYUmKTIIyLbntPQ7R22rFko1knGWOgQCoYXwbtpuKRZVFrxX958L2gUWgb4jEQNf3fhOtkBm1mJpj-7BGst00o8g_3P2zHy-3aKgpPo1XlKQGjRrrxA\@NLputs token\@NLdecoded_token = JWT.decode token, rsa_public, true, { :algorithm => 'RS256' }\@NL# Array\@NL# [\@NL# {""data""=>""test""}, # payload\@NL# {""alg""=>""RS256""} # header\@NL# ]\@NLputs decoded_token\@NL```\@NL**ECDSA**\@NL* ES256 - ECDSA using P-256 and SHA-256\@NL* ES384 - ECDSA using P-384 and SHA-384\@NL* ES512 - ECDSA using P-521 and SHA-512\@NL```ruby\@NLecdsa_key = OpenSSL::PKey::EC.new 'prime256v1'\@NLecdsa_key.generate_key\@NLecdsa_public = OpenSSL::PKey::EC.new ecdsa_key\@NLecdsa_public.private_key = nil\@NLtoken = JWT.encode payload, ecdsa_key, 'ES256'\@NL# eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJ0ZXN0IjoiZGF0YSJ9.MEQCIAtShrxRwP1L9SapqaT4f7hajDJH4t_rfm-YlZcNDsBNAiB64M4-JRfyS8nRMlywtQ9lHbvvec9U54KznzOe1YxTyA\@NLputs token\@NLdecoded_token = JWT.decode token, ecdsa_public, true, { :algorithm => 'ES256' }\@NL# Array\@NL# [\@NL# {""test""=>""data""}, # payload\@NL# {""alg""=>""ES256""} # header\@NL# ]\@NLputs decoded_token\@NL```\@NL**EDDSA**\@NLIn order to use this algorithm you need to add the `RbNaCl` gem to you `Gemfile`.\@NL```ruby\@NLgem 'rbnacl'\@NL```\@NLFor more detailed installation instruction check the official [repository](https://github.com/cryptosphere/rbnacl) on GitHub.\@NL* ED25519 \@NL```ruby \@NLprivate_key = RbNaCl::Signatures::Ed25519::SigningKey.new(""abcdefghijklmnopqrstuvwxyzABCDEF"")\@NLpublic_key = private_key.verify_key\@NLtoken = JWT.encode payload, private_key, 'ED25519' \@NL# eyJhbGciOiJFRDI1NTE5In0.eyJ0ZXN0IjoiZGF0YSJ9.-Ki0vxVOlsPXovPsYRT_9OXrLSgQd4RDAgCLY_PLmcP4q32RYy-yUUmX82ycegdekR9wo26me1wOzjmSU5nTCQ\@NLputs token\@NLdecoded_token = JWT.decode token, public_key, true, {:algorithm => 'ED25519' } \@NL# Array\@NL# [\@NL# {""test""=>""data""}, # payload\@NL# {""alg""=>""ED25519""} # header\@NL# ]\@NL```\@NL**RSASSA-PSS**\@NLNot implemented.\@NL## Support for reserved claim names\@NLJSON Web Token defines some reserved claim names and defines how they should be\@NLused. JWT supports these reserved claim names:\@NL - 'exp' (Expiration Time) Claim\@NL - 'nbf' (Not Before Time) Claim\@NL - 'iss' (Issuer) Claim\@NL - 'aud' (Audience) Claim\@NL - 'jti' (JWT ID) Claim\@NL - 'iat' (Issued At) Claim\@NL - 'sub' (Subject) Claim\@NL## Add custom header fields\@NLRuby-jwt gem supports custom [header fields] (https://tools.ietf.org/html/rfc7519#section-5)\@NLTo add custom header fields you need to pass `header_fields` parameter\@NL```ruby\@NLtoken = JWT.encode payload, key, algorithm='HS256', header_fields={}\@NL```\@NL**Example:**\@NL```ruby\@NLrequire 'jwt'\@NLpayload = {:data => 'test'}\@NL# IMPORTANT: set nil as password parameter\@NLtoken = JWT.encode payload, nil, 'none', { :typ => ""JWT"" }\@NL# eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJkYXRhIjoidGVzdCJ9.\@NLputs token\@NL# Set password to nil and validation to false otherwise this won't work\@NLdecoded_token = JWT.decode token, nil, false\@NL# Array\@NL# [\@NL# {""data""=>""test""}, # payload\@NL# {""typ""=>""JWT"", ""alg""=>""none""} # header\@NL# ]\@NLputs decoded_token\@NL```\@NL### Expiration Time Claim\@NLFrom [Oauth JSON Web Token 4.1.4. ""exp"" (Expiration Time) Claim](https://tools.ietf.org/html/rfc7519#section-4.1.4):\@NL> The `exp` (expiration time) claim identifies the expiration time on or after which the JWT MUST NOT be accepted for processing. The processing of the `exp` claim requires that the current date/time MUST be before the expiration date/time listed in the `exp` claim. Implementers MAY provide for some small `leeway`, usually no more than a few minutes, to account for clock skew. Its value MUST be a number containing a ***NumericDate*** value. Use of this claim is OPTIONAL.\@NL**Handle Expiration Claim**\@NL```ruby\@NLexp = Time.now.to_i + 4 * 3600\@NLexp_payload = { :data => 'data', :exp => exp }\@NLtoken = JWT.encode exp_payload, hmac_secret, 'HS256'\@NLbegin\@NL decoded_token = JWT.decode token, hmac_secret, true, { :algorithm => 'HS256' }\@NLrescue JWT::ExpiredSignature\@NL # Handle expired token, e.g. logout user or deny access\@NLend\@NL```\@NL**Adding Leeway**\@NL```ruby\@NLexp = Time.now.to_i - 10\@NLleeway = 30 # seconds\@NLexp_payload = { :data => 'data', :exp => exp }\@NL# build expired token\@NLtoken = JWT.encode exp_payload, hmac_secret, 'HS256'\@NLbegin\@NL # add leeway to ensure the token is still accepted\@NL decoded_token = JWT.decode token, hmac_secret, true, { :exp_leeway => leeway, :algorithm => 'HS256' }\@NLrescue JWT::ExpiredSignature\@NL # Handle expired token, e.g. logout user or deny access\@NLend\@NL```\@NL### Not Before Time Claim\@NLFrom [Oauth JSON Web Token 4.1.5. ""nbf"" (Not Before) Claim](https://tools.ietf.org/html/rfc7519#section-4.1.5):\@NL> The `nbf` (not before) claim identifies the time before which the JWT MUST NOT be accepted for processing. The processing of the `nbf` claim requires that the current date/time MUST be after or equal to the not-before date/time listed in the `nbf` claim. Implementers MAY provide for some small `leeway`, usually no more than a few minutes, to account for clock skew. Its value MUST be a number containing a ***NumericDate*** value. Use of this claim is OPTIONAL.\@NL**Handle Not Before Claim**\@NL```ruby\@NLnbf = Time.now.to_i - 3600\@NLnbf_payload = { :data => 'data', :nbf => nbf }\@NLtoken = JWT.encode nbf_payload, hmac_secret, 'HS256'\@NLbegin\@NL decoded_token = JWT.decode token, hmac_secret, true, { :algorithm => 'HS256' }\@NLrescue JWT::ImmatureSignature\@NL # Handle invalid token, e.g. logout user or deny access\@NLend\@NL```\@NL**Adding Leeway**\@NL```ruby\@NLnbf = Time.now.to_i + 10\@NLleeway = 30\@NLnbf_payload = { :data => 'data', :nbf => nbf }\@NL# build expired token\@NLtoken = JWT.encode nbf_payload, hmac_secret, 'HS256'\@NLbegin\@NL # add leeway to ensure the token is valid\@NL decoded_token = JWT.decode token, hmac_secret, true, { :nbf_leeway => leeway, :algorithm => 'HS256' }\@NLrescue JWT::ImmatureSignature\@NL # Handle invalid token, e.g. logout user or deny access\@NLend\@NL```\@NL### Issuer Claim\@NLFrom [Oauth JSON Web Token 4.1.1. ""iss"" (Issuer) Claim](https://tools.ietf.org/html/rfc7519#section-4.1.1):\@NL> The `iss` (issuer) claim identifies the principal that issued the JWT. The processing of this claim is generally application specific. The `iss` value is a case-sensitive string containing a ***StringOrURI*** value. Use of this claim is OPTIONAL.\@NLYou can pass multiple allowed issuers as an Array, verification will pass if one of them matches the `iss` value in the payload.\@NL```ruby\@NLiss = 'My Awesome Company Inc. or https://my.awesome.website/'\@NLiss_payload = { :data => 'data', :iss => iss }\@NLtoken = JWT.encode iss_payload, hmac_secret, 'HS256'\@NLbegin\@NL # Add iss to the validation to check if the token has been manipulated\@NL decoded_token = JWT.decode token, hmac_secret, true, { :iss => iss, :verify_iss => true, :algorithm => 'HS256' }\@NLrescue JWT::InvalidIssuerError\@NL # Handle invalid token, e.g. logout user or deny access\@NLend\@NL```\@NL### Audience Claim\@NLFrom [Oauth JSON Web Token 4.1.3. ""aud"" (Audience) Claim](https://tools.ietf.org/html/rfc7519#section-4.1.3):\@NL> The `aud` (audience) claim identifies the recipients that the JWT is intended for. Each principal intended to process the JWT MUST identify itself with a value in the audience claim. If the principal processing the claim does not identify itself with a value in the `aud` claim when this claim is present, then the JWT MUST be rejected. In the general case, the `aud` value is an array of case-sensitive strings, each containing a ***StringOrURI*** value. In the special case when the JWT has one audience, the `aud` value MAY be a single case-sensitive string containing a ***StringOrURI*** value. The interpretation of audience values is generally application specific. Use of this claim is OPTIONAL.\@NL```ruby\@NLaud = ['Young', 'Old']\@NLaud_payload = { :data => 'data', :aud => aud }\@NLtoken = JWT.encode aud_payload, hmac_secret, 'HS256'\@NLbegin\@NL # Add aud to the validation to check if the token has been manipulated\@NL decoded_token = JWT.decode token, hmac_secret, true, { :aud => aud, :verify_aud => true, :algorithm => 'HS256' }\@NLrescue JWT::InvalidAudError\@NL # Handle invalid token, e.g. logout user or deny access\@NL puts 'Audience Error'\@NLend\@NL```\@NL### JWT ID Claim\@NLFrom [Oauth JSON Web Token 4.1.7. ""jti"" (JWT ID) Claim](https://tools.ietf.org/html/rfc7519#section-4.1.7):\@NL> The `jti` (JWT ID) claim provides a unique identifier for the JWT. The identifier value MUST be assigned in a manner that ensures that there is a negligible probability that the same value will be accidentally assigned to a different data object; if the application uses multiple issuers, collisions MUST be prevented among values produced by different issuers as well. The `jti` claim can be used to prevent the JWT from being replayed. The `jti` value is a case-sensitive string. Use of this claim is OPTIONAL.\@NL```ruby\@NL# Use the secret and iat to create a unique key per request to prevent replay attacks\@NLjti_raw = [hmac_secret, iat].join(':').to_s\@NLjti = Digest::MD5.hexdigest(jti_raw)\@NLjti_payload = { :data => 'data', :iat => iat, :jti => jti }\@NLtoken = JWT.encode jti_payload, hmac_secret, 'HS256'\@NLbegin\@NL # If :verify_jti is true, validation will pass if a JTI is present\@NL #decoded_token = JWT.decode token, hmac_secret, true, { :verify_jti => true, :algorithm => 'HS256' }\@NL # Alternatively, pass a proc with your own code to check if the JTI has already been used\@NL decoded_token = JWT.decode token, hmac_secret, true, { :verify_jti => proc { |jti| my_validation_method(jti) }, :algorithm => 'HS256' }\@NLrescue JWT::InvalidJtiError\@NL # Handle invalid token, e.g. logout user or deny access\@NL puts 'Error'\@NLend\@NL```\@NL### Issued At Claim\@NLFrom [Oauth JSON Web Token 4.1.6. ""iat"" (Issued At) Claim](https://tools.ietf.org/html/rfc7519#section-4.1.6):\@NL> The `iat` (issued at) claim identifies the time at which the JWT was issued. This claim can be used to determine the age of the JWT. Its value MUST be a number containing a ***NumericDate*** value. Use of this claim is OPTIONAL.\@NL**Handle Issued At Claim**\@NL```ruby\@NLiat = Time.now.to_i\@NLiat_payload = { :data => 'data', :iat => iat }\@NLtoken = JWT.encode iat_payload, hmac_secret, 'HS256'\@NLbegin\@NL # Add iat to the validation to check if the token has been manipulated\@NL decoded_token = JWT.decode token, hmac_secret, true, { :verify_iat => true, :algorithm => 'HS256' }\@NLrescue JWT::InvalidIatError\@NL # Handle invalid token, e.g. logout user or deny access\@NLend\@NL```\@NL**Adding Leeway**\@NL```ruby\@NLiat = Time.now.to_i + 10\@NLleeway = 30 # seconds\@NLiat_payload = { :data => 'data', :iat => iat }\@NL# build token issued in the future\@NLtoken = JWT.encode iat_payload, hmac_secret, 'HS256'\@NLbegin\@NL # add leeway to ensure the token is accepted\@NL decoded_token = JWT.decode token, hmac_secret, true, { :iat_leeway => leeway, :verify_iat => true, :algorithm => 'HS256' }\@NLrescue JWT::InvalidIatError\@NL # Handle invalid token, e.g. logout user or deny access\@NLend\@NL```\@NL### Subject Claim\@NLFrom [Oauth JSON Web Token 4.1.2. ""sub"" (Subject) Claim](https://tools.ietf.org/html/rfc7519#section-4.1.2):\@NL> The `sub` (subject) claim identifies the principal that is the subject of the JWT. The Claims in a JWT are normally statements about the subject. The subject value MUST either be scoped to be locally unique in the context of the issuer or be globally unique. The processing of this claim is generally application specific. The sub value is a case-sensitive string containing a ***StringOrURI*** value. Use of this claim is OPTIONAL.\@NL```ruby\@NLsub = 'Subject'\@NLsub_payload = { :data => 'data', :sub => sub }\@NLtoken = JWT.encode sub_payload, hmac_secret, 'HS256'\@NLbegin\@NL # Add sub to the validation to check if the token has been manipulated\@NL decoded_token = JWT.decode token, hmac_secret, true, { 'sub' => sub, :verify_sub => true, :algorithm => 'HS256' }\@NLrescue JWT::InvalidSubError\@NL # Handle invalid token, e.g. logout user or deny access\@NLend\@NL```\@NL# Development and Tests\@NLWe depend on [Bundler](http://rubygems.org/gems/bundler) for defining gemspec and performing releases to rubygems.org, which can be done with\@NL```bash\@NLrake release\@NL```\@NLThe tests are written with rspec. Given you have installed the dependencies via bundler, you can run tests with\@NL```bash\@NLbundle exec rspec\@NL```\@NL**If you want a release cut with your PR, please include a version bump according to [Semantic Versioning](http://semver.org/)**\@NL## Contributors\@NL * Jordan Brough <[email protected]>\@NL * Ilya Zhitomirskiy <[email protected]>\@NL * Daniel Grippi <[email protected]>\@NL * Jeff Lindsay <[email protected]>\@NL * Bob Aman <[email protected]>\@NL * Micah Gates <[email protected]>\@NL * Rob Wygand <[email protected]>\@NL * Ariel Salomon (Oscil8)\@NL * Paul Battley <[email protected]>\@NL * Zane Shannon [@zshannon](https://github.com/zshannon)\@NL * Brian Fletcher [@punkle](https://github.com/punkle)\@NL * Alex [@ZhangHanDong](https://github.com/ZhangHanDong)\@NL * John Downey [@jtdowney](https://github.com/jtdowney)\@NL * Adam Greene [@skippy](https://github.com/skippy)\@NL * Tim Rudat [@excpt](https://github.com/excpt) <[email protected]> - Maintainer\@NL## License\@NLMIT\@NLCopyright (c) 2011 Jeff Lindsay\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ""Software""), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/jwt-2.1.0
kaminari,1.1.1,MIT,https://github.com/kaminari/kaminari,"Copyright (c) 2011 Akira Matsuda\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/kaminari-1.1.1
kaminari-actionview,1.1.1,MIT,https://github.com/kaminari/kaminari,"The MIT License (MIT)\@NLCopyright (c) 2016 Akira Matsuda\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/kaminari-actionview-1.1.1
kaminari-activerecord,1.1.1,MIT,https://github.com/kaminari/kaminari,"The MIT License (MIT)\@NLCopyright (c) 2016 Akira Matsuda\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/kaminari-activerecord-1.1.1
kaminari-core,1.1.1,MIT,https://github.com/kaminari/kaminari,"The MIT License (MIT)\@NLCopyright (c) 2016 Akira Matsuda\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/kaminari-core-1.1.1
kaminari-grape,1.0.1,MIT,https://github.com/kaminari/kaminari-grape,"The MIT License (MIT)\@NLCopyright (c) 2016 Akira Matsuda\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/kaminari-grape-1.0.1
kaminari-i18n,0.5.0,MIT,"","Copyright (c) 2014 Christopher Dell\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/kaminari-i18n-0.5.0
kgio,2.11.2,LGPL-2.1+,https://bogomips.org/kgio/," GNU LESSER GENERAL PUBLIC LICENSE\@NL Version 3, 29 June 2007\@NL Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>\@NL Everyone is permitted to copy and distribute verbatim copies\@NL of this license document, but changing it is not allowed.\@NL This version of the GNU Lesser General Public License incorporates\@NLthe terms and conditions of version 3 of the GNU General Public\@NLLicense, supplemented by the additional permissions listed below.\@NL 0. Additional Definitions.\@NL As used herein, ""this License"" refers to version 3 of the GNU Lesser\@NLGeneral Public License, and the ""GNU GPL"" refers to version 3 of the GNU\@NLGeneral Public License.\@NL ""The Library"" refers to a covered work governed by this License,\@NLother than an Application or a Combined Work as defined below.\@NL An ""Application"" is any work that makes use of an interface provided\@NLby the Library, but which is not otherwise based on the Library.\@NLDefining a subclass of a class defined by the Library is deemed a mode\@NLof using an interface provided by the Library.\@NL A ""Combined Work"" is a work produced by combining or linking an\@NLApplication with the Library. The particular version of the Library\@NLwith which the Combined Work was made is also called the ""Linked\@NLVersion"".\@NL The ""Minimal Corresponding Source"" for a Combined Work means the\@NLCorresponding Source for the Combined Work, excluding any source code\@NLfor portions of the Combined Work that, considered in isolation, are\@NLbased on the Application, and not on the Linked Version.\@NL The ""Corresponding Application Code"" for a Combined Work means the\@NLobject code and/or source code for the Application, including any data\@NLand utility programs needed for reproducing the Combined Work from the\@NLApplication, but excluding the System Libraries of the Combined Work.\@NL 1. Exception to Section 3 of the GNU GPL.\@NL You may convey a covered work under sections 3 and 4 of this License\@NLwithout being bound by section 3 of the GNU GPL.\@NL 2. Conveying Modified Versions.\@NL If you modify a copy of the Library, and, in your modifications, a\@NLfacility refers to a function or data to be supplied by an Application\@NLthat uses the facility (other than as an argument passed when the\@NLfacility is invoked), then you may convey a copy of the modified\@NLversion:\@NL a) under this License, provided that you make a good faith effort to\@NL ensure that, in the event an Application does not supply the\@NL function or data, the facility still operates, and performs\@NL whatever part of its purpose remains meaningful, or\@NL b) under the GNU GPL, with none of the additional permissions of\@NL this License applicable to that copy.\@NL 3. Object Code Incorporating Material from Library Header Files.\@NL The object code form of an Application may incorporate material from\@NLa header file that is part of the Library. You may convey such object\@NLcode under terms of your choice, provided that, if the incorporated\@NLmaterial is not limited to numerical parameters, data structure\@NLlayouts and accessors, or small macros, inline functions and templates\@NL(ten or fewer lines in length), you do both of the following:\@NL a) Give prominent notice with each copy of the object code that the\@NL Library is used in it and that the Library and its use are\@NL covered by this License.\@NL b) Accompany the object code with a copy of the GNU GPL and this license\@NL document.\@NL 4. Combined Works.\@NL You may convey a Combined Work under terms of your choice that,\@NLtaken together, effectively do not restrict modification of the\@NLportions of the Library contained in the Combined Work and reverse\@NLengineering for debugging such modifications, if you also do each of\@NLthe following:\@NL a) Give prominent notice with each copy of the Combined Work that\@NL the Library is used in it and that the Library and its use are\@NL covered by this License.\@NL b) Accompany the Combined Work with a copy of the GNU GPL and this license\@NL document.\@NL c) For a Combined Work that displays copyright notices during\@NL execution, include the copyright notice for the Library among\@NL these notices, as well as a reference directing the user to the\@NL copies of the GNU GPL and this license document.\@NL d) Do one of the following:\@NL 0) Convey the Minimal Corresponding Source under the terms of this\@NL License, and the Corresponding Application Code in a form\@NL suitable for, and under terms that permit, the user to\@NL recombine or relink the Application with a modified version of\@NL the Linked Version to produce a modified Combined Work, in the\@NL manner specified by section 6 of the GNU GPL for conveying\@NL Corresponding Source.\@NL 1) Use a suitable shared library mechanism for linking with the\@NL Library. A suitable mechanism is one that (a) uses at run time\@NL a copy of the Library already present on the user's computer\@NL system, and (b) will operate properly with a modified version\@NL of the Library that is interface-compatible with the Linked\@NL Version.\@NL e) Provide Installation Information, but only if you would otherwise\@NL be required to provide such information under section 6 of the\@NL GNU GPL, and only to the extent that such information is\@NL necessary to install and execute a modified version of the\@NL Combined Work produced by recombining or relinking the\@NL Application with a modified version of the Linked Version. (If\@NL you use option 4d0, the Installation Information must accompany\@NL the Minimal Corresponding Source and Corresponding Application\@NL Code. If you use option 4d1, you must provide the Installation\@NL Information in the manner specified by section 6 of the GNU GPL\@NL for conveying Corresponding Source.)\@NL 5. Combined Libraries.\@NL You may place library facilities that are a work based on the\@NLLibrary side by side in a single library together with other library\@NLfacilities that are not Applications and are not covered by this\@NLLicense, and convey such a combined library under terms of your\@NLchoice, if you do both of the following:\@NL a) Accompany the combined library with a copy of the same work based\@NL on the Library, uncombined with any other library facilities,\@NL conveyed under the terms of this License.\@NL b) Give prominent notice with the combined library that part of it\@NL is a work based on the Library, and explaining where to find the\@NL accompanying uncombined form of the same work.\@NL 6. Revised Versions of the GNU Lesser General Public License.\@NL The Free Software Foundation may publish revised and/or new versions\@NLof the GNU Lesser General Public License from time to time. Such new\@NLversions will be similar in spirit to the present version, but may\@NLdiffer in detail to address new problems or concerns.\@NL Each version is given a distinguishing version number. If the\@NLLibrary as you received it specifies that a certain numbered version\@NLof the GNU Lesser General Public License ""or any later version""\@NLapplies to it, you have the option of following the terms and\@NLconditions either of that published version or of any later version\@NLpublished by the Free Software Foundation. If the Library as you\@NLreceived it does not specify a version number of the GNU Lesser\@NLGeneral Public License, you may choose any version of the GNU Lesser\@NLGeneral Public License ever published by the Free Software Foundation.\@NL If the Library as you received it specifies that a proxy can decide\@NLwhether future versions of the GNU Lesser General Public License shall\@NLapply, that proxy's public statement of acceptance of any version is\@NLpermanent authorization for you to choose that version for the\@NLLibrary.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/kgio-2.11.2
less,2.6.0,Apache 2.0,http://lesscss.org,"\@NL Apache License\@NL Version 2.0, January 2004\@NL http://www.apache.org/licenses/\@NLTERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\@NL1. Definitions.\@NL ""License"" shall mean the terms and conditions for use, reproduction,\@NL and distribution as defined by Sections 1 through 9 of this document.\@NL ""Licensor"" shall mean the copyright owner or entity authorized by\@NL the copyright owner that is granting the License.\@NL ""Legal Entity"" shall mean the union of the acting entity and all\@NL other entities that control, are controlled by, or are under common\@NL control with that entity. For the purposes of this definition,\@NL ""control"" means (i) the power, direct or indirect, to cause the\@NL direction or management of such entity, whether by contract or\@NL otherwise, or (ii) ownership of fifty percent (50%) or more of the\@NL outstanding shares, or (iii) beneficial ownership of such entity.\@NL ""You"" (or ""Your"") shall mean an individual or Legal Entity\@NL exercising permissions granted by this License.\@NL ""Source"" form shall mean the preferred form for making modifications,\@NL including but not limited to software source code, documentation\@NL source, and configuration files.\@NL ""Object"" form shall mean any form resulting from mechanical\@NL transformation or translation of a Source form, including but\@NL not limited to compiled object code, generated documentation,\@NL and conversions to other media types.\@NL ""Work"" shall mean the work of authorship, whether in Source or\@NL Object form, made available under the License, as indicated by a\@NL copyright notice that is included in or attached to the work\@NL (an example is provided in the Appendix below).\@NL ""Derivative Works"" shall mean any work, whether in Source or Object\@NL form, that is based on (or derived from) the Work and for which the\@NL editorial revisions, annotations, elaborations, or other modifications\@NL represent, as a whole, an original work of authorship. For the purposes\@NL of this License, Derivative Works shall not include works that remain\@NL separable from, or merely link (or bind by name) to the interfaces of,\@NL the Work and Derivative Works thereof.\@NL ""Contribution"" shall mean any work of authorship, including\@NL the original version of the Work and any modifications or additions\@NL to that Work or Derivative Works thereof, that is intentionally\@NL submitted to Licensor for inclusion in the Work by the copyright owner\@NL or by an individual or Legal Entity authorized to submit on behalf of\@NL the copyright owner. For the purposes of this definition, ""submitted""\@NL means any form of electronic, verbal, or written communication sent\@NL to the Licensor or its representatives, including but not limited to\@NL communication on electronic mailing lists, source code control systems,\@NL and issue tracking systems that are managed by, or on behalf of, the\@NL Licensor for the purpose of discussing and improving the Work, but\@NL excluding communication that is conspicuously marked or otherwise\@NL designated in writing by the copyright owner as ""Not a Contribution.""\@NL ""Contributor"" shall mean Licensor and any individual or Legal Entity\@NL on behalf of whom a Contribution has been received by Licensor and\@NL subsequently incorporated within the Work.\@NL2. Grant of Copyright License. Subject to the terms and conditions of\@NL this License, each Contributor hereby grants to You a perpetual,\@NL worldwide, non-exclusive, no-charge, royalty-free, irrevocable\@NL copyright license to reproduce, prepare Derivative Works of,\@NL publicly display, publicly perform, sublicense, and distribute the\@NL Work and such Derivative Works in Source or Object form.\@NL3. Grant of Patent License. Subject to the terms and conditions of\@NL this License, each Contributor hereby grants to You a perpetual,\@NL worldwide, non-exclusive, no-charge, royalty-free, irrevocable\@NL (except as stated in this section) patent license to make, have made,\@NL use, offer to sell, sell, import, and otherwise transfer the Work,\@NL where such license applies only to those patent claims licensable\@NL by such Contributor that are necessarily infringed by their\@NL Contribution(s) alone or by combination of their Contribution(s)\@NL with the Work to which such Contribution(s) was submitted. If You\@NL institute patent litigation against any entity (including a\@NL cross-claim or counterclaim in a lawsuit) alleging that the Work\@NL or a Contribution incorporated within the Work constitutes direct\@NL or contributory patent infringement, then any patent licenses\@NL granted to You under this License for that Work shall terminate\@NL as of the date such litigation is filed.\@NL4. Redistribution. You may reproduce and distribute copies of the\@NL Work or Derivative Works thereof in any medium, with or without\@NL modifications, and in Source or Object form, provided that You\@NL meet the following conditions:\@NL (a) You must give any other recipients of the Work or\@NL Derivative Works a copy of this License; and\@NL (b) You must cause any modified files to carry prominent notices\@NL stating that You changed the files; and\@NL (c) You must retain, in the Source form of any Derivative Works\@NL that You distribute, all copyright, patent, trademark, and\@NL attribution notices from the Source form of the Work,\@NL excluding those notices that do not pertain to any part of\@NL the Derivative Works; and\@NL (d) If the Work includes a ""NOTICE"" text file as part of its\@NL distribution, then any Derivative Works that You distribute must\@NL include a readable copy of the attribution notices contained\@NL within such NOTICE file, excluding those notices that do not\@NL pertain to any part of the Derivative Works, in at least one\@NL of the following places: within a NOTICE text file distributed\@NL as part of the Derivative Works; within the Source form or\@NL documentation, if provided along with the Derivative Works; or,\@NL within a display generated by the Derivative Works, if and\@NL wherever such third-party notices normally appear. The contents\@NL of the NOTICE file are for informational purposes only and\@NL do not modify the License. You may add Your own attribution\@NL notices within Derivative Works that You distribute, alongside\@NL or as an addendum to the NOTICE text from the Work, provided\@NL that such additional attribution notices cannot be construed\@NL as modifying the License.\@NL You may add Your own copyright statement to Your modifications and\@NL may provide additional or different license terms and conditions\@NL for use, reproduction, or distribution of Your modifications, or\@NL for any such Derivative Works as a whole, provided Your use,\@NL reproduction, and distribution of the Work otherwise complies with\@NL the conditions stated in this License.\@NL5. Submission of Contributions. Unless You explicitly state otherwise,\@NL any Contribution intentionally submitted for inclusion in the Work\@NL by You to the Licensor shall be under the terms and conditions of\@NL this License, without any additional terms or conditions.\@NL Notwithstanding the above, nothing herein shall supersede or modify\@NL the terms of any separate license agreement you may have executed\@NL with Licensor regarding such Contributions.\@NL6. Trademarks. This License does not grant permission to use the trade\@NL names, trademarks, service marks, or product names of the Licensor,\@NL except as required for reasonable and customary use in describing the\@NL origin of the Work and reproducing the content of the NOTICE file.\@NL7. Disclaimer of Warranty. Unless required by applicable law or\@NL agreed to in writing, Licensor provides the Work (and each\@NL Contributor provides its Contributions) on an ""AS IS"" BASIS,\@NL WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\@NL implied, including, without limitation, any warranties or conditions\@NL of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\@NL PARTICULAR PURPOSE. You are solely responsible for determining the\@NL appropriateness of using or redistributing the Work and assume any\@NL risks associated with Your exercise of permissions under this License.\@NL8. Limitation of Liability. In no event and under no legal theory,\@NL whether in tort (including negligence), contract, or otherwise,\@NL unless required by applicable law (such as deliberate and grossly\@NL negligent acts) or agreed to in writing, shall any Contributor be\@NL liable to You for damages, including any direct, indirect, special,\@NL incidental, or consequential damages of any character arising as a\@NL result of this License or out of the use or inability to use the\@NL Work (including but not limited to damages for loss of goodwill,\@NL work stoppage, computer failure or malfunction, or any and all\@NL other commercial damages or losses), even if such Contributor\@NL has been advised of the possibility of such damages.\@NL9. Accepting Warranty or Additional Liability. While redistributing\@NL the Work or Derivative Works thereof, You may choose to offer,\@NL and charge a fee for, acceptance of support, warranty, indemnity,\@NL or other liability obligations and/or rights consistent with this\@NL License. However, in accepting such obligations, You may act only\@NL on Your own behalf and on Your sole responsibility, not on behalf\@NL of any other Contributor, and only if You agree to indemnify,\@NL defend, and hold each Contributor harmless for any liability\@NL incurred by, or claims asserted against, such Contributor by reason\@NL of your accepting any such warranty or additional liability.\@NLEND OF TERMS AND CONDITIONS\@NLCopyright (c) 2009-2010 Alexis Sellier",/Users/scott/.rvm/gems/ruby-2.4.6/gems/less-2.6.0
less-rails,4.0.0,MIT,http://github.com/metaskills/less-rails,"Copyright (c) 2011 Ken Collins\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/less-rails-4.0.0
listen,2.10.1,MIT,https://github.com/guard/listen,"Copyright (c) 2013 Thibaud Guillaume-Gentil\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/listen-2.10.1
loofah,2.2.3,MIT,https://github.com/flavorjones/loofah,"The MIT License\@NLThe MIT License\@NLCopyright (c) 2009 -- 2018 by Mike Dalessio, Bryan Helmkamp\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/loofah-2.2.3
magnific-popup,1.0.1,MIT,https://github.com/dimsemenov/Magnific-Popup,"The MIT License (MIT)\@NLCopyright (c) 2014-2015 Dmitry Semenov, http://dimsemenov.com\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of\@NLthis software and associated documentation files (the ""Software""), to deal in\@NLthe Software without restriction, including without limitation the rights to\@NLuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\@NLthe Software, and to permit persons to whom the Software is furnished to do so,\@NLsubject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all\@NLcopies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\@NLFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\@NLCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\@NLIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\@NLCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/Workspace/Helpy/helpy/vendor/assets/components/magnific-popup
mail,2.7.1,MIT,https://github.com/mikel/mail,"Copyright (c) 2009-2016 Mikel Lindsaar\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL'Software'), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\@NLIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\@NLCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\@NLTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\@NLSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL# Mail [![Build Status](https://travis-ci.org/mikel/mail.png?branch=master)](https://travis-ci.org/mikel/mail)\@NL## Introduction\@NLMail is an internet library for Ruby that is designed to handle emails\@NLgeneration, parsing and sending in a simple, rubyesque manner.\@NLThe purpose of this library is to provide a single point of access to handle\@NLall email functions, including sending and receiving emails. All network\@NLtype actions are done through proxy methods to Net::SMTP, Net::POP3 etc.\@NLBuilt from my experience with TMail, it is designed to be a pure ruby\@NLimplementation that makes generating, sending and parsing emails a no\@NLbrainer.\@NLIt is also designed from the ground up to work with the more modern versions\@NLof Ruby. This is because Ruby > 1.9 handles text encodings much more wonderfully\@NLthan Ruby 1.8.x and so these features have been taken full advantage of in this\@NLlibrary allowing Mail to handle a lot more messages more cleanly than TMail.\@NLMail does run on Ruby 1.8.x... it's just not as fun to code.\@NLFinally, Mail has been designed with a very simple object oriented system\@NLthat really opens up the email messages you are parsing, if you know what\@NLyou are doing, you can fiddle with every last bit of your email directly.\@NL## Donations\@NLMail has been downloaded millions of times, by people around the world, in fact,\@NLit represents more than 1% of *all* gems downloaded.\@NLIt is (like all open source software) a labour of love and something I am doing\@NLwith my own free time. If you would like to say thanks, please feel free to\@NL[make a donation](http://www.pledgie.com/campaigns/8790) and feel free to send\@NLme a nice email :)\@NL<a href='http://www.pledgie.com/campaigns/8790'><img alt='Click here to lend your support to: mail and make a donation at www.pledgie.com !' src='http://www.pledgie.com/campaigns/8790.png?skin_name=chrome' border='0' /></a>\@NL# Contents\@NL* [Compatibility](#compatibility)\@NL* [Discussion](#discussion)\@NL* [Current Capabilities of Mail](#current-capabilities-of-mail)\@NL* [Roadmap](#roadmap)\@NL* [Testing Policy](#testing-policy)\@NL* [API Policy](#api-policy)\@NL* [Installation](#installation)\@NL* [Encodings](#encodings)\@NL* [Contributing](#contributing)\@NL* [Usage](#usage)\@NL* [Core Extensions](#core-extensions)\@NL* [Excerpts from TREC Span Corpus 2005](#excerpts-from-trec-span-corpus-2005)\@NL* [License](#license)\@NL## Compatibility\@NLMail supports Ruby 1.8.7+, including JRuby and Rubinius.\@NLEvery Mail commit is tested by Travis on [all supported Ruby versions](https://github.com/mikel/mail/blob/master/.travis.yml).\@NL## Discussion\@NLIf you want to discuss mail with like minded individuals, please subscribe to\@NLthe [Google Group](http://groups.google.com/group/mail-ruby).\@NL## Current Capabilities of Mail\@NL* RFC5322 Support, Reading and Writing\@NL* RFC6532 Support, reading UTF-8 headers\@NL* RFC2045-2049 Support for multipart emails\@NL* Support for creating multipart alternate emails\@NL* Support for reading multipart/report emails & getting details from such\@NL* Wrappers for File, Net/POP3, Net/SMTP\@NL* Auto-encoding of non-US-ASCII bodies and header fields\@NLMail is RFC5322 and RFC6532 compliant now, that is, it can parse US-ASCII and UTF-8\@NLemails and generate US-ASCII emails. There are a few obsoleted syntax emails that\@NLit will have problems with, but it also is quite robust, meaning, if it finds something\@NLit doesn't understand it will not crash, instead, it will skip the problem and keep\@NLparsing. In the case of a header it doesn't understand, it will initialise the header\@NLas an optional unstructured field and continue parsing.\@NLThis means Mail won't (ever) crunch your data (I think).\@NLYou can also create MIME emails. There are helper methods for making a\@NLmultipart/alternate email for text/plain and text/html (the most common pair)\@NLand you can manually create any other type of MIME email.\@NL## Roadmap\@NLNext TODO:\@NL* Improve MIME support for character sets in headers, currently works, mostly, needs\@NL refinement.\@NL## Testing Policy\@NLBasically... we do BDD on Mail. No method gets written in Mail without a\@NLcorresponding or covering spec. We expect as a minimum 100% coverage\@NLmeasured by RCov. While this is not perfect by any measure, it is pretty\@NLgood. Additionally, all functional tests from TMail are to be passing before\@NLthe gem gets released.\@NLIt also means you can be sure Mail will behave correctly.\@NLNote: If you care about core extensions (aka ""monkey-patching""), please read the Core Extensions section near the end of this README.\@NL## API Policy\@NLNo API removals within a single point release. All removals to be deprecated with\@NLwarnings for at least one MINOR point release before removal.\@NLAlso, all private or protected methods to be declared as such - though this is still I/P.\@NL## Installation\@NLInstallation is fairly simple, I host mail on rubygems, so you can just do:\@NL # gem install mail\@NL## Encodings\@NLIf you didn't know, handling encodings in Emails is not as straight forward as you\@NLwould hope.\@NLI have tried to simplify it some:\@NL1. All objects that can render into an email, have an `#encoded` method. Encoded will\@NL return the object as a complete string ready to send in the mail system, that is,\@NL it will include the header field and value and CRLF at the end and wrapped as\@NL needed.\@NL2. All objects that can render into an email, have a `#decoded` method. Decoded will\@NL return the object's ""value"" only as a string. This means it will not include\@NL the header fields (like 'To:' or 'Subject:').\@NL3. By default, calling <code>#to_s</code> on a container object will call its encoded\@NL method, while <code>#to_s</code> on a field object will call its decoded method.\@NL So calling <code>#to_s</code> on a Mail object will return the mail, all encoded\@NL ready to send, while calling <code>#to_s</code> on the From field or the body will\@NL return the decoded value of the object. The header object of Mail is considered a\@NL container. If you are in doubt, call <code>#encoded</code>, or <code>#decoded</code>\@NL explicitly, this is safer if you are not sure.\@NL4. Structured fields that have parameter values that can be encoded (e.g. Content-Type) will\@NL provide decoded parameter values when you call the parameter names as methods against\@NL the object.\@NL5. Structured fields that have parameter values that can be encoded (e.g. Content-Type) will\@NL provide encoded parameter values when you call the parameter names through the\@NL <code>object.parameters['<parameter_name>']</code> method call.\@NL## Contributing\@NLPlease do! Contributing is easy in Mail. Please read the CONTRIBUTING.md document for more info\@NL## Usage\@NLAll major mail functions should be able to happen from the Mail module.\@NLSo, you should be able to just <code>require 'mail'</code> to get started.\@NL### Making an email\@NL```ruby\@NLmail = Mail.new do\@NL from '[email protected]'\@NL to '[email protected]'\@NL subject 'This is a test email'\@NL body File.read('body.txt')\@NLend\@NLmail.to_s #=> ""From: [email protected]\r\nTo: you@...\@NL```\@NL### Making an email, have it your way:\@NL```ruby\@NLmail = Mail.new do\@NL body File.read('body.txt')\@NLend\@NLmail['from'] = '[email protected]'\@NLmail[:to] = '[email protected]'\@NLmail.subject = 'This is a test email'\@NLmail.header['X-Custom-Header'] = 'custom value'\@NLmail.to_s #=> ""From: [email protected]\r\nTo: you@...\@NL```\@NL### Don't Worry About Message IDs:\@NL```ruby\@NLmail = Mail.new do\@NL to '[email protected]'\@NL body 'Some simple body'\@NLend\@NLmail.to_s =~ /Message\-ID: <[\d\w_]+@.+.mail/ #=> 27\@NL```\@NLMail will automatically add a Message-ID field if it is missing and\@NLgive it a unique, random Message-ID along the lines of:\@NL <[email protected]>\@NL### Or do worry about Message-IDs:\@NL```ruby\@NLmail = Mail.new do\@NL to '[email protected]'\@NL message_id '<[email protected]>'\@NL body 'Some simple body'\@NLend\@NLmail.to_s =~ /Message\-ID: <[email protected]>/ #=> 27\@NL```\@NLMail will take the message_id you assign to it trusting that you know\@NLwhat you are doing.\@NL### Sending an email:\@NLMail defaults to sending via SMTP to local host port 25. If you have a\@NLsendmail or postfix daemon running on this port, sending email is as\@NLeasy as:\@NL```ruby\@NLMail.deliver do\@NL from '[email protected]'\@NL to '[email protected]'\@NL subject 'Here is the image you wanted'\@NL body File.read('body.txt')\@NL add_file '/full/path/to/somefile.png'\@NLend\@NL```\@NLor\@NL```ruby\@NLmail = Mail.new do\@NL from '[email protected]'\@NL to '[email protected]'\@NL subject 'Here is the image you wanted'\@NL body File.read('body.txt')\@NL add_file :filename => 'somefile.png', :content => File.read('/somefile.png')\@NLend\@NLmail.deliver!\@NL```\@NLSending via sendmail can be done like so:\@NL```ruby\@NLmail = Mail.new do\@NL from '[email protected]'\@NL to '[email protected]'\@NL subject 'Here is the image you wanted'\@NL body File.read('body.txt')\@NL add_file :filename => 'somefile.png', :content => File.read('/somefile.png')\@NLend\@NLmail.delivery_method :sendmail\@NLmail.deliver\@NL```\@NLSending via smtp (for example to [mailcatcher](https://github.com/sj26/mailcatcher))\@NL```ruby\@NLMail.defaults do\@NL delivery_method :smtp, address: ""localhost"", port: 1025\@NLend\@NL```\@NLExim requires its own delivery manager, and can be used like so:\@NL```ruby\@NLmail.delivery_method :exim, :location => ""/usr/bin/exim""\@NLmail.deliver\@NL```\@NLMail may be ""delivered"" to a logfile, too, for development and testing:\@NL```ruby\@NL# Delivers by logging the encoded message to $stdout\@NLmail.delivery_method :logger\@NL# Delivers to an existing logger at :debug severity\@NLmail.delivery_method :logger, logger: other_logger, severity: :debug\@NL```\@NL### Getting Emails from a POP Server:\@NLYou can configure Mail to receive email using <code>retriever_method</code>\@NLwithin <code>Mail.defaults</code>:\@NL```ruby\@NLMail.defaults do\@NL retriever_method :pop3, :address => ""pop.gmail.com"",\@NL :port => 995,\@NL :user_name => '<username>',\@NL :password => '<password>',\@NL :enable_ssl => true\@NLend\@NL```\@NLYou can access incoming email in a number of ways.\@NLThe most recent email:\@NL```ruby\@NLMail.all #=> Returns an array of all emails\@NLMail.first #=> Returns the first unread email\@NLMail.last #=> Returns the last unread email\@NL```\@NLThe first 10 emails sorted by date in ascending order:\@NL```ruby\@NLemails = Mail.find(:what => :first, :count => 10, :order => :asc)\@NLemails.length #=> 10\@NL```\@NLOr even all emails:\@NL```ruby\@NLemails = Mail.all\@NLemails.length #=> LOTS!\@NL```\@NL### Reading an Email\@NL```ruby\@NLmail = Mail.read('/path/to/message.eml')\@NLmail.envelope_from #=> '[email protected]'\@NLmail.from.addresses #=> ['[email protected]', '[email protected]']\@NLmail.sender.address #=> '[email protected]'\@NLmail.to #=> '[email protected]'\@NLmail.cc #=> '[email protected]'\@NLmail.subject #=> ""This is the subject""\@NLmail.date.to_s #=> '21 Nov 1997 09:55:06 -0600'\@NLmail.message_id #=> '<[email protected]>'\@NLmail.decoded #=> 'This is the body of the email...\@NL```\@NLMany more methods available.\@NL### Reading a Multipart Email\@NL```ruby\@NLmail = Mail.read('multipart_email')\@NLmail.multipart? #=> true\@NLmail.parts.length #=> 2\@NLmail.body.preamble #=> ""Text before the first part""\@NLmail.body.epilogue #=> ""Text after the last part""\@NLmail.parts.map { |p| p.content_type } #=> ['text/plain', 'application/pdf']\@NLmail.parts.map { |p| p.class } #=> [Mail::Message, Mail::Message]\@NLmail.parts[0].content_type_parameters #=> {'charset' => 'ISO-8859-1'}\@NLmail.parts[1].content_type_parameters #=> {'name' => 'my.pdf'}\@NL```\@NLMail generates a tree of parts. Each message has many or no parts. Each part\@NLis another message which can have many or no parts.\@NLA message will only have parts if it is a multipart/mixed or multipart/related\@NLcontent type and has a boundary defined.\@NL### Testing and Extracting Attachments\@NL```ruby\@NLmail.attachments.each do | attachment |\@NL # Attachments is an AttachmentsList object containing a\@NL # number of Part objects\@NL if (attachment.content_type.start_with?('image/'))\@NL # extracting images for example...\@NL filename = attachment.filename\@NL begin\@NL File.open(images_dir + filename, ""w+b"", 0644) {|f| f.write attachment.decoded}\@NL rescue => e\@NL puts ""Unable to save data for #{filename} because #{e.message}""\@NL end\@NL end\@NLend\@NL```\@NL### Writing and Sending a Multipart/Alternative (HTML and Text) Email\@NLMail makes some basic assumptions and makes doing the common thing as\@NLsimple as possible.... (asking a lot from a mail library)\@NL```ruby\@NLmail = Mail.deliver do\@NL to '[email protected]'\@NL from 'Mikel Lindsaar <[email protected]>'\@NL subject 'First multipart email sent with Mail'\@NL text_part do\@NL body 'This is plain text'\@NL end\@NL html_part do\@NL content_type 'text/html; charset=UTF-8'\@NL body '<h1>This is HTML</h1>'\@NL end\@NLend\@NL```\@NLMail then delivers the email at the end of the block and returns the\@NLresulting Mail::Message object, which you can then inspect if you\@NLso desire...\@NL```\@NLputs mail.to_s #=>\@NLTo: [email protected]\@NLFrom: Mikel Lindsaar <[email protected]>\@NLSubject: First multipart email sent with Mail\@NLContent-Type: multipart/alternative;\@NL boundary=--==_mimepart_4a914f0c911be_6f0f1ab8026659\@NLMessage-ID: <[email protected]>\@NLDate: Mon, 24 Aug 2009 00:15:46 +1000\@NLMime-Version: 1.0\@NLContent-Transfer-Encoding: 7bit\@NL----==_mimepart_4a914f0c911be_6f0f1ab8026659\@NLContent-ID: <[email protected]>\@NLDate: Mon, 24 Aug 2009 00:15:46 +1000\@NLMime-Version: 1.0\@NLContent-Type: text/plain\@NLContent-Transfer-Encoding: 7bit\@NLThis is plain text\@NL----==_mimepart_4a914f0c911be_6f0f1ab8026659\@NLContent-Type: text/html; charset=UTF-8\@NLContent-ID: <[email protected]>\@NLDate: Mon, 24 Aug 2009 00:15:46 +1000\@NLMime-Version: 1.0\@NLContent-Transfer-Encoding: 7bit\@NL<h1>This is HTML</h1>\@NL----==_mimepart_4a914f0c911be_6f0f1ab8026659--\@NL```\@NLMail inserts the content transfer encoding, the mime version,\@NLthe content-id's and handles the content-type and boundary.\@NLMail assumes that if your text in the body is only us-ascii, that your\@NLtransfer encoding is 7bit and it is text/plain. You can override this\@NLby explicitly declaring it.\@NL### Making Multipart/Alternate, Without a Block\@NLYou don't have to use a block with the text and html part included, you\@NLcan just do it declaratively. However, you need to add Mail::Parts to\@NLan email, not Mail::Messages.\@NL```ruby\@NLmail = Mail.new do\@NL to '[email protected]'\@NL from 'Mikel Lindsaar <[email protected]>'\@NL subject 'First multipart email sent with Mail'\@NLend\@NLtext_part = Mail::Part.new do\@NL body 'This is plain text'\@NLend\@NLhtml_part = Mail::Part.new do\@NL content_type 'text/html; charset=UTF-8'\@NL body '<h1>This is HTML</h1>'\@NLend\@NLmail.text_part = text_part\@NLmail.html_part = html_part\@NL```\@NLResults in the same email as done using the block form\@NL### Getting Error Reports from an Email:\@NL```ruby\@NL@mail = Mail.read('/path/to/bounce_message.eml')\@[email protected]? #=> true\@[email protected]_recipient #=> rfc822;[email protected]\@[email protected] #=> failed\@[email protected]_status #=> 5.5.0\@[email protected]_code #=> smtp;550 Requested action not taken: mailbox unavailable\@[email protected]? #=> false\@NL```\@NL### Attaching and Detaching Files\@NLYou can just read the file off an absolute path, Mail will try\@NLto guess the mime_type and will encode the file in Base64 for you.\@NL```ruby\@NL@mail = Mail.new\@[email protected]_file(""/path/to/file.jpg"")\@[email protected]? #=> true\@[email protected]_transfer_encoding.to_s #=> 'base64'\@[email protected]_type #=> 'image/jpg'\@[email protected] #=> 'file.jpg'\@[email protected] == File.read('/path/to/file.jpg') #=> true\@NL```\@NLOr You can pass in file_data and give it a filename, again, mail\@NLwill try and guess the mime_type for you.\@NL```ruby\@NL@mail = Mail.new\@[email protected]['myfile.pdf'] = File.read('path/to/myfile.pdf')\@[email protected]? #=> true\@[email protected]_type #=> 'application/pdf'\@[email protected] == File.read('path/to/myfile.pdf') #=> true\@NL```\@NLYou can also override the guessed MIME media type if you really know better\@NLthan mail (this should be rarely needed)\@NL```ruby\@NL@mail = Mail.new\@[email protected]['myfile.pdf'] = { :mime_type => 'application/x-pdf',\@NL :content => File.read('path/to/myfile.pdf') }\@[email protected]_type #=> 'application/x-pdf'\@NL```\@NLOf course... Mail will round trip an attachment as well\@NL```ruby\@NL@mail = Mail.new do\@NL to '[email protected]'\@NL from 'Mikel Lindsaar <[email protected]>'\@NL subject 'First multipart email sent with Mail'\@NL text_part do\@NL body 'Here is the attachment you wanted'\@NL end\@NL html_part do\@NL content_type 'text/html; charset=UTF-8'\@NL body '<h1>Funky Title</h1><p>Here is the attachment you wanted</p>'\@NL end\@NL add_file '/path/to/myfile.pdf'\@NLend\@NL@round_tripped_mail = Mail.new(@mail.encoded)\@NL@round_tripped_mail.attachments.length #=> 1\@NL@round_tripped_mail.attachments.first.filename #=> 'myfile.pdf'\@NL```\@NLSee ""Testing and extracting attachments"" above for more details.\@NL## Using Mail with Testing or Spec'ing Libraries\@NLIf mail is part of your system, you'll need a way to test it without actually\@NLsending emails, the TestMailer can do this for you.\@NL```ruby\@NLrequire 'mail'\@NL=> true\@NLMail.defaults do\@NL delivery_method :test\@NLend\@NL=> #<Mail::Configuration:0x19345a8 @delivery_method=Mail::TestMailer>\@NLMail::TestMailer.deliveries\@NL=> []\@NLMail.deliver do\@NL to '[email protected]'\@NL from '[email protected]'\@NL subject 'testing'\@NL body 'hello'\@NLend\@NL=> #<Mail::Message:0x19284ec ...\@NLMail::TestMailer.deliveries.length\@NL=> 1\@NLMail::TestMailer.deliveries.first\@NL=> #<Mail::Message:0x19284ec ...\@NLMail::TestMailer.deliveries.clear\@NL=> []\@NL```\@NLThere is also a set of RSpec matchers stolen/inspired by Shoulda's ActionMailer matchers (you'll want to set <code>delivery_method</code> as above too):\@NL```ruby\@NLMail.defaults do\@NL delivery_method :test # in practice you'd do this in spec_helper.rb\@NLend\@NLdescribe ""sending an email"" do\@NL include Mail::Matchers\@NL before(:each) do\@NL Mail::TestMailer.deliveries.clear\@NL Mail.deliver do\@NL to ['[email protected]', '[email protected]']\@NL from '[email protected]'\@NL subject 'testing'\@NL body 'hello'\@NL end\@NL end\@NL it { is_expected.to have_sent_email } # passes if any email at all was sent\@NL it { is_expected.to have_sent_email.from('[email protected]') }\@NL it { is_expected.to have_sent_email.to('[email protected]') }\@NL # can specify a list of recipients...\@NL it { is_expected.to have_sent_email.to(['[email protected]', '[email protected]']) }\@NL # ...or chain recipients together\@NL it { is_expected.to have_sent_email.to('[email protected]').to('[email protected]') }\@NL it { is_expected.to have_sent_email.with_subject('testing') }\@NL it { is_expected.to have_sent_email.with_body('hello') }\@NL # Can match subject or body with a regex\@NL # (or anything that responds_to? :match)\@NL it { is_expected.to have_sent_email.matching_subject(/test(ing)?/) }\@NL it { is_expected.to have_sent_email.matching_body(/h(a|e)llo/) }\@NL # Can chain together modifiers\@NL # Note that apart from recipients, repeating a modifier overwrites old value.\@NL it { is_expected.to have_sent_email.from('[email protected]').to('[email protected]').matching_body(/hell/)\@NL # test for attachments\@NL # ... by specific attachment\@NL it { is_expected.to have_sent_email.with_attachments(my_attachment) }\@NL # ... or any attachment\@NL it { is_expected.to have_sent_email.with_attachments(any_attachment) }\@NL # ... by array of attachments\@NL it { is_expected.to have_sent_email.with_attachments([my_attachment1, my_attachment2]) } #note that order is important\@NL #... by presence\@NL it { is_expected.to have_sent_email.with_any_attachments }\@NL #... or by absence\@NL it { is_expected.to have_sent_email.with_no_attachments }\@NLend\@NL```\@NL## Excerpts from TREC Spam Corpus 2005\@NLThe spec fixture files in spec/fixtures/emails/from_trec_2005 are from the\@NL2005 TREC Public Spam Corpus. They remain copyrighted under the terms of\@NLthat project and license agreement. They are used in this project to verify\@NLand describe the development of this email parser implementation.\@NLhttp://plg.uwaterloo.ca/~gvcormac/treccorpus/\@NLThey are used as allowed by 'Permitted Uses, Clause 3':\@NL ""Small excerpts of the information may be displayed to others\@NL or published in a scientific or technical context, solely for\@NL the purpose of describing the research and development and\@NL related issues.""\@NL -- http://plg.uwaterloo.ca/~gvcormac/treccorpus/\@NL## License\@NL(The MIT License)\@NLCopyright (c) 2009-2016 Mikel Lindsaar\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL'Software'), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\@NLIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\@NLCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\@NLTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\@NLSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/mail-2.7.1
mail_extract,0.1.4,MIT,https://github.com/sosedoff/mail_extract,"# MailExtract\@NLMailExtract is a small ruby library to parse plain-text email contents.\@NLIt removes all quoted text and signatures leaving only original text. \@NL## Installation\@NL gem install mail_extract\@NL## Usage\@NL### General usage\@NL```ruby\@NLrequire 'mail_extract'\@NLbody = MailExtract::Parser.new('MESSAGE').body\@NL# or via shortcut\@NLbody = MailExtract.new('MESSAGE').body\@NL# or via another shortcut\@NLbody = MailExtract.parse('MESSAGE')\@NL```\@NL### Using with Mail gem\@NL```ruby\@NLrequire 'mail'\@NLrequire 'mail_extract'\@NLmail = Mail.read_from_string(YOUR_MESSAGE_BODY)\@NL# find only plain-text parts\@NLif mail.multipart?\@NL part = mail.parts.select { |p| p.content_type =~ /text\/plain/ }.first rescue nil\@NL unless part.nil?\@NL message = part.body.decoded\@NL end\@NLelse\@NL message = part.body.decoded\@NLend\@NLclean_message = MailExtract.new(message).body\@NL```\@NL### Configuration\@NLIf you need to grab only a head part of the message body you need to specify *:only_head* parameter:\@NL```ruby\@NLMailExtract.new(message, :only_head => true)\@NL```\@NLThis is extremely useful if you're parsing an email from mobile devices (iphone?) which do not follow the quote pattens.\@NL## Known issues\@NL- Invalid signature patterns (that does not follow --, ___)\@NL- Invalid quote patterns (that does not start with >)\@NL## License\@NLCopyright © 2011 Dan Sosedoff.\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ""Software""), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/mail_extract-0.1.4
maildir,2.2.1,MIT,http://github.com/ktheory/maildir,"Copyright (c) 2010 Aaron Suggs\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/maildir-2.2.1
mailman,0.7.3,MIT,https://github.com/mailman/mailman,"The MIT License\@NLCopyright (c) 2010-2013 Jonathan Rudenberg\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/mailman-0.7.3
mime-types,3.2.2,MIT,https://github.com/mime-types/ruby-mime-types/,"## Licence\@NL* Copyright 2003â2018 Austin Ziegler and contributors.\@NLThe software in this repository is made available under the MIT license.\@NL### MIT License\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of\@NLthis software and associated documentation files (the ""Software""), to deal in\@NLthe Software without restriction, including without limitation the rights to\@NLuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\@NLof the Software, and to permit persons to whom the Software is furnished to do\@NLso, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all\@NLcopies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\@NLSOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/mime-types-3.2.2
mime-types-data,3.2019.0331,MIT,https://github.com/mime-types/mime-types-data/,"## Licence\@NL* Copyright 2003â2016 Austin Ziegler and other contributors.\@NLThe software in this repository is made available under the MIT license.\@NL### MIT License\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of\@NLthis software and associated documentation files (the ""Software""), to deal in\@NLthe Software without restriction, including without limitation the rights to\@NLuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\@NLof the Software, and to permit persons to whom the Software is furnished to do\@NLso, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all\@NLcopies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\@NLSOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/mime-types-data-3.2019.0331
mini_magick,4.9.3,MIT,https://github.com/minimagick/minimagick,"Copyright (c) 2005-2013 Corey Johnson [email protected]\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/mini_magick-4.9.3
mini_mime,1.0.1,MIT,https://github.com/discourse/mini_mime,"The MIT License (MIT)\@NLCopyright (c) 2016 Discourse Construction Kit, Inc.\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/mini_mime-1.0.1
mini_portile2,2.4.0,MIT,http://github.com/flavorjones/mini_portile,"Copyright (c) 2011-2016 Luis Lavena and Mike Dalessio\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/mini_portile2-2.4.0
multi_json,1.13.1,MIT,http://github.com/intridea/multi_json,"Copyright (c) 2010-2013 Michael Bleigh, Josh Kalderimis, Erik Michaels-Ober, Pavel Pravosud\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/multi_json-1.13.1
multi_xml,0.6.0,MIT,https://github.com/sferik/multi_xml,"Copyright (c) 2010-2013 Erik Michaels-Ober\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/multi_xml-0.6.0
multipart-post,2.0.0,MIT,https://github.com/nicksieger/multipart-post,"## multipart-post\@NL* http://github.com/nicksieger/multipart-post\@NL![build status](https://travis-ci.org/nicksieger/multipart-post.png)\@NL#### DESCRIPTION:\@NLAdds a streamy multipart form post capability to Net::HTTP. Also\@NLsupports other methods besides POST.\@NL#### FEATURES/PROBLEMS:\@NL* Appears to actually work. A good feature to have.\@NL* Encapsulates posting of file/binary parts and name/value parameter parts, similar to \@NL most browsers' file upload forms.\@NL* Provides an UploadIO helper class to prepare IO objects for inclusion in the params\@NL hash of the multipart post object.\@NL#### SYNOPSIS:\@NL require 'net/http/post/multipart'\@NL url = URI.parse('http://www.example.com/upload')\@NL File.open(""./image.jpg"") do |jpg|\@NL req = Net::HTTP::Post::Multipart.new url.path,\@NL ""file"" => UploadIO.new(jpg, ""image/jpeg"", ""image.jpg"")\@NL res = Net::HTTP.start(url.host, url.port) do |http|\@NL http.request(req)\@NL end\@NL end\@NLTo post multiple files or attachments, simply include multiple parameters with\@NLUploadIO values:\@NL require 'net/http/post/multipart'\@NL url = URI.parse('http://www.example.com/upload')\@NL req = Net::HTTP::Post::Multipart.new url.path,\@NL ""file1"" => UploadIO.new(File.new(""./image.jpg""), ""image/jpeg"", ""image.jpg""),\@NL ""file2"" => UploadIO.new(File.new(""./image2.jpg""), ""image/jpeg"", ""image2.jpg"")\@NL res = Net::HTTP.start(url.host, url.port) do |http|\@NL http.request(req)\@NL end\@NL#### REQUIREMENTS:\@NLNone\@NL#### INSTALL:\@NL gem install multipart-post\@NL#### LICENSE:\@NL(The MIT License)\@NLCopyright (c) 2007-2013 Nick Sieger <[email protected]>\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL'Software'), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\@NLIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\@NLCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\@NLTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\@NLSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/multipart-post-2.0.0
mustermann,1.0.3,MIT,https://github.com/sinatra/mustermann,"Copyright (c) 2013-2017 Konstantin Haase\@NLCopyright (c) 2016-2017 Zachary Scott\@NLPermission is hereby granted, free of charge, to any person\@NLobtaining a copy of this software and associated documentation\@NLfiles (the ""Software""), to deal in the Software without\@NLrestriction, including without limitation the rights to use,\@NLcopy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the\@NLSoftware is furnished to do so, subject to the following\@NLconditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\@NLOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\@NLHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\@NLWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\@NLFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\@NLOTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/mustermann-1.0.3
mustermann-grape,1.0.0,MIT,https://github.com/ruby-grape/mustermann-grape,"",/Users/scott/.rvm/gems/ruby-2.4.6/gems/mustermann-grape-1.0.0
netrc,0.11.0,MIT,https://github.com/geemus/netrc,"The MIT License (MIT)\@NLCopyright (c) 2011-2014 [CONTRIBUTORS.md](https://github.com/geemus/netrc/blob/master/CONTRIBUTORS.md)\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of\@NLthis software and associated documentation files (the ""Software""), to deal in\@NLthe Software without restriction, including without limitation the rights to\@NLuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\@NLthe Software, and to permit persons to whom the Software is furnished to do so,\@NLsubject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all\@NLcopies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\@NLFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\@NLCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\@NLIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\@NLCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/netrc-0.11.0
nokogiri,1.10.2,MIT,"","The MIT License\@NLCopyright 2008 -- 2018 by Aaron Patterson, Mike Dalessio, Charles Nutter, Sergio Arbeo, Patrick Mahoney, Yoko Harada, Akinori MUSHA, John Shahid, Lars Kanis\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ""Software""), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL## Vendored Dependency Licenses\@NLNokogiri ships with some third party dependencies, which are listed\@NLhere along with their licenses.\@NLNote that this document is broken into three sections, each of which\@NLwill apply to different platform releases of Nokogiri:\@NL1. default platform release\@NL2. `java` platform release\@NL3. binary windows platform releases (`x86-mingw32` and `x64-mingw32`)\@NLIt's encouraged for anyone consuming this file via license-tracking\@NLsoftware to understand which dependencies are used by your particular\@NLsoftware, so as not to misinterpret the contents of this file.\@NLIn particular, I'm sure somebody's lawyer, somewhere, is going to\@NLfreak out that the LGPL appears in this file; and so I'd like to take\@NLspecial note that the dependency covered by LGPL, `libiconv`, is only\@NLbeing redistributed in the binary Windows platform release. It's not\@NLpresent in any non-Windows releases.\@NL-----\@NL## default platform release\@NL### libxml2\@NLMIT\@NLhttp://xmlsoft.org/\@NL Except where otherwise noted in the source code (e.g. the files hash.c,\@NL list.c and the trio files, which are covered by a similar licence but\@NL with different Copyright notices) all the files are:\@NL \@NL Copyright (C) 1998-2012 Daniel Veillard. All Rights Reserved.\@NL \@NL Permission is hereby granted, free of charge, to any person obtaining a copy\@NL of this software and associated documentation files (the ""Software""), to deal\@NL in the Software without restriction, including without limitation the rights\@NL to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NL copies of the Software, and to permit persons to whom the Software is fur-\@NL nished to do so, subject to the following conditions:\@NL \@NL The above copyright notice and this permission notice shall be included in\@NL all copies or substantial portions of the Software.\@NL \@NL THE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NL IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-\@NL NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NL AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NL LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NL OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NL THE SOFTWARE.\@NL \@NL### libxslt\@NLMIT\@NLhttp://xmlsoft.org/libxslt/\@NL Licence for libxslt except libexslt\@NL ----------------------------------------------------------------------\@NL Copyright (C) 2001-2002 Daniel Veillard. All Rights Reserved.\@NL \@NL Permission is hereby granted, free of charge, to any person obtaining a copy\@NL of this software and associated documentation files (the ""Software""), to deal\@NL in the Software without restriction, including without limitation the rights\@NL to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NL copies of the Software, and to permit persons to whom the Software is fur-\@NL nished to do so, subject to the following conditions:\@NL \@NL The above copyright notice and this permission notice shall be included in\@NL all copies or substantial portions of the Software.\@NL \@NL THE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NL IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-\@NL NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NL DANIEL VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\@NL IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-\@NL NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL \@NL Except as contained in this notice, the name of Daniel Veillard shall not\@NL be used in advertising or otherwise to promote the sale, use or other deal-\@NL ings in this Software without prior written authorization from him.\@NL \@NL ----------------------------------------------------------------------\@NL \@NL Licence for libexslt\@NL ----------------------------------------------------------------------\@NL Copyright (C) 2001-2002 Thomas Broyer, Charlie Bozeman and Daniel Veillard.\@NL All Rights Reserved.\@NL \@NL Permission is hereby granted, free of charge, to any person obtaining a copy\@NL of this software and associated documentation files (the ""Software""), to deal\@NL in the Software without restriction, including without limitation the rights\@NL to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NL copies of the Software, and to permit persons to whom the Software is fur-\@NL nished to do so, subject to the following conditions:\@NL \@NL The above copyright notice and this permission notice shall be included in\@NL all copies or substantial portions of the Software.\@NL \@NL THE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NL IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-\@NL NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NL AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\@NL IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-\@NL NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL \@NL Except as contained in this notice, the name of the authors shall not\@NL be used in advertising or otherwise to promote the sale, use or other deal-\@NL ings in this Software without prior written authorization from him.\@NL ----------------------------------------------------------------------\@NL \@NL## `java` platform release\@NL### isorelax\@NLMIT\@NLhttp://iso-relax.sourceforge.net/\@NL Copyright (c) 2001-2002, SourceForge ISO-RELAX Project (ASAMI\@NL Tomoharu, Daisuke Okajima, Kohsuke Kawaguchi, and MURATA Makoto)\@NL \@NL Permission is hereby granted, free of charge, to any person obtaining\@NL a copy of this software and associated documentation files (the\@NL ""Software""), to deal in the Software without restriction, including\@NL without limitation the rights to use, copy, modify, merge, publish,\@NL distribute, sublicense, and/or sell copies of the Software, and to\@NL permit persons to whom the Software is furnished to do so, subject to\@NL the following conditions:\@NL \@NL The above copyright notice and this permission notice shall be\@NL included in all copies or substantial portions of the Software.\@NL \@NL THE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NL EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NL MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NL NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NL LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NL OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NL WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL### jing\@NLBSD-3-Clause\@NLhttp://www.thaiopensource.com/relaxng/jing.html\@NL Copyright (c) 2001-2003 Thai Open Source Software Center Ltd\@NL All rights reserved.\@NL \@NL Redistribution and use in source and binary forms, with or without\@NL modification, are permitted provided that the following conditions\@NL are met:\@NL \@NL * Redistributions of source code must retain the above copyright\@NL notice, this list of conditions and the following disclaimer.\@NL \@NL * Redistributions in binary form must reproduce the above\@NL copyright notice, this list of conditions and the following\@NL disclaimer in the documentation and/or other materials provided\@NL with the distribution.\@NL \@NL * Neither the name of the Thai Open Source Software Center Ltd nor\@NL the names of its contributors may be used to endorse or promote\@NL products derived from this software without specific prior\@NL written permission.\@NL \@NL THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND\@NL CONTRIBUTORS ""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES,\@NL INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\@NL MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\@NL DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE\@NL LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\@NL OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\@NL PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\@NL PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\@NL THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\@NL TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF\@NL THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\@NL SUCH DAMAGE.\@NL \@NL### nekodtd\@NLApache 1.0-derived\@NLhttps://people.apache.org/~andyc/neko/doc/dtd/\@NL The CyberNeko Software License, Version 1.0\@NL \@NL (C) Copyright 2002-2005, Andy Clark. All rights reserved.\@NL \@NL Redistribution and use in source and binary forms, with or without\@NL modification, are permitted provided that the following conditions\@NL are met:\@NL \@NL 1. Redistributions of source code must retain the above copyright\@NL notice, this list of conditions and the following disclaimer. \@NL \@NL 2. Redistributions in binary form must reproduce the above copyright\@NL notice, this list of conditions and the following disclaimer in\@NL the documentation and/or other materials provided with the\@NL distribution.\@NL \@NL 3. The end-user documentation included with the redistribution,\@NL if any, must include the following acknowledgment: \@NL ""This product includes software developed by Andy Clark.""\@NL Alternately, this acknowledgment may appear in the software itself,\@NL if and wherever such third-party acknowledgments normally appear.\@NL \@NL 4. The names ""CyberNeko"" and ""NekoHTML"" must not be used to endorse\@NL or promote products derived from this software without prior \@NL written permission. For written permission, please contact \@NL [email protected].\@NL \@NL 5. Products derived from this software may not be called ""CyberNeko"",\@NL nor may ""CyberNeko"" appear in their name, without prior written\@NL permission of the author.\@NL \@NL THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED\@NL WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\@NL OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\@NL DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR OTHER CONTRIBUTORS\@NL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, \@NL OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT \@NL OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR \@NL BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \@NL WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE \@NL OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, \@NL EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\@NL \@NL ====================================================================\@NL \@NL This license is based on the Apache Software License, version 1.1.\@NL### nekohtml\@NLApache 2.0\@NLhttp://nekohtml.sourceforge.net/\@NL \@NL Apache License\@NL Version 2.0, January 2004\@NL http://www.apache.org/licenses/\@NL \@NL TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\@NL \@NL 1. Definitions.\@NL \@NL ""License"" shall mean the terms and conditions for use, reproduction,\@NL and distribution as defined by Sections 1 through 9 of this document.\@NL \@NL ""Licensor"" shall mean the copyright owner or entity authorized by\@NL the copyright owner that is granting the License.\@NL \@NL ""Legal Entity"" shall mean the union of the acting entity and all\@NL other entities that control, are controlled by, or are under common\@NL control with that entity. For the purposes of this definition,\@NL ""control"" means (i) the power, direct or indirect, to cause the\@NL direction or management of such entity, whether by contract or\@NL otherwise, or (ii) ownership of fifty percent (50%) or more of the\@NL outstanding shares, or (iii) beneficial ownership of such entity.\@NL \@NL ""You"" (or ""Your"") shall mean an individual or Legal Entity\@NL exercising permissions granted by this License.\@NL \@NL ""Source"" form shall mean the preferred form for making modifications,\@NL including but not limited to software source code, documentation\@NL source, and configuration files.\@NL \@NL ""Object"" form shall mean any form resulting from mechanical\@NL transformation or translation of a Source form, including but\@NL not limited to compiled object code, generated documentation,\@NL and conversions to other media types.\@NL \@NL ""Work"" shall mean the work of authorship, whether in Source or\@NL Object form, made available under the License, as indicated by a\@NL copyright notice that is included in or attached to the work\@NL (an example is provided in the Appendix below).\@NL \@NL ""Derivative Works"" shall mean any work, whether in Source or Object\@NL form, that is based on (or derived from) the Work and for which the\@NL editorial revisions, annotations, elaborations, or other modifications\@NL represent, as a whole, an original work of authorship. For the purposes\@NL of this License, Derivative Works shall not include works that remain\@NL separable from, or merely link (or bind by name) to the interfaces of,\@NL the Work and Derivative Works thereof.\@NL \@NL ""Contribution"" shall mean any work of authorship, including\@NL the original version of the Work and any modifications or additions\@NL to that Work or Derivative Works thereof, that is intentionally\@NL submitted to Licensor for inclusion in the Work by the copyright owner\@NL or by an individual or Legal Entity authorized to submit on behalf of\@NL the copyright owner. For the purposes of this definition, ""submitted""\@NL means any form of electronic, verbal, or written communication sent\@NL to the Licensor or its representatives, including but not limited to\@NL communication on electronic mailing lists, source code control systems,\@NL and issue tracking systems that are managed by, or on behalf of, the\@NL Licensor for the purpose of discussing and improving the Work, but\@NL excluding communication that is conspicuously marked or otherwise\@NL designated in writing by the copyright owner as ""Not a Contribution.""\@NL \@NL ""Contributor"" shall mean Licensor and any individual or Legal Entity\@NL on behalf of whom a Contribution has been received by Licensor and\@NL subsequently incorporated within the Work.\@NL \@NL 2. Grant of Copyright License. Subject to the terms and conditions of\@NL this License, each Contributor hereby grants to You a perpetual,\@NL worldwide, non-exclusive, no-charge, royalty-free, irrevocable\@NL copyright license to reproduce, prepare Derivative Works of,\@NL publicly display, publicly perform, sublicense, and distribute the\@NL Work and such Derivative Works in Source or Object form.\@NL \@NL 3. Grant of Patent License. Subject to the terms and conditions of\@NL this License, each Contributor hereby grants to You a perpetual,\@NL worldwide, non-exclusive, no-charge, royalty-free, irrevocable\@NL (except as stated in this section) patent license to make, have made,\@NL use, offer to sell, sell, import, and otherwise transfer the Work,\@NL where such license applies only to those patent claims licensable\@NL by such Contributor that are necessarily infringed by their\@NL Contribution(s) alone or by combination of their Contribution(s)\@NL with the Work to which such Contribution(s) was submitted. If You\@NL institute patent litigation against any entity (including a\@NL cross-claim or counterclaim in a lawsuit) alleging that the Work\@NL or a Contribution incorporated within the Work constitutes direct\@NL or contributory patent infringement, then any patent licenses\@NL granted to You under this License for that Work shall terminate\@NL as of the date such litigation is filed.\@NL \@NL 4. Redistribution. You may reproduce and distribute copies of the\@NL Work or Derivative Works thereof in any medium, with or without\@NL modifications, and in Source or Object form, provided that You\@NL meet the following conditions:\@NL \@NL (a) You must give any other recipients of the Work or\@NL Derivative Works a copy of this License; and\@NL \@NL (b) You must cause any modified files to carry prominent notices\@NL stating that You changed the files; and\@NL \@NL (c) You must retain, in the Source form of any Derivative Works\@NL that You distribute, all copyright, patent, trademark, and\@NL attribution notices from the Source form of the Work,\@NL excluding those notices that do not pertain to any part of\@NL the Derivative Works; and\@NL \@NL (d) If the Work includes a ""NOTICE"" text file as part of its\@NL distribution, then any Derivative Works that You distribute must\@NL include a readable copy of the attribution notices contained\@NL within such NOTICE file, excluding those notices that do not\@NL pertain to any part of the Derivative Works, in at least one\@NL of the following places: within a NOTICE text file distributed\@NL as part of the Derivative Works; within the Source form or\@NL documentation, if provided along with the Derivative Works; or,\@NL within a display generated by the Derivative Works, if and\@NL wherever such third-party notices normally appear. The contents\@NL of the NOTICE file are for informational purposes only and\@NL do not modify the License. You may add Your own attribution\@NL notices within Derivative Works that You distribute, alongside\@NL or as an addendum to the NOTICE text from the Work, provided\@NL that such additional attribution notices cannot be construed\@NL as modifying the License.\@NL \@NL You may add Your own copyright statement to Your modifications and\@NL may provide additional or different license terms and conditions\@NL for use, reproduction, or distribution of Your modifications, or\@NL for any such Derivative Works as a whole, provided Your use,\@NL reproduction, and distribution of the Work otherwise complies with\@NL the conditions stated in this License.\@NL \@NL 5. Submission of Contributions. Unless You explicitly state otherwise,\@NL any Contribution intentionally submitted for inclusion in the Work\@NL by You to the Licensor shall be under the terms and conditions of\@NL this License, without any additional terms or conditions.\@NL Notwithstanding the above, nothing herein shall supersede or modify\@NL the terms of any separate license agreement you may have executed\@NL with Licensor regarding such Contributions.\@NL \@NL 6. Trademarks. This License does not grant permission to use the trade\@NL names, trademarks, service marks, or product names of the Licensor,\@NL except as required for reasonable and customary use in describing the\@NL origin of the Work and reproducing the content of the NOTICE file.\@NL \@NL 7. Disclaimer of Warranty. Unless required by applicable law or\@NL agreed to in writing, Licensor provides the Work (and each\@NL Contributor provides its Contributions) on an ""AS IS"" BASIS,\@NL WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\@NL implied, including, without limitation, any warranties or conditions\@NL of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\@NL PARTICULAR PURPOSE. You are solely responsible for determining the\@NL appropriateness of using or redistributing the Work and assume any\@NL risks associated with Your exercise of permissions under this License.\@NL \@NL 8. Limitation of Liability. In no event and under no legal theory,\@NL whether in tort (including negligence), contract, or otherwise,\@NL unless required by applicable law (such as deliberate and grossly\@NL negligent acts) or agreed to in writing, shall any Contributor be\@NL liable to You for damages, including any direct, indirect, special,\@NL incidental, or consequential damages of any character arising as a\@NL result of this License or out of the use or inability to use the\@NL Work (including but not limited to damages for loss of goodwill,\@NL work stoppage, computer failure or malfunction, or any and all\@NL other commercial damages or losses), even if such Contributor\@NL has been advised of the possibility of such damages.\@NL \@NL 9. Accepting Warranty or Additional Liability. While redistributing\@NL the Work or Derivative Works thereof, You may choose to offer,\@NL and charge a fee for, acceptance of support, warranty, indemnity,\@NL or other liability obligations and/or rights consistent with this\@NL License. However, in accepting such obligations, You may act only\@NL on Your own behalf and on Your sole responsibility, not on behalf\@NL of any other Contributor, and only if You agree to indemnify,\@NL defend, and hold each Contributor harmless for any liability\@NL incurred by, or claims asserted against, such Contributor by reason\@NL of your accepting any such warranty or additional liability.\@NL \@NL END OF TERMS AND CONDITIONS\@NL \@NL APPENDIX: How to apply the Apache License to your work.\@NL \@NL To apply the Apache License to your work, attach the following\@NL boilerplate notice, with the fields enclosed by brackets ""[]""\@NL replaced with your own identifying information. (Don't include\@NL the brackets!) The text should be enclosed in the appropriate\@NL comment syntax for the file format. We also recommend that a\@NL file or class name and description of purpose be included on the\@NL same ""printed page"" as the copyright notice for easier\@NL identification within third-party archives.\@NL \@NL Copyright [yyyy] [name of copyright owner]\@NL \@NL Licensed under the Apache License, Version 2.0 (the ""License"");\@NL you may not use this file except in compliance with the License.\@NL You may obtain a copy of the License at\@NL \@NL http://www.apache.org/licenses/LICENSE-2.0\@NL \@NL Unless required by applicable law or agreed to in writing, software\@NL distributed under the License is distributed on an ""AS IS"" BASIS,\@NL WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\@NL See the License for the specific language governing permissions and\@NL limitations under the License.\@NL### xalan\@NLApache 2.0\@NLhttps://xml.apache.org/xalan-j/\@NLcovers xalan.jar and serializer.jar\@NL Apache License\@NL Version 2.0, January 2004\@NL http://www.apache.org/licenses/\@NL \@NL TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\@NL \@NL 1. Definitions.\@NL \@NL ""License"" shall mean the terms and conditions for use, reproduction,\@NL and distribution as defined by Sections 1 through 9 of this document.\@NL \@NL ""Licensor"" shall mean the copyright owner or entity authorized by\@NL the copyright owner that is granting the License.\@NL \@NL ""Legal Entity"" shall mean the union of the acting entity and all\@NL other entities that control, are controlled by, or are under common\@NL control with that entity. For the purposes of this definition,\@NL ""control"" means (i) the power, direct or indirect, to cause the\@NL direction or management of such entity, whether by contract or\@NL otherwise, or (ii) ownership of fifty percent (50%) or more of the\@NL outstanding shares, or (iii) beneficial ownership of such entity.\@NL \@NL ""You"" (or ""Your"") shall mean an individual or Legal Entity\@NL exercising permissions granted by this License.\@NL \@NL ""Source"" form shall mean the preferred form for making modifications,\@NL including but not limited to software source code, documentation\@NL source, and configuration files.\@NL \@NL ""Object"" form shall mean any form resulting from mechanical\@NL transformation or translation of a Source form, including but\@NL not limited to compiled object code, generated documentation,\@NL and conversions to other media types.\@NL \@NL ""Work"" shall mean the work of authorship, whether in Source or\@NL Object form, made available under the License, as indicated by a\@NL copyright notice that is included in or attached to the work\@NL (an example is provided in the Appendix below).\@NL \@NL ""Derivative Works"" shall mean any work, whether in Source or Object\@NL form, that is based on (or derived from) the Work and for which the\@NL editorial revisions, annotations, elaborations, or other modifications\@NL represent, as a whole, an original work of authorship. For the purposes\@NL of this License, Derivative Works shall not include works that remain\@NL separable from, or merely link (or bind by name) to the interfaces of,\@NL the Work and Derivative Works thereof.\@NL \@NL ""Contribution"" shall mean any work of authorship, including\@NL the original version of the Work and any modifications or additions\@NL to that Work or Derivative Works thereof, that is intentionally\@NL submitted to Licensor for inclusion in the Work by the copyright owner\@NL or by an individual or Legal Entity authorized to submit on behalf of\@NL the copyright owner. For the purposes of this definition, ""submitted""\@NL means any form of electronic, verbal, or written communication sent\@NL to the Licensor or its representatives, including but not limited to\@NL communication on electronic mailing lists, source code control systems,\@NL and issue tracking systems that are managed by, or on behalf of, the\@NL Licensor for the purpose of discussing and improving the Work, but\@NL excluding communication that is conspicuously marked or otherwise\@NL designated in writing by the copyright owner as ""Not a Contribution.""\@NL \@NL ""Contributor"" shall mean Licensor and any individual or Legal Entity\@NL on behalf of whom a Contribution has been received by Licensor and\@NL subsequently incorporated within the Work.\@NL \@NL 2. Grant of Copyright License. Subject to the terms and conditions of\@NL this License, each Contributor hereby grants to You a perpetual,\@NL worldwide, non-exclusive, no-charge, royalty-free, irrevocable\@NL copyright license to reproduce, prepare Derivative Works of,\@NL publicly display, publicly perform, sublicense, and distribute the\@NL Work and such Derivative Works in Source or Object form.\@NL \@NL 3. Grant of Patent License. Subject to the terms and conditions of\@NL this License, each Contributor hereby grants to You a perpetual,\@NL worldwide, non-exclusive, no-charge, royalty-free, irrevocable\@NL (except as stated in this section) patent license to make, have made,\@NL use, offer to sell, sell, import, and otherwise transfer the Work,\@NL where such license applies only to those patent claims licensable\@NL by such Contributor that are necessarily infringed by their\@NL Contribution(s) alone or by combination of their Contribution(s)\@NL with the Work to which such Contribution(s) was submitted. If You\@NL institute patent litigation against any entity (including a\@NL cross-claim or counterclaim in a lawsuit) alleging that the Work\@NL or a Contribution incorporated within the Work constitutes direct\@NL or contributory patent infringement, then any patent licenses\@NL granted to You under this License for that Work shall terminate\@NL as of the date such litigation is filed.\@NL \@NL 4. Redistribution. You may reproduce and distribute copies of the\@NL Work or Derivative Works thereof in any medium, with or without\@NL modifications, and in Source or Object form, provided that You\@NL meet the following conditions:\@NL \@NL (a) You must give any other recipients of the Work or\@NL Derivative Works a copy of this License; and\@NL \@NL (b) You must cause any modified files to carry prominent notices\@NL stating that You changed the files; and\@NL \@NL (c) You must retain, in the Source form of any Derivative Works\@NL that You distribute, all copyright, patent, trademark, and\@NL attribution notices from the Source form of the Work,\@NL excluding those notices that do not pertain to any part of\@NL the Derivative Works; and\@NL \@NL (d) If the Work includes a ""NOTICE"" text file as part of its\@NL distribution, then any Derivative Works that You distribute must\@NL include a readable copy of the attribution notices contained\@NL within such NOTICE file, excluding those notices that do not\@NL pertain to any part of the Derivative Works, in at least one\@NL of the following places: within a NOTICE text file distributed\@NL as part of the Derivative Works; within the Source form or\@NL documentation, if provided along with the Derivative Works; or,\@NL within a display generated by the Derivative Works, if and\@NL wherever such third-party notices normally appear. The contents\@NL of the NOTICE file are for informational purposes only and\@NL do not modify the License. You may add Your own attribution\@NL notices within Derivative Works that You distribute, alongside\@NL or as an addendum to the NOTICE text from the Work, provided\@NL that such additional attribution notices cannot be construed\@NL as modifying the License.\@NL \@NL You may add Your own copyright statement to Your modifications and\@NL may provide additional or different license terms and conditions\@NL for use, reproduction, or distribution of Your modifications, or\@NL for any such Derivative Works as a whole, provided Your use,\@NL reproduction, and distribution of the Work otherwise complies with\@NL the conditions stated in this License.\@NL \@NL 5. Submission of Contributions. Unless You explicitly state otherwise,\@NL any Contribution intentionally submitted for inclusion in the Work\@NL by You to the Licensor shall be under the terms and conditions of\@NL this License, without any additional terms or conditions.\@NL Notwithstanding the above, nothing herein shall supersede or modify\@NL the terms of any separate license agreement you may have executed\@NL with Licensor regarding such Contributions.\@NL \@NL 6. Trademarks. This License does not grant permission to use the trade\@NL names, trademarks, service marks, or product names of the Licensor,\@NL except as required for reasonable and customary use in describing the\@NL origin of the Work and reproducing the content of the NOTICE file.\@NL \@NL 7. Disclaimer of Warranty. Unless required by applicable law or\@NL agreed to in writing, Licensor provides the Work (and each\@NL Contributor provides its Contributions) on an ""AS IS"" BASIS,\@NL WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\@NL implied, including, without limitation, any warranties or conditions\@NL of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\@NL PARTICULAR PURPOSE. You are solely responsible for determining the\@NL appropriateness of using or redistributing the Work and assume any\@NL risks associated with Your exercise of permissions under this License.\@NL \@NL 8. Limitation of Liability. In no event and under no legal theory,\@NL whether in tort (including negligence), contract, or otherwise,\@NL unless required by applicable law (such as deliberate and grossly\@NL negligent acts) or agreed to in writing, shall any Contributor be\@NL liable to You for damages, including any direct, indirect, special,\@NL incidental, or consequential damages of any character arising as a\@NL result of this License or out of the use or inability to use the\@NL Work (including but not limited to damages for loss of goodwill,\@NL work stoppage, computer failure or malfunction, or any and all\@NL other commercial damages or losses), even if such Contributor\@NL has been advised of the possibility of such damages.\@NL \@NL 9. Accepting Warranty or Additional Liability. While redistributing\@NL the Work or Derivative Works thereof, You may choose to offer,\@NL and charge a fee for, acceptance of support, warranty, indemnity,\@NL or other liability obligations and/or rights consistent with this\@NL License. However, in accepting such obligations, You may act only\@NL on Your own behalf and on Your sole responsibility, not on behalf\@NL of any other Contributor, and only if You agree to indemnify,\@NL defend, and hold each Contributor harmless for any liability\@NL incurred by, or claims asserted against, such Contributor by reason\@NL of your accepting any such warranty or additional liability.\@NL \@NL END OF TERMS AND CONDITIONS\@NL \@NL APPENDIX: How to apply the Apache License to your work.\@NL \@NL To apply the Apache License to your work, attach the following\@NL boilerplate notice, with the fields enclosed by brackets ""[]""\@NL replaced with your own identifying information. (Don't include\@NL the brackets!) The text should be enclosed in the appropriate\@NL comment syntax for the file format. We also recommend that a\@NL file or class name and description of purpose be included on the\@NL same ""printed page"" as the copyright notice for easier\@NL identification within third-party archives.\@NL \@NL Copyright [yyyy] [name of copyright owner]\@NL \@NL Licensed under the Apache License, Version 2.0 (the ""License"");\@NL you may not use this file except in compliance with the License.\@NL You may obtain a copy of the License at\@NL \@NL http://www.apache.org/licenses/LICENSE-2.0\@NL \@NL Unless required by applicable law or agreed to in writing, software\@NL distributed under the License is distributed on an ""AS IS"" BASIS,\@NL WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\@NL See the License for the specific language governing permissions and\@NL limitations under the License.\@NL \@NL### xerces\@NLApache 2.0\@NLhttps://xerces.apache.org/xerces2-j/\@NL \@NL Apache License\@NL Version 2.0, January 2004\@NL http://www.apache.org/licenses/\@NL \@NL TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\@NL \@NL 1. Definitions.\@NL \@NL ""License"" shall mean the terms and conditions for use, reproduction,\@NL and distribution as defined by Sections 1 through 9 of this document.\@NL \@NL ""Licensor"" shall mean the copyright owner or entity authorized by\@NL the copyright owner that is granting the License.\@NL \@NL ""Legal Entity"" shall mean the union of the acting entity and all\@NL other entities that control, are controlled by, or are under common\@NL control with that entity. For the purposes of this definition,\@NL ""control"" means (i) the power, direct or indirect, to cause the\@NL direction or management of such entity, whether by contract or\@NL otherwise, or (ii) ownership of fifty percent (50%) or more of the\@NL outstanding shares, or (iii) beneficial ownership of such entity.\@NL \@NL ""You"" (or ""Your"") shall mean an individual or Legal Entity\@NL exercising permissions granted by this License.\@NL \@NL ""Source"" form shall mean the preferred form for making modifications,\@NL including but not limited to software source code, documentation\@NL source, and configuration files.\@NL \@NL ""Object"" form shall mean any form resulting from mechanical\@NL transformation or translation of a Source form, including but\@NL not limited to compiled object code, generated documentation,\@NL and conversions to other media types.\@NL \@NL ""Work"" shall mean the work of authorship, whether in Source or\@NL Object form, made available under the License, as indicated by a\@NL copyright notice that is included in or attached to the work\@NL (an example is provided in the Appendix below).\@NL \@NL ""Derivative Works"" shall mean any work, whether in Source or Object\@NL form, that is based on (or derived from) the Work and for which the\@NL editorial revisions, annotations, elaborations, or other modifications\@NL represent, as a whole, an original work of authorship. For the purposes\@NL of this License, Derivative Works shall not include works that remain\@NL separable from, or merely link (or bind by name) to the interfaces of,\@NL the Work and Derivative Works thereof.\@NL \@NL ""Contribution"" shall mean any work of authorship, including\@NL the original version of the Work and any modifications or additions\@NL to that Work or Derivative Works thereof, that is intentionally\@NL submitted to Licensor for inclusion in the Work by the copyright owner\@NL or by an individual or Legal Entity authorized to submit on behalf of\@NL the copyright owner. For the purposes of this definition, ""submitted""\@NL means any form of electronic, verbal, or written communication sent\@NL to the Licensor or its representatives, including but not limited to\@NL communication on electronic mailing lists, source code control systems,\@NL and issue tracking systems that are managed by, or on behalf of, the\@NL Licensor for the purpose of discussing and improving the Work, but\@NL excluding communication that is conspicuously marked or otherwise\@NL designated in writing by the copyright owner as ""Not a Contribution.""\@NL \@NL ""Contributor"" shall mean Licensor and any individual or Legal Entity\@NL on behalf of whom a Contribution has been received by Licensor and\@NL subsequently incorporated within the Work.\@NL \@NL 2. Grant of Copyright License. Subject to the terms and conditions of\@NL this License, each Contributor hereby grants to You a perpetual,\@NL worldwide, non-exclusive, no-charge, royalty-free, irrevocable\@NL copyright license to reproduce, prepare Derivative Works of,\@NL publicly display, publicly perform, sublicense, and distribute the\@NL Work and such Derivative Works in Source or Object form.\@NL \@NL 3. Grant of Patent License. Subject to the terms and conditions of\@NL this License, each Contributor hereby grants to You a perpetual,\@NL worldwide, non-exclusive, no-charge, royalty-free, irrevocable\@NL (except as stated in this section) patent license to make, have made,\@NL use, offer to sell, sell, import, and otherwise transfer the Work,\@NL where such license applies only to those patent claims licensable\@NL by such Contributor that are necessarily infringed by their\@NL Contribution(s) alone or by combination of their Contribution(s)\@NL with the Work to which such Contribution(s) was submitted. If You\@NL institute patent litigation against any entity (including a\@NL cross-claim or counterclaim in a lawsuit) alleging that the Work\@NL or a Contribution incorporated within the Work constitutes direct\@NL or contributory patent infringement, then any patent licenses\@NL granted to You under this License for that Work shall terminate\@NL as of the date such litigation is filed.\@NL \@NL 4. Redistribution. You may reproduce and distribute copies of the\@NL Work or Derivative Works thereof in any medium, with or without\@NL modifications, and in Source or Object form, provided that You\@NL meet the following conditions:\@NL \@NL (a) You must give any other recipients of the Work or\@NL Derivative Works a copy of this License; and\@NL \@NL (b) You must cause any modified files to carry prominent notices\@NL stating that You changed the files; and\@NL \@NL (c) You must retain, in the Source form of any Derivative Works\@NL that You distribute, all copyright, patent, trademark, and\@NL attribution notices from the Source form of the Work,\@NL excluding those notices that do not pertain to any part of\@NL the Derivative Works; and\@NL \@NL (d) If the Work includes a ""NOTICE"" text file as part of its\@NL distribution, then any Derivative Works that You distribute must\@NL include a readable copy of the attribution notices contained\@NL within such NOTICE file, excluding those notices that do not\@NL pertain to any part of the Derivative Works, in at least one\@NL of the following places: within a NOTICE text file distributed\@NL as part of the Derivative Works; within the Source form or\@NL documentation, if provided along with the Derivative Works; or,\@NL within a display generated by the Derivative Works, if and\@NL wherever such third-party notices normally appear. The contents\@NL of the NOTICE file are for informational purposes only and\@NL do not modify the License. You may add Your own attribution\@NL notices within Derivative Works that You distribute, alongside\@NL or as an addendum to the NOTICE text from the Work, provided\@NL that such additional attribution notices cannot be construed\@NL as modifying the License.\@NL \@NL You may add Your own copyright statement to Your modifications and\@NL may provide additional or different license terms and conditions\@NL for use, reproduction, or distribution of Your modifications, or\@NL for any such Derivative Works as a whole, provided Your use,\@NL reproduction, and distribution of the Work otherwise complies with\@NL the conditions stated in this License.\@NL \@NL 5. Submission of Contributions. Unless You explicitly state otherwise,\@NL any Contribution intentionally submitted for inclusion in the Work\@NL by You to the Licensor shall be under the terms and conditions of\@NL this License, without any additional terms or conditions.\@NL Notwithstanding the above, nothing herein shall supersede or modify\@NL the terms of any separate license agreement you may have executed\@NL with Licensor regarding such Contributions.\@NL \@NL 6. Trademarks. This License does not grant permission to use the trade\@NL names, trademarks, service marks, or product names of the Licensor,\@NL except as required for reasonable and customary use in describing the\@NL origin of the Work and reproducing the content of the NOTICE file.\@NL \@NL 7. Disclaimer of Warranty. Unless required by applicable law or\@NL agreed to in writing, Licensor provides the Work (and each\@NL Contributor provides its Contributions) on an ""AS IS"" BASIS,\@NL WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\@NL implied, including, without limitation, any warranties or conditions\@NL of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\@NL PARTICULAR PURPOSE. You are solely responsible for determining the\@NL appropriateness of using or redistributing the Work and assume any\@NL risks associated with Your exercise of permissions under this License.\@NL \@NL 8. Limitation of Liability. In no event and under no legal theory,\@NL whether in tort (including negligence), contract, or otherwise,\@NL unless required by applicable law (such as deliberate and grossly\@NL negligent acts) or agreed to in writing, shall any Contributor be\@NL liable to You for damages, including any direct, indirect, special,\@NL incidental, or consequential damages of any character arising as a\@NL result of this License or out of the use or inability to use the\@NL Work (including but not limited to damages for loss of goodwill,\@NL work stoppage, computer failure or malfunction, or any and all\@NL other commercial damages or losses), even if such Contributor\@NL has been advised of the possibility of such damages.\@NL \@NL 9. Accepting Warranty or Additional Liability. While redistributing\@NL the Work or Derivative Works thereof, You may choose to offer,\@NL and charge a fee for, acceptance of support, warranty, indemnity,\@NL or other liability obligations and/or rights consistent with this\@NL License. However, in accepting such obligations, You may act only\@NL on Your own behalf and on Your sole responsibility, not on behalf\@NL of any other Contributor, and only if You agree to indemnify,\@NL defend, and hold each Contributor harmless for any liability\@NL incurred by, or claims asserted against, such Contributor by reason\@NL of your accepting any such warranty or additional liability.\@NL \@NL END OF TERMS AND CONDITIONS\@NL \@NL APPENDIX: How to apply the Apache License to your work.\@NL \@NL To apply the Apache License to your work, attach the following\@NL boilerplate notice, with the fields enclosed by brackets ""[]""\@NL replaced with your own identifying information. (Don't include\@NL the brackets!) The text should be enclosed in the appropriate\@NL comment syntax for the file format. We also recommend that a\@NL file or class name and description of purpose be included on the\@NL same ""printed page"" as the copyright notice for easier\@NL identification within third-party archives.\@NL \@NL Copyright [yyyy] [name of copyright owner]\@NL \@NL Licensed under the Apache License, Version 2.0 (the ""License"");\@NL you may not use this file except in compliance with the License.\@NL You may obtain a copy of the License at\@NL \@NL http://www.apache.org/licenses/LICENSE-2.0\@NL \@NL Unless required by applicable law or agreed to in writing, software\@NL distributed under the License is distributed on an ""AS IS"" BASIS,\@NL WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\@NL See the License for the specific language governing permissions and\@NL limitations under the License.\@NL \@NL### xml-apis\@NLApache 2.0\@NLhttps://xerces.apache.org/xml-commons/\@NL Unless otherwise noted all files in XML Commons are covered under the\@NL Apache License Version 2.0. Please read the LICENSE and NOTICE files.\@NL \@NL XML Commons contains some software and documentation that is covered\@NL under a number of different licenses. This applies particularly to the\@NL xml-commons/java/external/ directory. Most files under\@NL xml-commons/java/external/ are covered under their respective\@NL LICENSE.*.txt files; see the matching README.*.txt files for\@NL descriptions.\@NL \@NL Apache License\@NL Version 2.0, January 2004\@NL http://www.apache.org/licenses/\@NL \@NL TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\@NL \@NL 1. Definitions.\@NL \@NL ""License"" shall mean the terms and conditions for use, reproduction,\@NL and distribution as defined by Sections 1 through 9 of this document.\@NL \@NL ""Licensor"" shall mean the copyright owner or entity authorized by\@NL the copyright owner that is granting the License.\@NL \@NL ""Legal Entity"" shall mean the union of the acting entity and all\@NL other entities that control, are controlled by, or are under common\@NL control with that entity. For the purposes of this definition,\@NL ""control"" means (i) the power, direct or indirect, to cause the\@NL direction or management of such entity, whether by contract or\@NL otherwise, or (ii) ownership of fifty percent (50%) or more of the\@NL outstanding shares, or (iii) beneficial ownership of such entity.\@NL \@NL ""You"" (or ""Your"") shall mean an individual or Legal Entity\@NL exercising permissions granted by this License.\@NL \@NL ""Source"" form shall mean the preferred form for making modifications,\@NL including but not limited to software source code, documentation\@NL source, and configuration files.\@NL \@NL ""Object"" form shall mean any form resulting from mechanical\@NL transformation or translation of a Source form, including but\@NL not limited to compiled object code, generated documentation,\@NL and conversions to other media types.\@NL \@NL ""Work"" shall mean the work of authorship, whether in Source or\@NL Object form, made available under the License, as indicated by a\@NL copyright notice that is included in or attached to the work\@NL (an example is provided in the Appendix below).\@NL \@NL ""Derivative Works"" shall mean any work, whether in Source or Object\@NL form, that is based on (or derived from) the Work and for which the\@NL editorial revisions, annotations, elaborations, or other modifications\@NL represent, as a whole, an original work of authorship. For the purposes\@NL of this License, Derivative Works shall not include works that remain\@NL separable from, or merely link (or bind by name) to the interfaces of,\@NL the Work and Derivative Works thereof.\@NL \@NL ""Contribution"" shall mean any work of authorship, including\@NL the original version of the Work and any modifications or additions\@NL to that Work or Derivative Works thereof, that is intentionally\@NL submitted to Licensor for inclusion in the Work by the copyright owner\@NL or by an individual or Legal Entity authorized to submit on behalf of\@NL the copyright owner. For the purposes of this definition, ""submitted""\@NL means any form of electronic, verbal, or written communication sent\@NL to the Licensor or its representatives, including but not limited to\@NL communication on electronic mailing lists, source code control systems,\@NL and issue tracking systems that are managed by, or on behalf of, the\@NL Licensor for the purpose of discussing and improving the Work, but\@NL excluding communication that is conspicuously marked or otherwise\@NL designated in writing by the copyright owner as ""Not a Contribution.""\@NL \@NL ""Contributor"" shall mean Licensor and any individual or Legal Entity\@NL on behalf of whom a Contribution has been received by Licensor and\@NL subsequently incorporated within the Work.\@NL \@NL 2. Grant of Copyright License. Subject to the terms and conditions of\@NL this License, each Contributor hereby grants to You a perpetual,\@NL worldwide, non-exclusive, no-charge, royalty-free, irrevocable\@NL copyright license to reproduce, prepare Derivative Works of,\@NL publicly display, publicly perform, sublicense, and distribute the\@NL Work and such Derivative Works in Source or Object form.\@NL \@NL 3. Grant of Patent License. Subject to the terms and conditions of\@NL this License, each Contributor hereby grants to You a perpetual,\@NL worldwide, non-exclusive, no-charge, royalty-free, irrevocable\@NL (except as stated in this section) patent license to make, have made,\@NL use, offer to sell, sell, import, and otherwise transfer the Work,\@NL where such license applies only to those patent claims licensable\@NL by such Contributor that are necessarily infringed by their\@NL Contribution(s) alone or by combination of their Contribution(s)\@NL with the Work to which such Contribution(s) was submitted. If You\@NL institute patent litigation against any entity (including a\@NL cross-claim or counterclaim in a lawsuit) alleging that the Work\@NL or a Contribution incorporated within the Work constitutes direct\@NL or contributory patent infringement, then any patent licenses\@NL granted to You under this License for that Work shall terminate\@NL as of the date such litigation is filed.\@NL \@NL 4. Redistribution. You may reproduce and distribute copies of the\@NL Work or Derivative Works thereof in any medium, with or without\@NL modifications, and in Source or Object form, provided that You\@NL meet the following conditions:\@NL \@NL (a) You must give any other recipients of the Work or\@NL Derivative Works a copy of this License; and\@NL \@NL (b) You must cause any modified files to carry prominent notices\@NL stating that You changed the files; and\@NL \@NL (c) You must retain, in the Source form of any Derivative Works\@NL that You distribute, all copyright, patent, trademark, and\@NL attribution notices from the Source form of the Work,\@NL excluding those notices that do not pertain to any part of\@NL the Derivative Works; and\@NL \@NL (d) If the Work includes a ""NOTICE"" text file as part of its\@NL distribution, then any Derivative Works that You distribute must\@NL include a readable copy of the attribution notices contained\@NL within such NOTICE file, excluding those notices that do not\@NL pertain to any part of the Derivative Works, in at least one\@NL of the following places: within a NOTICE text file distributed\@NL as part of the Derivative Works; within the Source form or\@NL documentation, if provided along with the Derivative Works; or,\@NL within a display generated by the Derivative Works, if and\@NL wherever such third-party notices normally appear. The contents\@NL of the NOTICE file are for informational purposes only and\@NL do not modify the License. You may add Your own attribution\@NL notices within Derivative Works that You distribute, alongside\@NL or as an addendum to the NOTICE text from the Work, provided\@NL that such additional attribution notices cannot be construed\@NL as modifying the License.\@NL \@NL You may add Your own copyright statement to Your modifications and\@NL may provide additional or different license terms and conditions\@NL for use, reproduction, or distribution of Your modifications, or\@NL for any such Derivative Works as a whole, provided Your use,\@NL reproduction, and distribution of the Work otherwise complies with\@NL the conditions stated in this License.\@NL \@NL 5. Submission of Contributions. Unless You explicitly state otherwise,\@NL any Contribution intentionally submitted for inclusion in the Work\@NL by You to the Licensor shall be under the terms and conditions of\@NL this License, without any additional terms or conditions.\@NL Notwithstanding the above, nothing herein shall supersede or modify\@NL the terms of any separate license agreement you may have executed\@NL with Licensor regarding such Contributions.\@NL \@NL 6. Trademarks. This License does not grant permission to use the trade\@NL names, trademarks, service marks, or product names of the Licensor,\@NL except as required for reasonable and customary use in describing the\@NL origin of the Work and reproducing the content of the NOTICE file.\@NL \@NL 7. Disclaimer of Warranty. Unless required by applicable law or\@NL agreed to in writing, Licensor provides the Work (and each\@NL Contributor provides its Contributions) on an ""AS IS"" BASIS,\@NL WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\@NL implied, including, without limitation, any warranties or conditions\@NL of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\@NL PARTICULAR PURPOSE. You are solely responsible for determining the\@NL appropriateness of using or redistributing the Work and assume any\@NL risks associated with Your exercise of permissions under this License.\@NL \@NL 8. Limitation of Liability. In no event and under no legal theory,\@NL whether in tort (including negligence), contract, or otherwise,\@NL unless required by applicable law (such as deliberate and grossly\@NL negligent acts) or agreed to in writing, shall any Contributor be\@NL liable to You for damages, including any direct, indirect, special,\@NL incidental, or consequential damages of any character arising as a\@NL result of this License or out of the use or inability to use the\@NL Work (including but not limited to damages for loss of goodwill,\@NL work stoppage, computer failure or malfunction, or any and all\@NL other commercial damages or losses), even if such Contributor\@NL has been advised of the possibility of such damages.\@NL \@NL 9. Accepting Warranty or Additional Liability. While redistributing\@NL the Work or Derivative Works thereof, You may choose to offer,\@NL and charge a fee for, acceptance of support, warranty, indemnity,\@NL or other liability obligations and/or rights consistent with this\@NL License. However, in accepting such obligations, You may act only\@NL on Your own behalf and on Your sole responsibility, not on behalf\@NL of any other Contributor, and only if You agree to indemnify,\@NL defend, and hold each Contributor harmless for any liability\@NL incurred by, or claims asserted against, such Contributor by reason\@NL of your accepting any such warranty or additional liability.\@NL \@NL END OF TERMS AND CONDITIONS\@NL \@NL APPENDIX: How to apply the Apache License to your work.\@NL \@NL To apply the Apache License to your work, attach the following\@NL boilerplate notice, with the fields enclosed by brackets ""[]""\@NL replaced with your own identifying information. (Don't include\@NL the brackets!) The text should be enclosed in the appropriate\@NL comment syntax for the file format. We also recommend that a\@NL file or class name and description of purpose be included on the\@NL same ""printed page"" as the copyright notice for easier\@NL identification within third-party archives.\@NL \@NL Copyright [yyyy] [name of copyright owner]\@NL \@NL Licensed under the Apache License, Version 2.0 (the ""License"");\@NL you may not use this file except in compliance with the License.\@NL You may obtain a copy of the License at\@NL \@NL http://www.apache.org/licenses/LICENSE-2.0\@NL \@NL Unless required by applicable law or agreed to in writing, software\@NL distributed under the License is distributed on an ""AS IS"" BASIS,\@NL WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\@NL See the License for the specific language governing permissions and\@NL limitations under the License.\@NL## binary windows release\@NLNOTE: these libraries are redistributed ONLY with the binary\@NLcross-compiled Windows platform version of Nokogiri, both x86-mingw32\@NLand x64-mingw32.\@NL### zlib\@NLzlib license\@NLhttp://www.zlib.net/zlib_license.html\@NL Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler\@NL \@NL This software is provided 'as-is', without any express or implied\@NL warranty. In no event will the authors be held liable for any damages\@NL arising from the use of this software.\@NL \@NL Permission is granted to anyone to use this software for any purpose,\@NL including commercial applications, and to alter it and redistribute it\@NL freely, subject to the following restrictions:\@NL \@NL 1. The origin of this software must not be misrepresented; you must not\@NL claim that you wrote the original software. If you use this software\@NL in a product, an acknowledgment in the product documentation would be\@NL appreciated but is not required.\@NL 2. Altered source versions must be plainly marked as such, and must not be\@NL misrepresented as being the original software.\@NL 3. This notice may not be removed or altered from any source distribution.\@NL \@NL Jean-loup Gailly Mark Adler\@NL [email protected] [email protected]\@NL \@NL### libiconv\@NLLGPL\@NLhttps://www.gnu.org/software/libiconv/\@NL GNU LIBRARY GENERAL PUBLIC LICENSE\@NL Version 2, June 1991\@NL \@NL Copyright (C) 1991 Free Software Foundation, Inc.\@NL 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA\@NL Everyone is permitted to copy and distribute verbatim copies\@NL of this license document, but changing it is not allowed.\@NL \@NL [This is the first released version of the library GPL. It is\@NL numbered 2 because it goes with version 2 of the ordinary GPL.]\@NL \@NL Preamble\@NL \@NL The licenses for most software are designed to take away your\@NL freedom to share and change it. By contrast, the GNU General Public\@NL Licenses are intended to guarantee your freedom to share and change\@NL free software--to make sure the software is free for all its users.\@NL \@NL This license, the Library General Public License, applies to some\@NL specially designated Free Software Foundation software, and to any\@NL other libraries whose authors decide to use it. You can use it for\@NL your libraries, too.\@NL \@NL When we speak of free software, we are referring to freedom, not\@NL price. Our General Public Licenses are designed to make sure that you\@NL have the freedom to distribute copies of free software (and charge for\@NL this service if you wish), that you receive source code or can get it\@NL if you want it, that you can change the software or use pieces of it\@NL in new free programs; and that you know you can do these things.\@NL \@NL To protect your rights, we need to make restrictions that forbid\@NL anyone to deny you these rights or to ask you to surrender the rights.\@NL These restrictions translate to certain responsibilities for you if\@NL you distribute copies of the library, or if you modify it.\@NL \@NL For example, if you distribute copies of the library, whether gratis\@NL or for a fee, you must give the recipients all the rights that we gave\@NL you. You must make sure that they, too, receive or can get the source\@NL code. If you link a program with the library, you must provide\@NL complete object files to the recipients so that they can relink them\@NL with the library, after making changes to the library and recompiling\@NL it. And you must show them these terms so they know their rights.\@NL \@NL Our method of protecting your rights has two steps: (1) copyright\@NL the library, and (2) offer you this license which gives you legal\@NL permission to copy, distribute and/or modify the library.\@NL \@NL Also, for each distributor's protection, we want to make certain\@NL that everyone understands that there is no warranty for this free\@NL library. If the library is modified by someone else and passed on, we\@NL want its recipients to know that what they have is not the original\@NL version, so that any problems introduced by others will not reflect on\@NL the original authors' reputations.\@NL \@NL Finally, any free program is threatened constantly by software\@NL patents. We wish to avoid the danger that companies distributing free\@NL software will individually obtain patent licenses, thus in effect\@NL transforming the program into proprietary software. To prevent this,\@NL we have made it clear that any patent must be licensed for everyone's\@NL free use or not licensed at all.\@NL \@NL Most GNU software, including some libraries, is covered by the ordinary\@NL GNU General Public License, which was designed for utility programs. This\@NL license, the GNU Library General Public License, applies to certain\@NL designated libraries. This license is quite different from the ordinary\@NL one; be sure to read it in full, and don't assume that anything in it is\@NL the same as in the ordinary license.\@NL \@NL The reason we have a separate public license for some libraries is that\@NL they blur the distinction we usually make between modifying or adding to a\@NL program and simply using it. Linking a program with a library, without\@NL changing the library, is in some sense simply using the library, and is\@NL analogous to running a utility program or application program. However, in\@NL a textual and legal sense, the linked executable is a combined work, a\@NL derivative of the original library, and the ordinary General Public License\@NL treats it as such.\@NL \@NL Because of this blurred distinction, using the ordinary General\@NL Public License for libraries did not effectively promote software\@NL sharing, because most developers did not use the libraries. We\@NL concluded that weaker conditions might promote sharing better.\@NL \@NL However, unrestricted linking of non-free programs would deprive the\@NL users of those programs of all benefit from the free status of the\@NL libraries themselves. This Library General Public License is intended to\@NL permit developers of non-free programs to use free libraries, while\@NL preserving your freedom as a user of such programs to change the free\@NL libraries that are incorporated in them. (We have not seen how to achieve\@NL this as regards changes in header files, but we have achieved it as regards\@NL changes in the actual functions of the Library.) The hope is that this\@NL will lead to faster development of free libraries.\@NL \@NL The precise terms and conditions for copying, distribution and\@NL modification follow. Pay close attention to the difference between a\@NL ""work based on the library"" and a ""work that uses the library"". The\@NL former contains code derived from the library, while the latter only\@NL works together with the library.\@NL \@NL Note that it is possible for a library to be covered by the ordinary\@NL General Public License rather than by this special one.\@NL \@NL GNU LIBRARY GENERAL PUBLIC LICENSE\@NL TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\@NL \@NL 0. This License Agreement applies to any software library which\@NL contains a notice placed by the copyright holder or other authorized\@NL party saying it may be distributed under the terms of this Library\@NL General Public License (also called ""this License""). Each licensee is\@NL addressed as ""you"".\@NL \@NL A ""library"" means a collection of software functions and/or data\@NL prepared so as to be conveniently linked with application programs\@NL (which use some of those functions and data) to form executables.\@NL \@NL The ""Library"", below, refers to any such software library or work\@NL which has been distributed under these terms. A ""work based on the\@NL Library"" means either the Library or any derivative work under\@NL copyright law: that is to say, a work containing the Library or a\@NL portion of it, either verbatim or with modifications and/or translated\@NL straightforwardly into another language. (Hereinafter, translation is\@NL included without limitation in the term ""modification"".)\@NL \@NL ""Source code"" for a work means the preferred form of the work for\@NL making modifications to it. For a library, complete source code means\@NL all the source code for all modules it contains, plus any associated\@NL interface definition files, plus the scripts used to control compilation\@NL and installation of the library.\@NL \@NL Activities other than copying, distribution and modification are not\@NL covered by this License; they are outside its scope. The act of\@NL running a program using the Library is not restricted, and output from\@NL such a program is covered only if its contents constitute a work based\@NL on the Library (independent of the use of the Library in a tool for\@NL writing it). Whether that is true depends on what the Library does\@NL and what the program that uses the Library does.\@NL \@NL 1. You may copy and distribute verbatim copies of the Library's\@NL complete source code as you receive it, in any medium, provided that\@NL you conspicuously and appropriately publish on each copy an\@NL appropriate copyright notice and disclaimer of warranty; keep intact\@NL all the notices that refer to this License and to the absence of any\@NL warranty; and distribute a copy of this License along with the\@NL Library.\@NL \@NL You may charge a fee for the physical act of transferring a copy,\@NL and you may at your option offer warranty protection in exchange for a\@NL fee.\@NL \@NL 2. You may modify your copy or copies of the Library or any portion\@NL of it, thus forming a work based on the Library, and copy and\@NL distribute such modifications or work under the terms of Section 1\@NL above, provided that you also meet all of these conditions:\@NL \@NL a) The modified work must itself be a software library.\@NL \@NL b) You must cause the files modified to carry prominent notices\@NL stating that you changed the files and the date of any change.\@NL \@NL c) You must cause the whole of the work to be licensed at no\@NL charge to all third parties under the terms of this License.\@NL \@NL d) If a facility in the modified Library refers to a function or a\@NL table of data to be supplied by an application program that uses\@NL the facility, other than as an argument passed when the facility\@NL is invoked, then you must make a good faith effort to ensure that,\@NL in the event an application does not supply such function or\@NL table, the facility still operates, and performs whatever part of\@NL its purpose remains meaningful.\@NL \@NL (For example, a function in a library to compute square roots has\@NL a purpose that is entirely well-defined independent of the\@NL application. Therefore, Subsection 2d requires that any\@NL application-supplied function or table used by this function must\@NL be optional: if the application does not supply it, the square\@NL root function must still compute square roots.)\@NL \@NL These requirements apply to the modified work as a whole. If\@NL identifiable sections of that work are not derived from the Library,\@NL and can be reasonably considered independent and separate works in\@NL themselves, then this License, and its terms, do not apply to those\@NL sections when you distribute them as separate works. But when you\@NL distribute the same sections as part of a whole which is a work based\@NL on the Library, the distribution of the whole must be on the terms of\@NL this License, whose permissions for other licensees extend to the\@NL entire whole, and thus to each and every part regardless of who wrote\@NL it.\@NL \@NL Thus, it is not the intent of this section to claim rights or contest\@NL your rights to work written entirely by you; rather, the intent is to\@NL exercise the right to control the distribution of derivative or\@NL collective works based on the Library.\@NL \@NL In addition, mere aggregation of another work not based on the Library\@NL with the Library (or with a work based on the Library) on a volume of\@NL a storage or distribution medium does not bring the other work under\@NL the scope of this License.\@NL \@NL 3. You may opt to apply the terms of the ordinary GNU General Public\@NL License instead of this License to a given copy of the Library. To do\@NL this, you must alter all the notices that refer to this License, so\@NL that they refer to the ordinary GNU General Public License, version 2,\@NL instead of to this License. (If a newer version than version 2 of the\@NL ordinary GNU General Public License has appeared, then you can specify\@NL that version instead if you wish.) Do not make any other change in\@NL these notices.\@NL \@NL Once this change is made in a given copy, it is irreversible for\@NL that copy, so the ordinary GNU General Public License applies to all\@NL subsequent copies and derivative works made from that copy.\@NL \@NL This option is useful when you wish to copy part of the code of\@NL the Library into a program that is not a library.\@NL \@NL 4. You may copy and distribute the Library (or a portion or\@NL derivative of it, under Section 2) in object code or executable form\@NL under the terms of Sections 1 and 2 above provided that you accompany\@NL it with the complete corresponding machine-readable source code, which\@NL must be distributed under the terms of Sections 1 and 2 above on a\@NL medium customarily used for software interchange.\@NL \@NL If distribution of object code is made by offering access to copy\@NL from a designated place, then offering equivalent access to copy the\@NL source code from the same place satisfies the requirement to\@NL distribute the source code, even though third parties are not\@NL compelled to copy the source along with the object code.\@NL \@NL 5. A program that contains no derivative of any portion of the\@NL Library, but is designed to work with the Library by being compiled or\@NL linked with it, is called a ""work that uses the Library"". Such a\@NL work, in isolation, is not a derivative work of the Library, and\@NL therefore falls outside the scope of this License.\@NL \@NL However, linking a ""work that uses the Library"" with the Library\@NL creates an executable that is a derivative of the Library (because it\@NL contains portions of the Library), rather than a ""work that uses the\@NL library"". The executable is therefore covered by this License.\@NL Section 6 states terms for distribution of such executables.\@NL \@NL When a ""work that uses the Library"" uses material from a header file\@NL that is part of the Library, the object code for the work may be a\@NL derivative work of the Library even though the source code is not.\@NL Whether this is true is especially significant if the work can be\@NL linked without the Library, or if the work is itself a library. The\@NL threshold for this to be true is not precisely defined by law.\@NL \@NL If such an object file uses only numerical parameters, data\@NL structure layouts and accessors, and small macros and small inline\@NL functions (ten lines or less in length), then the use of the object\@NL file is unrestricted, regardless of whether it is legally a derivative\@NL work. (Executables containing this object code plus portions of the\@NL Library will still fall under Section 6.)\@NL \@NL Otherwise, if the work is a derivative of the Library, you may\@NL distribute the object code for the work under the terms of Section 6.\@NL Any executables containing that work also fall under Section 6,\@NL whether or not they are linked directly with the Library itself.\@NL \@NL 6. As an exception to the Sections above, you may also compile or\@NL link a ""work that uses the Library"" with the Library to produce a\@NL work containing portions of the Library, and distribute that work\@NL under terms of your choice, provided that the terms permit\@NL modification of the work for the customer's own use and reverse\@NL engineering for debugging such modifications.\@NL \@NL You must give prominent notice with each copy of the work that the\@NL Library is used in it and that the Library and its use are covered by\@NL this License. You must supply a copy of this License. If the work\@NL during execution displays copyright notices, you must include the\@NL copyright notice for the Library among them, as well as a reference\@NL directing the user to the copy of this License. Also, you must do one\@NL of these things:\@NL \@NL a) Accompany the work with the complete corresponding\@NL machine-readable source code for the Library including whatever\@NL changes were used in the work (which must be distributed under\@NL Sections 1 and 2 above); and, if the work is an executable linked\@NL with the Library, with the complete machine-readable ""work that\@NL uses the Library"", as object code and/or source code, so that the\@NL user can modify the Library and then relink to produce a modified\@NL executable containing the modified Library. (It is understood\@NL that the user who changes the contents of definitions files in the\@NL Library will not necessarily be able to recompile the application\@NL to use the modified definitions.)\@NL \@NL b) Accompany the work with a written offer, valid for at\@NL least three years, to give the same user the materials\@NL specified in Subsection 6a, above, for a charge no more\@NL than the cost of performing this distribution.\@NL \@NL c) If distribution of the work is made by offering access to copy\@NL from a designated place, offer equivalent access to copy the above\@NL specified materials from the same place.\@NL \@NL d) Verify that the user has already received a copy of these\@NL materials or that you have already sent this user a copy.\@NL \@NL For an executable, the required form of the ""work that uses the\@NL Library"" must include any data and utility programs needed for\@NL reproducing the executable from it. However, as a special exception,\@NL the source code distributed need not include anything that is normally\@NL distributed (in either source or binary form) with the major\@NL components (compiler, kernel, and so on) of the operating system on\@NL which the executable runs, unless that component itself accompanies\@NL the executable.\@NL \@NL It may happen that this requirement contradicts the license\@NL restrictions of other proprietary libraries that do not normally\@NL accompany the operating system. Such a contradiction means you cannot\@NL use both them and the Library together in an executable that you\@NL distribute.\@NL \@NL 7. You may place library facilities that are a work based on the\@NL Library side-by-side in a single library together with other library\@NL facilities not covered by this License, and distribute such a combined\@NL library, provided that the separate distribution of the work based on\@NL the Library and of the other library facilities is otherwise\@NL permitted, and provided that you do these two things:\@NL \@NL a) Accompany the combined library with a copy of the same work\@NL based on the Library, uncombined with any other library\@NL facilities. This must be distributed under the terms of the\@NL Sections above.\@NL \@NL b) Give prominent notice with the combined library of the fact\@NL that part of it is a work based on the Library, and explaining\@NL where to find the accompanying uncombined form of the same work.\@NL \@NL 8. You may not copy, modify, sublicense, link with, or distribute\@NL the Library except as expressly provided under this License. Any\@NL attempt otherwise to copy, modify, sublicense, link with, or\@NL distribute the Library is void, and will automatically terminate your\@NL rights under this License. However, parties who have received copies,\@NL or rights, from you under this License will not have their licenses\@NL terminated so long as such parties remain in full compliance.\@NL \@NL 9. You are not required to accept this License, since you have not\@NL signed it. However, nothing else grants you permission to modify or\@NL distribute the Library or its derivative works. These actions are\@NL prohibited by law if you do not accept this License. Therefore, by\@NL modifying or distributing the Library (or any work based on the\@NL Library), you indicate your acceptance of this License to do so, and\@NL all its terms and conditions for copying, distributing or modifying\@NL the Library or works based on it.\@NL \@NL 10. Each time you redistribute the Library (or any work based on the\@NL Library), the recipient automatically receives a license from the\@NL original licensor to copy, distribute, link with or modify the Library\@NL subject to these terms and conditions. You may not impose any further\@NL restrictions on the recipients' exercise of the rights granted herein.\@NL You are not responsible for enforcing compliance by third parties to\@NL this License.\@NL \@NL 11. If, as a consequence of a court judgment or allegation of patent\@NL infringement or for any other reason (not limited to patent issues),\@NL conditions are imposed on you (whether by court order, agreement or\@NL otherwise) that contradict the conditions of this License, they do not\@NL excuse you from the conditions of this License. If you cannot\@NL distribute so as to satisfy simultaneously your obligations under this\@NL License and any other pertinent obligations, then as a consequence you\@NL may not distribute the Library at all. For example, if a patent\@NL license would not permit royalty-free redistribution of the Library by\@NL all those who receive copies directly or indirectly through you, then\@NL the only way you could satisfy both it and this License would be to\@NL refrain entirely from distribution of the Library.\@NL \@NL If any portion of this section is held invalid or unenforceable under any\@NL particular circumstance, the balance of the section is intended to apply,\@NL and the section as a whole is intended to apply in other circumstances.\@NL \@NL It is not the purpose of this section to induce you to infringe any\@NL patents or other property right claims or to contest validity of any\@NL such claims; this section has the sole purpose of protecting the\@NL integrity of the free software distribution system which is\@NL implemented by public license practices. Many people have made\@NL generous contributions to the wide range of software distributed\@NL through that system in reliance on consistent application of that\@NL system; it is up to the author/donor to decide if he or she is willing\@NL to distribute software through any other system and a licensee cannot\@NL impose that choice.\@NL \@NL This section is intended to make thoroughly clear what is believed to\@NL be a consequence of the rest of this License.\@NL \@NL 12. If the distribution and/or use of the Library is restricted in\@NL certain countries either by patents or by copyrighted interfaces, the\@NL original copyright holder who places the Library under this License may add\@NL an explicit geographical distribution limitation excluding those countries,\@NL so that distribution is permitted only in or among countries not thus\@NL excluded. In such case, this License incorporates the limitation as if\@NL written in the body of this License.\@NL \@NL 13. The Free Software Foundation may publish revised and/or new\@NL versions of the Library General Public License from time to time.\@NL Such new versions will be similar in spirit to the present version,\@NL but may differ in detail to address new problems or concerns.\@NL \@NL Each version is given a distinguishing version number. If the Library\@NL specifies a version number of this License which applies to it and\@NL ""any later version"", you have the option of following the terms and\@NL conditions either of that version or of any later version published by\@NL the Free Software Foundation. If the Library does not specify a\@NL license version number, you may choose any version ever published by\@NL the Free Software Foundation.\@NL \@NL 14. If you wish to incorporate parts of the Library into other free\@NL programs whose distribution conditions are incompatible with these,\@NL write to the author to ask for permission. For software which is\@NL copyrighted by the Free Software Foundation, write to the Free\@NL Software Foundation; we sometimes make exceptions for this. Our\@NL decision will be guided by the two goals of preserving the free status\@NL of all derivatives of our free software and of promoting the sharing\@NL and reuse of software generally.\@NL \@NL NO WARRANTY\@NL \@NL 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO\@NL WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.\@NL EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR\@NL OTHER PARTIES PROVIDE THE LIBRARY ""AS IS"" WITHOUT WARRANTY OF ANY\@NL KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE\@NL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\@NL PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE\@NL LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME\@NL THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\@NL \@NL 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN\@NL WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY\@NL AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU\@NL FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR\@NL CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE\@NL LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING\@NL RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A\@NL FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF\@NL SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\@NL DAMAGES.\@NL \@NL END OF TERMS AND CONDITIONS\@NL \@NL Appendix: How to Apply These Terms to Your New Libraries\@NL \@NL If you develop a new library, and you want it to be of the greatest\@NL possible use to the public, we recommend making it free software that\@NL everyone can redistribute and change. You can do so by permitting\@NL redistribution under these terms (or, alternatively, under the terms of the\@NL ordinary General Public License).\@NL \@NL To apply these terms, attach the following notices to the library. It is\@NL safest to attach them to the start of each source file to most effectively\@NL convey the exclusion of warranty; and each file should have at least the\@NL ""copyright"" line and a pointer to where the full notice is found.\@NL \@NL <one line to give the library's name and a brief idea of what it does.>\@NL Copyright (C) <year> <name of author>\@NL \@NL This library is free software; you can redistribute it and/or\@NL modify it under the terms of the GNU Library General Public\@NL License as published by the Free Software Foundation; either\@NL version 2 of the License, or (at your option) any later version.\@NL \@NL This library is distributed in the hope that it will be useful,\@NL but WITHOUT ANY WARRANTY; without even the implied warranty of\@NL MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\@NL Library General Public License for more details.\@NL \@NL You should have received a copy of the GNU Library General Public\@NL License along with this library; if not, write to the Free\@NL Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,\@NL MA 02110-1301, USA\@NL \@NL Also add information on how to contact you by electronic and paper mail.\@NL \@NL You should also get your employer (if you work as a programmer) or your\@NL school, if any, to sign a ""copyright disclaimer"" for the library, if\@NL necessary. Here is a sample; alter the names:\@NL \@NL Yoyodyne, Inc., hereby disclaims all copyright interest in the\@NL library `Frob' (a library for tweaking knobs) written by James Random Hacker.\@NL \@NL <signature of Ty Coon>, 1 April 1990\@NL Ty Coon, President of Vice\@NL \@NL That's all there is to it!",/Users/scott/.rvm/gems/ruby-2.4.6/gems/nokogiri-1.10.2
oauth,0.5.4,MIT,"","Copyright (c) 2007 Blaine Cook, Larry Halff, Pelle Braendgaard\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/oauth-0.5.4
oauth2,1.4.1,MIT,https://github.com/oauth-xx/oauth2,"MIT License\@NLCopyright (c) 2011 - 2013 Michael Bleigh and Intridea, Inc.\@NLCopyright (c) 2017 - 2018 oauth-xx organization, https://github.com/oauth-xx\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all\@NLcopies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\@NLSOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/oauth2-1.4.1
omniauth,1.9.0,MIT,https://github.com/omniauth/omniauth,"Copyright (c) 2010-2017 Michael Bleigh and Intridea, Inc.\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/omniauth-1.9.0
omniauth-facebook,5.0.0,MIT,https://github.com/mkdynamic/omniauth-facebook,"# OmniAuth Facebook [![Build Status](https://secure.travis-ci.org/mkdynamic/omniauth-facebook.svg?branch=master)](https://travis-ci.org/mkdynamic/omniauth-facebook) [![Gem Version](https://img.shields.io/gem/v/omniauth-facebook.svg)](https://rubygems.org/gems/omniauth-facebook)\@NLð£ **NOTICE** Weâre looking for maintainers to help keep this project up-to-date. If you are interested in helping please open an Issue expressing your interest. Thanks! ð£\@NL**These notes are based on master, please see tags for README pertaining to specific releases.**\@NLFacebook OAuth2 Strategy for OmniAuth.\@NLSupports OAuth 2.0 server-side and client-side flows. Read the Facebook docs for more details: http://developers.facebook.com/docs/authentication\@NL## Installing\@NLAdd to your `Gemfile`:\@NL```ruby\@NLgem 'omniauth-facebook'\@NL```\@NLThen `bundle install`.\@NL## Usage\@NL`OmniAuth::Strategies::Facebook` is simply a Rack middleware. Read the OmniAuth docs for detailed instructions: https://github.com/intridea/omniauth.\@NLHere's a quick example, adding the middleware to a Rails app in `config/initializers/omniauth.rb`:\@NL```ruby\@NLRails.application.config.middleware.use OmniAuth::Builder do\@NL provider :facebook, ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET']\@NLend\@NL```\@NL[See the example Sinatra app for full examples](https://github.com/mkdynamic/omniauth-facebook/blob/master/example/config.ru) of both the server and client-side flows (including using the Facebook Javascript SDK).\@NL## Configuring\@NLYou can configure several options, which you pass in to the `provider` method via a `Hash`:\@NLOption name | Default | Explanation\@NL--- | --- | ---\@NL`scope` | `email` | A comma-separated list of permissions you want to request from the user. See the Facebook docs for a full list of available permissions: https://developers.facebook.com/docs/reference/login/\@NL`display` | `page` | The display context to show the authentication page. Options are: `page`, `popup` and `touch`. Read the Facebook docs for more details: https://developers.facebook.com/docs/reference/dialogs/oauth/\@NL`image_size` | `square` | Set the size for the returned image url in the auth hash. Valid options include `square` (50x50), `small` (50 pixels wide, variable height), `normal` (100 pixels wide, variable height), or `large` (about 200 pixels wide, variable height). Additionally, you can request a picture of a specific size by setting this option to a hash with `:width` and `:height` as keys. This will return an available profile picture closest to the requested size and requested aspect ratio. If only `:width` or `:height` is specified, we will return a picture whose width or height is closest to the requested size, respectively.\@NL`info_fields` | 'name,email' | Specify exactly which fields should be returned when getting the user's info. Value should be a comma-separated string as per https://developers.facebook.com/docs/graph-api/reference/user/ (only `/me` endpoint).\@NL`locale` | | Specify locale which should be used when getting the user's info. Value should be locale string as per https://developers.facebook.com/docs/reference/api/locale/.\@NL`auth_type` | | Optionally specifies the requested authentication features as a comma-separated list, as per https://developers.facebook.com/docs/facebook-login/reauthentication/. Valid values are `https` (checks for the presence of the secure cookie and asks for re-authentication if it is not present), and `reauthenticate` (asks the user to re-authenticate unconditionally). Use 'rerequest' when you want to request premissions. Default is `nil`.\@NL`secure_image_url` | `false` | Set to `true` to use https for the avatar image url returned in the auth hash.\@NL`callback_url` / `callback_path` | | Specify a custom callback URL used during the server-side flow. Note this must be allowed by your app configuration on Facebook (see 'Valid OAuth redirect URIs' under the 'Advanced' settings section in the configuration for your Facebook app for more details).\@NLFor example, to request `email`, `user_birthday` and `read_stream` permissions and display the authentication page in a popup window:\@NL```ruby\@NLRails.application.config.middleware.use OmniAuth::Builder do\@NL provider :facebook, ENV['APP_ID'], ENV['APP_SECRET'],\@NL scope: 'email,user_birthday,read_stream', display: 'popup'\@NLend\@NL```\@NL### API Version\@NLOmniAuth Facebook uses versioned API endpoints by default (current v2.10). You can configure a different version via `client_options` hash passed to `provider`, specifically you should change the version in the `site` and `authorize_url` parameters. For example, to change to v3.0 (assuming that exists):\@NL```ruby\@NLuse OmniAuth::Builder do\@NL provider :facebook, ENV['APP_ID'], ENV['APP_SECRET'],\@NL client_options: {\@NL site: 'https://graph.facebook.com/v3.0',\@NL authorize_url: ""https://www.facebook.com/v3.0/dialog/oauth""\@NL }\@NLend\@NL```\@NL### Per-Request Options\@NLIf you want to set the `display` format, `auth_type`, or `scope` on a per-request basis, you can just pass it to the OmniAuth request phase URL, for example: `/auth/facebook?display=popup` or `/auth/facebook?scope=email`.\@NL## Auth Hash\@NLHere's an example *Auth Hash* available in `request.env['omniauth.auth']`:\@NL```ruby\@NL{\@NL provider: 'facebook',\@NL uid: '1234567',\@NL info: {\@NL email: '[email protected]',\@NL name: 'Joe Bloggs',\@NL first_name: 'Joe',\@NL last_name: 'Bloggs',\@NL image: 'http://graph.facebook.com/1234567/picture?type=square',\@NL verified: true\@NL },\@NL credentials: {\@NL token: 'ABCDEF...', # OAuth 2.0 access_token, which you may wish to store\@NL expires_at: 1321747205, # when the access token expires (it always will)\@NL expires: true # this will always be true\@NL },\@NL extra: {\@NL raw_info: {\@NL id: '1234567',\@NL name: 'Joe Bloggs',\@NL first_name: 'Joe',\@NL last_name: 'Bloggs',\@NL link: 'http://www.facebook.com/jbloggs',\@NL username: 'jbloggs',\@NL location: { id: '123456789', name: 'Palo Alto, California' },\@NL gender: 'male',\@NL email: '[email protected]',\@NL timezone: -8,\@NL locale: 'en_US',\@NL verified: true,\@NL updated_time: '2011-11-11T06:21:03+0000',\@NL # ...\@NL }\@NL }\@NL}\@NL```\@NLThe precise information available may depend on the permissions which you request.\@NL## Client-side Flow with Facebook Javascript SDK\@NLYou can use the Facebook Javascript SDK with `FB.login`, and just hit the callback endpoint (`/auth/facebook/callback` by default) once the user has authenticated in the success callback.\@NL**Note that you must enable cookies in the `FB.init` config for this process to work.**\@NLSee the example Sinatra app under `example/` and read the [Facebook docs on Login for JavaScript](https://developers.facebook.com/docs/facebook-login/login-flow-for-web/) for more details.\@NL### How it Works\@NLThe client-side flow is supported by parsing the authorization code from the signed request which Facebook places in a cookie.\@NLWhen you call `/auth/facebook/callback` in the success callback of `FB.login` that will pass the cookie back to the server. omniauth-facebook will see this cookie and:\@NL1. parse it,\@NL2. extract the authorization code contained in it\@NL3. and hit Facebook and obtain an access token which will get placed in the `request.env['omniauth.auth']['credentials']` hash.\@NL## Token Expiry\@NLThe expiration time of the access token you obtain will depend on which flow you are using.\@NL### Client-Side Flow\@NLIf you use the client-side flow, Facebook will give you back a short lived access token (~ 2 hours).\@NLYou can exchange this short lived access token for a longer lived version. Read the [Facebook docs](https://developers.facebook.com/docs/facebook-login/access-tokens/) for more information on exchanging a short lived token for a long lived token.\@NL### Server-Side Flow\@NLIf you use the server-side flow, Facebook will give you back a longer lived access token (~ 60 days).\@NL## Supported Rubies\@NL- Ruby MRI (2.0+)\@NL## License\@NLCopyright (c) 2012 by Mark Dodwell\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ""Software""), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/omniauth-facebook-5.0.0
omniauth-github,1.3.0,MIT,https://github.com/intridea/omniauth-github,"Copyright (c) 2011 Michael Bleigh and Intridea, Inc.\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ""Software""), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL# OmniAuth GitHub\@NLThis is the official OmniAuth strategy for authenticating to GitHub. To\@NLuse it, you'll need to sign up for an OAuth2 Application ID and Secret\@NLon the [GitHub Applications Page](https://github.com/settings/applications).\@NL## Basic Usage\@NL```ruby\@NLuse OmniAuth::Builder do\@NL provider :github, ENV['GITHUB_KEY'], ENV['GITHUB_SECRET']\@NLend\@NL```\@NL## Github Enterprise Usage\@NL```ruby\@NLprovider :github, ENV['GITHUB_KEY'], ENV['GITHUB_SECRET'],\@NL {\@NL :client_options => {\@NL :site => 'https://github.YOURDOMAIN.com/api/v3',\@NL :authorize_url => 'https://github.YOURDOMAIN.com/login/oauth/authorize',\@NL :token_url => 'https://github.YOURDOMAIN.com/login/oauth/access_token',\@NL }\@NL }\@NL```\@NL## Scopes\@NLGitHub API v3 lets you set scopes to provide granular access to different types of data: \@NL```ruby\@NLuse OmniAuth::Builder do\@NL provider :github, ENV['GITHUB_KEY'], ENV['GITHUB_SECRET'], scope: ""user,repo,gist""\@NLend\@NL```\@NLMore info on [Scopes](http://developer.github.com/v3/oauth/#scopes).\@NL## License\@NLCopyright (c) 2011 Michael Bleigh and Intridea, Inc.\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ""Software""), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/omniauth-github-1.3.0
omniauth-google-oauth2,0.6.1,MIT,https://github.com/zquestz/omniauth-google-oauth2,"[![Gem Version](https://badge.fury.io/rb/omniauth-google-oauth2.svg)](https://badge.fury.io/rb/omniauth-google-oauth2)\@NL[![Build Status](https://travis-ci.org/zquestz/omniauth-google-oauth2.svg)](https://travis-ci.org/zquestz/omniauth-google-oauth2)\@NL# OmniAuth Google OAuth2 Strategy\@NLStrategy to authenticate with Google via OAuth2 in OmniAuth.\@NLGet your API key at: https://code.google.com/apis/console/ Note the Client ID and the Client Secret.\@NLFor more details, read the Google docs: https://developers.google.com/accounts/docs/OAuth2\@NL## Installation\@NLAdd to your `Gemfile`:\@NL```ruby\@NLgem 'omniauth-google-oauth2'\@NL```\@NLThen `bundle install`.\@NL## Google API Setup\@NL* Go to 'https://console.developers.google.com'\@NL* Select your project.\@NL* Go to Credentials, then select the ""OAuth consent screen"" tab on top, and provide an 'EMAIL ADDRESS' and a 'PRODUCT NAME'\@NL* Wait 10 minutes for changes to take effect.\@NL## Usage\@NLHere's an example for adding the middleware to a Rails app in `config/initializers/omniauth.rb`:\@NL```ruby\@NLRails.application.config.middleware.use OmniAuth::Builder do\@NL provider :google_oauth2, ENV['GOOGLE_CLIENT_ID'], ENV['GOOGLE_CLIENT_SECRET']\@NLend\@NL```\@NLYou can now access the OmniAuth Google OAuth2 URL: `/auth/google_oauth2`\@NLFor more examples please check out `examples/omni_auth.rb`\@NLNOTE: While developing your application, if you change the scope in the initializer you will need to restart your app server. Remember that either the 'email' or 'profile' scope is required!\@NL## Configuration\@NLYou can configure several options, which you pass in to the `provider` method via a hash:\@NL* `scope`: A comma-separated list of permissions you want to request from the user. See the [Google OAuth 2.0 Playground](https://developers.google.com/oauthplayground/) for a full list of available permissions. Caveats:\@NL * The `email` and `profile` scopes are used by default. By defining your own `scope`, you override these defaults, but Google requires at least one of `email` or `profile`, so make sure to add at least one of them to your scope!\@NL * Scopes starting with `https://www.googleapis.com/auth/` do not need that prefix specified. So while you can use the smaller scope `books` since that permission starts with the mentioned prefix, you should use the full scope URL `https://docs.google.com/feeds/` to access a user's docs, for example.\@NL* `redirect_uri`: Override the redirect_uri used by the gem.\@NL* `prompt`: A space-delimited list of string values that determines whether the user is re-prompted for authentication and/or consent. Possible values are:\@NL * `none`: No authentication or consent pages will be displayed; it will return an error if the user is not already authenticated and has not pre-configured consent for the requested scopes. This can be used as a method to check for existing authentication and/or consent.\@NL * `consent`: The user will always be prompted for consent, even if he has previously allowed access a given set of scopes.\@NL * `select_account`: The user will always be prompted to select a user account. This allows a user who has multiple current account sessions to select one amongst them.\@NL If no value is specified, the user only sees the authentication page if he is not logged in and only sees the consent page the first time he authorizes a given set of scopes.\@NL* `image_aspect_ratio`: The shape of the user's profile picture. Possible values are:\@NL * `original`: Picture maintains its original aspect ratio.\@NL * `square`: Picture presents equal width and height.\@NL Defaults to `original`.\@NL* `image_size`: The size of the user's profile picture. The image returned will have width equal to the given value and variable height, according to the `image_aspect_ratio` chosen. Additionally, a picture with specific width and height can be requested by setting this option to a hash with `width` and `height` as keys. If only `width` or `height` is specified, a picture whose width or height is closest to the requested size and requested aspect ratio will be returned. Defaults to the original width and height of the picture.\@NL* `name`: The name of the strategy. The default name is `google_oauth2` but it can be changed to any value, for example `google`. The OmniAuth URL will thus change to `/auth/google` and the `provider` key in the auth hash will then return `google`.\@NL* `access_type`: Defaults to `offline`, so a refresh token is sent to be used when the user is not present at the browser. Can be set to `online`. More about [offline access](https://developers.google.com/identity/protocols/OAuth2WebServer#offline)\@NL* `hd`: (Optional) Limit sign-in to a particular Google Apps hosted domain. This can be simply string `'domain.com'` or an array `%w(domain.com domain.co)`. More information at: https://developers.google.com/accounts/docs/OpenIDConnect#hd-param\@NL* `jwt_leeway`: Number of seconds passed to the JWT library as leeway. Defaults to 60 seconds.\@NL* `skip_jwt`: Skip JWT processing. This is for users who are seeing JWT decoding errors with the `iat` field. Always try adjusting the leeway before disabling JWT processing.\@NL* `login_hint`: When your app knows which user it is trying to authenticate, it can provide this parameter as a hint to the authentication server. Passing this hint suppresses the account chooser and either pre-fill the email box on the sign-in form, or select the proper session (if the user is using multiple sign-in), which can help you avoid problems that occur if your app logs in the wrong user account. The value can be either an email address or the sub string, which is equivalent to the user's Google+ ID.\@NL* `include_granted_scopes`: If this is provided with the value true, and the authorization request is granted, the authorization will include any previous authorizations granted to this user/application combination for other scopes. See Google's [Incremental Authorization](https://developers.google.com/accounts/docs/OAuth2WebServer#incrementalAuth) for additional details.\@NL* `openid_realm`: Set the OpenID realm value, to allow upgrading from OpenID based authentication to OAuth 2 based authentication. When this is set correctly an `openid_id` value will be set in `[:extra][:id_info]` in the authentication hash with the value of the user's OpenID ID URL.\@NLHere's an example of a possible configuration where the strategy name is changed, the user is asked for extra permissions, the user is always prompted to select his account when logging in and the user's profile picture is returned as a thumbnail:\@NL```ruby\@NLRails.application.config.middleware.use OmniAuth::Builder do\@NL provider :google_oauth2, ENV['GOOGLE_CLIENT_ID'], ENV['GOOGLE_CLIENT_SECRET'],\@NL {\@NL scope: 'userinfo.email, userinfo.profile, http://gdata.youtube.com',\@NL prompt: 'select_account',\@NL image_aspect_ratio: 'square',\@NL image_size: 50\@NL }\@NLend\@NL```\@NL## Auth Hash\@NLHere's an example of an authentication hash available in the callback by accessing `request.env['omniauth.auth']`:\@NL```ruby\@NL{\@NL ""provider"" => ""google_oauth2"",\@NL ""uid"" => ""100000000000000000000"",\@NL ""info"" => {\@NL ""name"" => ""John Smith"",\@NL ""email"" => ""[email protected]"",\@NL ""first_name"" => ""John"",\@NL ""last_name"" => ""Smith"",\@NL ""image"" => ""https://lh4.googleusercontent.com/photo.jpg"",\@NL ""urls"" => {\@NL ""google"" => ""https://plus.google.com/+JohnSmith""\@NL }\@NL },\@NL ""credentials"" => {\@NL ""token"" => ""TOKEN"",\@NL ""refresh_token"" => ""REFRESH_TOKEN"",\@NL ""expires_at"" => 1496120719,\@NL ""expires"" => true\@NL },\@NL ""extra"" => {\@NL ""id_token"" => ""ID_TOKEN"",\@NL ""id_info"" => {\@NL ""azp"" => ""APP_ID"",\@NL ""aud"" => ""APP_ID"",\@NL ""sub"" => ""100000000000000000000"",\@NL ""email"" => ""[email protected]"",\@NL ""email_verified"" => true,\@NL ""at_hash"" => ""HK6E_P6Dh8Y93mRNtsDB1Q"",\@NL ""iss"" => ""accounts.google.com"",\@NL ""iat"" => 1496117119,\@NL ""exp"" => 1496120719\@NL },\@NL ""raw_info"" => {\@NL ""sub"" => ""100000000000000000000"",\@NL ""name"" => ""John Smith"",\@NL ""given_name"" => ""John"",\@NL ""family_name"" => ""Smith"",\@NL ""profile"" => ""https://plus.google.com/+JohnSmith"",\@NL ""picture"" => ""https://lh4.googleusercontent.com/photo.jpg?sz=50"",\@NL ""email"" => ""[email protected]"",\@NL ""email_verified"" => ""true"",\@NL ""locale"" => ""en"",\@NL ""hd"" => ""company.com""\@NL }\@NL }\@NL}\@NL```\@NL### Devise\@NLFirst define your application id and secret in `config/initializers/devise.rb`. Do not use the snippet mentioned in the [Usage](https://github.com/zquestz/omniauth-google-oauth2#usage) section.\@NLConfiguration options can be passed as the last parameter here as key/value pairs.\@NL```ruby\@NLconfig.omniauth :google_oauth2, 'GOOGLE_CLIENT_ID', 'GOOGLE_CLIENT_SECRET', {}\@NL```\@NLNOTE: If you are using this gem with devise with above snippet in `config/initializers/devise.rb` then do not create `config/initializers/omniauth.rb` which will conflict with devise configurations.\@NLThen add the following to 'config/routes.rb' so the callback routes are defined.\@NL```ruby\@NLdevise_for :users, controllers: { omniauth_callbacks: 'users/omniauth_callbacks' }\@NL```\@NLMake sure your model is omniauthable. Generally this is ""/app/models/user.rb""\@NL```ruby\@NLdevise :omniauthable, omniauth_providers: [:google_oauth2]\@NL```\@NLThen make sure your callbacks controller is setup.\@NL```ruby\@NLclass Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController\@NL def google_oauth2\@NL # You need to implement the method below in your model (e.g. app/models/user.rb)\@NL @user = User.from_omniauth(request.env['omniauth.auth'])\@NL if @user.persisted?\@NL flash[:notice] = I18n.t 'devise.omniauth_callbacks.success', kind: 'Google'\@NL sign_in_and_redirect @user, event: :authentication\@NL else\@NL session['devise.google_data'] = request.env['omniauth.auth'].except(:extra) # Removing extra as it can overflow some session stores\@NL redirect_to new_user_registration_url, alert: @user.errors.full_messages.join(""\n"")\@NL end\@NL end\@NLend\@NL```\@NLand bind to or create the user\@NL```ruby\@NLdef self.from_omniauth(access_token)\@NL data = access_token.info\@NL user = User.where(email: data['email']).first\@NL # Uncomment the section below if you want users to be created if they don't exist\@NL # unless user\@NL # user = User.create(name: data['name'],\@NL # email: data['email'],\@NL # password: Devise.friendly_token[0,20]\@NL # )\@NL # end\@NL user\@NLend\@NL```\@NLFor your views you can login using:\@NL```erb\@NL<%= link_to ""Sign in with Google"", user_google_oauth2_omniauth_authorize_path %>\@NL<%# Devise prior 4.1.0: %>\@NL<%= link_to ""Sign in with Google"", user_omniauth_authorize_path(:google_oauth2) %>\@NL```\@NLAn overview is available at https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview\@NL### One-time Code Flow (Hybrid Authentication)\@NLGoogle describes the One-time Code Flow [here](https://developers.google.com/+/web/signin/server-side-flow). This hybrid authentication flow has significant functional and security advantages over a pure server-side or pure client-side flow. The following steps occur in this flow:\@NL1. The client (web browser) authenticates the user directly via Google's JS API. During this process assorted modals may be rendered by Google.\@NL2. On successful authentication, Google returns a one-time use code, which requires the Google client secret (which is only available server-side).\@NL3. Using a AJAX request, the code is POSTed to the Omniauth Google OAuth2 callback.\@NL4. The Omniauth Google OAuth2 gem will validate the code via a server-side request to Google. If the code is valid, then Google will return an access token and, if this is the first time this user is authenticating against this application, a refresh token. Both of these should be stored on the server. The response to the AJAX request indicates the success or failure of this process.\@NLThis flow is immune to replay attacks, and conveys no useful information to a man in the middle.\@NLThe omniauth-google-oauth2 gem supports this mode of operation out of the box. Implementors simply need to add the appropriate JavaScript to their web page, and they can take advantage of this flow. An example JavaScript snippet follows.\@NL```javascript\@NL// Basic hybrid auth example following the pattern at:\@NL// https://developers.google.com/identity/sign-in/web/reference\@NL<script src=""https://apis.google.com/js/platform.js?onload=init"" async defer></script>\@NL...\@NLfunction init() {\@NL gapi.load('auth2', function() {\@NL // Ready.\@NL $('.google-login-button').click(function(e) {\@NL e.preventDefault();\@NL \@NL gapi.auth2.authorize({\@NL client_id: 'YOUR_CLIENT_ID',\@NL cookie_policy: 'single_host_origin',\@NL scope: 'email profile',\@NL response_type: 'code'\@NL }, function(response) {\@NL if (response && !response.error) {\@NL // google authentication succeed, now post data to server.\@NL jQuery.ajax({type: 'POST', url: '/auth/google_oauth2/callback', data: response,\@NL success: function(data) {\@NL // response from server\@NL }\@NL }); \@NL } else {\@NL // google authentication failed\@NL }\@NL });\@NL });\@NL });\@NL};\@NL```\@NL#### Note about mobile clients (iOS, Android)\@NLThe documentation at https://developers.google.com/identity/sign-in/ios/offline-access specifies the _REDIRECT_URI_ to be either a set value or an EMPTY string for mobile logins to work. Else, you will run into _redirect_uri_mismatch_ errors.\@NLIn that case, ensure to send an additional parameter `redirect_uri=` (empty string) to the `/auth/google_oauth2/callback` URL from your mobile device.\@NL#### Note about CORS\@NLIf you're making POST requests to `/auth/google_oauth2/callback` from another domain, then you need to make sure `'X-Requested-With': 'XMLHttpRequest'` header is included with your request, otherwise your server might respond with `OAuth2::Error, : Invalid Value` error.\@NL## Fixing Protocol Mismatch for `redirect_uri` in Rails\@NLJust set the `full_host` in OmniAuth based on the Rails.env.\@NL```\@NL# config/initializers/omniauth.rb\@NLOmniAuth.config.full_host = Rails.env.production? ? 'https://domain.com' : 'http://localhost:3000'\@NL```\@NL## License\@NLCopyright (c) 2018 by Josh Ellithorpe\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ""Software""), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/omniauth-google-oauth2-0.6.1
omniauth-oauth,1.1.0,MIT,https://github.com/intridea/omniauth-oauth,"Copyright (C) 2014 Michael Bleigh, Erik Michaels-Ober and Intridea, Inc.\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/omniauth-oauth-1.1.0
omniauth-oauth2,1.6.0,MIT,https://github.com/omniauth/omniauth-oauth2,"Copyright (C) 2014 Michael Bleigh, Erik Michaels-Ober and Intridea, Inc.\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/omniauth-oauth2-1.6.0
omniauth-twitter,1.4.0,MIT,https://github.com/arunagw/omniauth-twitter,"# OmniAuth Twitter\@NL[![Gem Version](https://badge.fury.io/rb/omniauth-twitter.svg)](http://badge.fury.io/rb/omniauth-twitter)\@NL[![CI Build Status](https://secure.travis-ci.org/arunagw/omniauth-twitter.svg?branch=master)](http://travis-ci.org/arunagw/omniauth-twitter)\@NL[![Code Climate](https://codeclimate.com/github/arunagw/omniauth-twitter.png)](https://codeclimate.com/github/arunagw/omniauth-twitter)\@NLThis gem contains the Twitter strategy for OmniAuth.\@NLTwitter offers a few different methods of integration. This strategy implements the browser variant of the ""[Sign in with Twitter](https://dev.twitter.com/docs/auth/implementing-sign-twitter)"" flow.\@NLTwitter uses OAuth 1.0a. Twitter's developer area contains ample documentation on how it implements this, so check that out if you are really interested in the details.\@NL## Before You Begin\@NLYou should have already installed OmniAuth into your app; if not, read the [OmniAuth README](https://github.com/intridea/omniauth) to get started.\@NLNow sign in into the [Twitter developer area](https://dev.twitter.com/apps) and create an application. Take note of your API Key and API Secret (not the Access Token and Access Token Secret) because that is what your web application will use to authenticate against the Twitter API. Make sure to set a callback URL or else you may get authentication errors. (It doesn't matter what it is, just that it is set.)\@NL## Using This Strategy\@NLFirst start by adding this gem to your Gemfile:\@NL```ruby\@NLgem 'omniauth-twitter'\@NL```\@NLIf you need to use the latest HEAD version, you can do so with:\@NL```ruby\@NLgem 'omniauth-twitter', :github => 'arunagw/omniauth-twitter'\@NL```\@NLNext, tell OmniAuth about this provider. For a Rails app, your `config/initializers/omniauth.rb` file should look like this:\@NL```ruby\@NLRails.application.config.middleware.use OmniAuth::Builder do\@NL provider :twitter, ""API_KEY"", ""API_SECRET""\@NLend\@NL```\@NLReplace `""API_KEY""` and `""API_SECRET""` with the appropriate values you obtained [earlier](https://apps.twitter.com).\@NL## Authentication Options\@NLTwitter supports a [few options](https://dev.twitter.com/docs/api/1/get/oauth/authenticate) when authenticating. Usually you would specify these options as query parameters to the Twitter API authentication url (`https://api.twitter.com/oauth/authenticate` by default). With OmniAuth, of course, you use `http://yourapp.com/auth/twitter` instead. Because of this, this OmniAuth provider will pick up the query parameters you pass to the `/auth/twitter` URL and re-use them when making the call to the Twitter API.\@NLThe options are:\@NL* **force_login** - This option sends the user to a sign-in screen to enter their Twitter credentials, even if they are already signed in. This is handy when your application supports multiple Twitter accounts and you want to ensure the correct user is signed in. *Example:* `http://yoursite.com/auth/twitter?force_login=true`\@NL* **screen_name** - This option implies **force_login**, except the screen name field is pre-filled with a particular value. *Example:* `http://yoursite.com/auth/twitter?screen_name=jim`\@NL* **lang** - The language used in the Twitter prompt. This is useful for adding i18n support since the language of the prompt can be dynamically set for each user. *Example:* `http://yoursite.com/auth/twitter?lang=pt`\@NL* **secure_image_url** - Set to `true` to use https for the user's image url. Default is `false`.\@NL* **image_size**: This option defines the size of the user's image. Valid options include `mini` (24x24), `normal` (48x48), `bigger` (73x73) and `original` (the size of the image originally uploaded). Default is `normal`.\@NL* **x_auth_access_type** - This option (described [here](https://dev.twitter.com/docs/api/1/post/oauth/request_token)) lets you request the level of access that your app will have to the Twitter account in question. *Example:* `http://yoursite.com/auth/twitter?x_auth_access_type=read`\@NL* **use_authorize** - There are actually two URLs you can use against the Twitter API. As mentioned, the default is `https://api.twitter.com/oauth/authenticate`, but you also have `https://api.twitter.com/oauth/authorize`. Passing this option as `true` will use the second URL rather than the first. What's the difference? As described [here](https://dev.twitter.com/docs/api/1/get/oauth/authenticate), with `authenticate`, if your user has already granted permission to your application, Twitter will redirect straight back to your application, whereas `authorize` forces the user to go through the ""grant permission"" screen again. For certain use cases this may be necessary. *Example:* `http://yoursite.com/auth/twitter?use_authorize=true`. *Note:* You must have ""Allow this application to be used to Sign in with Twitter"" checked in [your application's settings](https://dev.twitter.com/apps) - without it your user will be asked to authorize your application each time they log in.\@NLHere's an example of a possible configuration where the the user's original profile picture is returned over https, the user is always prompted to sign-in and the default language of the Twitter prompt is changed:\@NL```ruby\@NLRails.application.config.middleware.use OmniAuth::Builder do\@NL provider :twitter, ""API_KEY"", ""API_SECRET"",\@NL {\@NL :secure_image_url => 'true',\@NL :image_size => 'original',\@NL :authorize_params => {\@NL :force_login => 'true',\@NL :lang => 'pt'\@NL }\@NL }\@NLend\@NL```\@NL## Authentication Hash\@NLAn example auth hash available in `request.env['omniauth.auth']`:\@NL```ruby\@NL{\@NL :provider => ""twitter"",\@NL :uid => ""123456"",\@NL :info => {\@NL :nickname => ""johnqpublic"",\@NL :name => ""John Q Public"",\@NL :location => ""Anytown, USA"",\@NL :image => ""http://si0.twimg.com/sticky/default_profile_images/default_profile_2_normal.png"",\@NL :description => ""a very normal guy."",\@NL :urls => {\@NL :Website => nil,\@NL :Twitter => ""https://twitter.com/johnqpublic""\@NL }\@NL },\@NL :credentials => {\@NL :token => ""a1b2c3d4..."", # The OAuth 2.0 access token\@NL :secret => ""abcdef1234""\@NL },\@NL :extra => {\@NL :access_token => """", # An OAuth::AccessToken object\@NL :raw_info => {\@NL :name => ""John Q Public"",\@NL :listed_count => 0,\@NL :profile_sidebar_border_color => ""181A1E"",\@NL :url => nil,\@NL :lang => ""en"",\@NL :statuses_count => 129,\@NL :profile_image_url => ""http://si0.twimg.com/sticky/default_profile_images/default_profile_2_normal.png"",\@NL :profile_background_image_url_https => ""https://twimg0-a.akamaihd.net/profile_background_images/229171796/pattern_036.gif"",\@NL :location => ""Anytown, USA"",\@NL :time_zone => ""Chicago"",\@NL :follow_request_sent => false,\@NL :id => 123456,\@NL :profile_background_tile => true,\@NL :profile_sidebar_fill_color => ""666666"",\@NL :followers_count => 1,\@NL :default_profile_image => false,\@NL :screen_name => """",\@NL :following => false,\@NL :utc_offset => -3600,\@NL :verified => false,\@NL :favourites_count => 0,\@NL :profile_background_color => ""1A1B1F"",\@NL :is_translator => false,\@NL :friends_count => 1,\@NL :notifications => false,\@NL :geo_enabled => true,\@NL :profile_background_image_url => ""http://twimg0-a.akamaihd.net/profile_background_images/229171796/pattern_036.gif"",\@NL :protected => false,\@NL :description => ""a very normal guy."",\@NL :profile_link_color => ""2FC2EF"",\@NL :created_at => ""Thu Jul 4 00:00:00 +0000 2013"",\@NL :id_str => ""123456"",\@NL :profile_image_url_https => ""https://si0.twimg.com/sticky/default_profile_images/default_profile_2_normal.png"",\@NL :default_profile => false,\@NL :profile_use_background_image => false,\@NL :entities => {\@NL :description => {\@NL :urls => []\@NL }\@NL },\@NL :profile_text_color => ""666666"",\@NL :contributors_enabled => false\@NL }\@NL }\@NL}\@NL```\@NL## Watch the RailsCast\@NLRyan Bates has put together an excellent RailsCast on OmniAuth:\@NL[![RailsCast #241](http://railscasts.com/static/episodes/stills/241-simple-omniauth-revised.png ""RailsCast #241 - Simple OmniAuth (revised)"")](http://railscasts.com/episodes/241-simple-omniauth-revised)\@NL## Supported Rubies\@NLOmniAuth Twitter is tested under 2.1.x, 2.2.x and JRuby.\@NLIf you use its gem on ruby 1.9.x, 2.0.x, or Rubinius use version v1.2.1 .\@NL## Contributing\@NLPlease read the [contribution guidelines](CONTRIBUTING.md) for some information on how to get started. No contribution is too small.\@NL## License\@NLCopyright (c) 2011 by Arun Agrawal\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ""Software""), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/omniauth-twitter-1.4.0
orm_adapter,0.5.0,MIT,http://github.com/ianwhite/orm_adapter,"Copyright (c) 2010-2013 Ian White and José Valim\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/orm_adapter-0.5.0
paper_trail,4.2.0,MIT,https://github.com/airblade/paper_trail,"Copyright (c) 2009 Andy Stewart, AirBlade Software Ltd.\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/paper_trail-4.2.0
pg,0.20.0,New BSD,https://bitbucket.org/ged/ruby-pg,"Ruby is copyrighted free software by Yukihiro Matsumoto <[email protected]>.\@NLYou can redistribute it and/or modify it under either the terms of the\@NL2-clause BSDL (see the file BSDL), or the conditions below:\@NL 1. You may make and give away verbatim copies of the source form of the\@NL software without restriction, provided that you duplicate all of the\@NL original copyright notices and associated disclaimers.\@NL 2. You may modify your copy of the software in any way, provided that\@NL you do at least ONE of the following:\@NL a) place your modifications in the Public Domain or otherwise\@NL make them Freely Available, such as by posting said\@NL modifications to Usenet or an equivalent medium, or by allowing\@NL the author to include your modifications in the software.\@NL b) use the modified software only within your corporation or\@NL organization.\@NL c) give non-standard binaries non-standard names, with\@NL instructions on where to get the original software distribution.\@NL d) make other distribution arrangements with the author.\@NL 3. You may distribute the software in object code or binary form,\@NL provided that you do at least ONE of the following:\@NL a) distribute the binaries and library files of the software,\@NL together with instructions (in the manual page or equivalent)\@NL on where to get the original distribution.\@NL b) accompany the distribution with the machine-readable source of\@NL the software.\@NL c) give non-standard binaries non-standard names, with\@NL instructions on where to get the original software distribution.\@NL d) make other distribution arrangements with the author.\@NL 4. You may modify and include the part of the software into any other\@NL software (possibly commercial). But some files in the distribution\@NL are not written by the author, so that they are not under these terms.\@NL For the list of those files and their copying conditions, see the\@NL file LEGAL.\@NL 5. The scripts and library files supplied as input to or produced as \@NL output from the software do not automatically fall under the\@NL copyright of the software, but belong to whomever generated them, \@NL and may be sold commercially, and may be aggregated with this\@NL software.\@NL 6. THIS SOFTWARE IS PROVIDED ""AS IS"" AND WITHOUT ANY EXPRESS OR\@NL IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED\@NL WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\@NL PURPOSE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/pg-0.20.0
pg_search,2.1.4,MIT,https://github.com/Casecommons/pg_search,"Copyright (c) 2010-2017 Case Commons, Inc. <http://casecommons.org>\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/pg_search-2.1.4
pick-a-color,1.2.3,MIT,https://github.com/lauren/pick-a-color,"Copyright (c) 2013 Lauren Sperber and Broadstreet Ads\@NLPermission is hereby granted, free of charge, to any person\@NLobtaining a copy of this software and associated documentation\@NLfiles (the ""Software""), to deal in the Software without\@NLrestriction, including without limitation the rights to use, copy,\@NLmodify, merge, publish, distribute, sublicense, and/or sell copies\@NLof the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\@NLOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\@NLHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\@NLWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\@NLFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\@NLOTHER DEALINGS IN THE SOFTWARE.",/Users/scott/Workspace/Helpy/helpy/vendor/assets/components/pick-a-color
polyglot,0.3.5,MIT,http://github.com/cjheath/polyglot,"Copyright (c) 2007 Clifford Heath\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL= polyglot\@NL* http://github.com/cjheath/polyglot\@NL== DESCRIPTION:\@NLAuthor: Clifford Heath, 2007\@NLThe Polyglot library allows a Ruby module to register a loader\@NLfor the file type associated with a filename extension, and it\@NLaugments 'require' to find and load matching files.\@NLThis supports the creation of DSLs having a syntax that is most\@NLappropriate to their purpose, instead of abusing the Ruby syntax.\@NLFiles are sought using the normal Ruby search path.\@NL== EXAMPLE:\@NLIn file rubyglot.rb, define and register a file type handler:\@NL require 'polyglot'\@NL class RubyglotLoader\@NL def self.load(filename, options = nil, &block)\@NL File.open(filename) {|file|\@NL # Load the contents of file as Ruby code:\@NL # Implement your parser here instead!\@NL Kernel.eval(file.read)\@NL }\@NL end\@NL end\@NL Polyglot.register(""rgl"", RubyglotLoader)\@NLIn file test.rb:\@NL require 'rubyglot' # Create my file type handler\@NL require 'hello' # Can add extra options or even a block here\@NL puts ""Ready to go""\@NL Hello.new\@NLIn file hello.rgl (this simple example uses Ruby code):\@NL puts ""Initializing""\@NL class Hello\@NL def initialize()\@NL puts ""Hello, world\n""\@NL end\@NL end\@NLRun:\@NL $ ruby test.rb\@NL Initializing\@NL Ready to go\@NL Hello, world\@NL $\@NL== INSTALL:\@NLsudo gem install polyglot\@NL== LICENSE:\@NL(The MIT License)\@NLCopyright (c) 2007 Clifford Heath\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/polyglot-0.3.5
premailer,1.11.1,New BSD,https://github.com/premailer/premailer,"# Premailer License\@NLCopyright (c) 2007-2017, Alex Dunae. All rights reserved.\@NLRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\@NL* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\@NL* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\@NL* Neither the name of Premailer, Alex Dunae nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\@NLTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/premailer-1.11.1
premailer-rails,1.10.2,MIT,https://github.com/fphilipe/premailer-rails,"Copyright (C) 2011-2012 Philipe Fatio (fphilipe)\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated\@NLdocumentation files (the ""Software""), to deal in the Software without restriction, including without limitation the\@NLrights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit\@NLpersons to whom the Software is furnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all copies or substantial portions of\@NLthe Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE\@NLWARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\@NLCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\@NLOTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL# premailer-rails\@NLCSS styled emails without the hassle.\@NL[![Build Status][build-image]][build-link]\@NL[![Gem Version][gem-image]][gem-link]\@NL[![Dependency Status][deps-image]][deps-link]\@NL[![Code Climate][gpa-image]][gpa-link]\@NL[![Coverage Status][cov-image]][cov-link]\@NL## Introduction\@NLThis gem is a drop in solution for styling HTML emails with CSS without having\@NLto do the hard work yourself.\@NLStyling emails is not just a matter of linking to a stylesheet. Most clients,\@NLespecially web clients, ignore linked stylesheets or `<style>` tags in the HTML.\@NLThe workaround is to write all the CSS rules in the `style` attribute of each\@NLtag inside your email. This is a rather tedious and hard to maintain approach.\@NLPremailer to the rescue! The great [premailer] gem applies all CSS rules to each\@NLmatching HTML element by adding them to the `style` attribute. This allows you\@NLto keep HTML and CSS in separate files, just as you're used to from web\@NLdevelopment, thus keeping your sanity.\@NLThis gem is an adapter for premailer to work with [actionmailer] out of the box.\@NLActionmailer is the email framework used in Rails, which also works outside of\@NLRails. Although premailer-rails has certain Rails specific features, **it also\@NLworks in the absence of Rails** making it compatible with other frameworks such\@NLas sinatra.\@NL## How It Works\@NLpremailer-rails works with actionmailer by registering a delivery hook. This\@NLcauses all emails that are delivered to be processed by premailer-rails. This\@NLmeans that by simply including premailer-rails in your `Gemfile` you'll get\@NLstyled emails without having to set anything up.\@NLWhenever premailer-rails processes an email, it collects the URLs of all linked\@NLstylesheets (`<link rel=""stylesheet"" href=""css_url"">`). Then, for each of these\@NLURLs, it tries to get the content through a couple of strategies. As long as\@NLa strategy does not return anything, the next one is used. The strategies\@NLavailable are:\@NL- `:filesystem`: If there's a file inside `public/` with the same path as in\@NL the URL, it is read from disk. E.g. if the URL is\@NL `http://cdn.example.com/assets/email.css` the contents of the file located\@NL at `public/assets/email.css` gets returned if it exists.\@NL- `:asset_pipeline`: If Rails is available and the asset pipeline is enabled,\@NL the file is retrieved through the asset pipeline. E.g. if the URL is\@NL `http://cdn.example.com/assets/email-fingerprint123.css`, the file\@NL `email.css` is requested from the asset pipeline. That is, the fingerprint\@NL and the prefix (in this case `assets` is the prefix) are stripped before\@NL requesting it from the asset pipeline.\@NL- `:network`: As a last resort, the URL is simply requested and the response\@NL body is used. This is useful when the assets are not bundled in the\@NL application and only available on a CDN. On Heroku e.g. you can add assets\@NL to your `.slugignore` causing your assets to not be available to the app\@NL (and thus resulting in a smaller app) and deploy the assets to a CDN such\@NL as S3/CloudFront.\@NLYou can configure which strategies you want to use as well as specify their\@NLorder. Refer to the *Configuration* section for more on this.\@NLNote that the retrieved CSS is cached when the gem is running with Rails in\@NLproduction.\@NL## Installation\@NLSimply add the gem to your `Gemfile`:\@NL```ruby\@NLgem 'premailer-rails'\@NL```\@NLpremailer-rails and premailer require a gem that is used to parse the email's\@NLHTML. For a list of supported gems and how to select which one to use, please\@NLrefer to the [*Adapter*\@NLsection](https://github.com/premailer/premailer#adapters) of premailer. Note\@NLthat there is no hard dependency from either gem so you should add one yourself.\@NLAlso note that this gem is only tested with [nokogiri].\@NL## Configuration\@NLPremailer itself accepts a number of options. In order for premailer-rails to\@NLpass these options on to the underlying premailer instance, specify them\@NLas follows (in Rails you could do that in an initializer such as\@NL`config/initializers/premailer_rails.rb`):\@NL```ruby\@NLPremailer::Rails.config.merge!(preserve_styles: true, remove_ids: true)\@NL```\@NLFor a list of options, refer to the [premailer documentation]. The default\@NLconfigs are:\@NL```ruby\@NL{\@NL input_encoding: 'UTF-8',\@NL generate_text_part: true,\@NL strategies: [:filesystem, :asset_pipeline, :network]\@NL}\@NL```\@NLIf you don't want to automatically generate a text part from the html part, set\@NLthe config `:generate_text_part` to false.\@NLNote that the options `:with_html_string` and `:css_string` are used internally\@NLby premailer-rails and thus will be overridden.\@NLIf you're using this gem outside of Rails, you'll need to call\@NL`Premailer::Rails.register_interceptors` manually in order for it to work. This\@NLis done ideally in some kind of initializer, depending on the framework you're\@NLusing.\@NLpremailer-rails reads all stylesheet `<link>` tags, inlines the linked CSS\@NLand removes the tags. If you wish to ignore a certain tag, e.g. one that links to\@NLexternal fonts such as Google Fonts, you can add a `data-premailer=""ignore""`\@NLattribute.\@NL## Usage\@NLpremailer-rails processes all outgoing emails by default. If you wish to skip\@NLpremailer for a certain email, simply set the `:skip_premailer` header:\@NL```ruby\@NLclass UserMailer < ActionMailer::Base\@NL def welcome_email(user)\@NL mail to: user.email,\@NL subject: 'Welcome to My Awesome Site',\@NL skip_premailer: true\@NL end\@NLend\@NL```\@NLNote that the mere presence of this header causes premailer to be skipped, i.e.,\@NLeven setting `skip_premailer: false` will cause premailer to be skipped. The\@NLreason for that is that the `skip_premailer` is a simple header and the value is\@NLtransformed into a string, causing `'false'` to become truthy.\@NLEmails are only processed upon delivery, i.e. when calling `#deliver` on the\@NLemail, or when [previewing them in\@NLrails](http://api.rubyonrails.org/v4.1.0/classes/ActionMailer/Base.html#class-ActionMailer::Base-label-Previewing+emails).\@NLIf you wish to manually trigger the inlining, you can do so by calling the hook:\@NL```ruby\@NLmail = SomeMailer.some_message(args)\@NLPremailer::Rails::Hook.perform(mail)\@NL```\@NLThis will modify the email in place, useful e.g. in tests.\@NL## Small Print\@NL### Author\@NLPhilipe Fatio ([@fphilipe][fphilipe twitter])\@NL### License\@NLpremailer-rails is released under the MIT license. See the [license file].\@NL[build-image]: https://travis-ci.org/fphilipe/premailer-rails.svg\@NL[build-link]: https://travis-ci.org/fphilipe/premailer-rails\@NL[gem-image]: https://badge.fury.io/rb/premailer-rails.svg\@NL[gem-link]: https://rubygems.org/gems/premailer-rails\@NL[deps-image]: https://gemnasium.com/fphilipe/premailer-rails.svg\@NL[deps-link]: https://gemnasium.com/fphilipe/premailer-rails\@NL[gpa-image]: https://codeclimate.com/github/fphilipe/premailer-rails.svg\@NL[gpa-link]: https://codeclimate.com/github/fphilipe/premailer-rails\@NL[cov-image]: https://coveralls.io/repos/fphilipe/premailer-rails/badge.svg\@NL[cov-link]: https://coveralls.io/r/fphilipe/premailer-rails\@NL[tip-image]: https://rawgithub.com/twolfson/gittip-badge/0.1.0/dist/gittip.svg\@NL[tip-link]: https://www.gittip.com/fphilipe/\@NL[premailer]: https://github.com/premailer/premailer\@NL[actionmailer]: https://github.com/rails/rails/tree/master/actionmailer\@NL[nokogiri]: https://github.com/sparklemotion/nokogiri\@NL[premailer documentation]: http://rubydoc.info/gems/premailer/1.7.3/Premailer:initialize\@NL[fphilipe twitter]: https://twitter.com/fphilipe\@NL[license file]: LICENSE",/Users/scott/.rvm/gems/ruby-2.4.6/gems/premailer-rails-1.10.2
public_suffix,3.0.3,MIT,https://simonecarletti.com/code/publicsuffix-ruby,"Copyright (c) 2009-2018 Simone Carletti <[email protected]>\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/public_suffix-3.0.3
rack,1.6.11,MIT,http://rack.github.io/,"Copyright (c) 2007-2015 Christian Neukirchen <purl.org/net/chneukirchen>\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to\@NLdeal in the Software without restriction, including without limitation the\@NLrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\@NLsell copies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\@NLTHE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER \@NLIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\@NLCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL= Rack, a modular Ruby webserver interface {<img src=""https://secure.travis-ci.org/rack/rack.svg"" alt=""Build Status"" />}[http://travis-ci.org/rack/rack] {<img src=""https://gemnasium.com/rack/rack.svg"" alt=""Dependency Status"" />}[https://gemnasium.com/rack/rack]\@NLRack provides a minimal, modular and adaptable interface for developing\@NLweb applications in Ruby. By wrapping HTTP requests and responses in\@NLthe simplest way possible, it unifies and distills the API for web\@NLservers, web frameworks, and software in between (the so-called\@NLmiddleware) into a single method call.\@NLThe exact details of this are described in the Rack specification,\@NLwhich all Rack applications should conform to.\@NL== Supported web servers\@NLThe included *handlers* connect all kinds of web servers to Rack:\@NL* Mongrel\@NL* EventedMongrel\@NL* SwiftipliedMongrel\@NL* WEBrick\@NL* FCGI\@NL* CGI\@NL* SCGI\@NL* LiteSpeed\@NL* Thin\@NLThese web servers include Rack handlers in their distributions:\@NL* Ebb\@NL* Fuzed\@NL* Glassfish v3\@NL* Phusion Passenger (which is mod_rack for Apache and for nginx)\@NL* Puma\@NL* Rainbows!\@NL* Reel\@NL* Unicorn\@NL* unixrack\@NL* uWSGI\@NL* yahns\@NL* Zbatery\@NLAny valid Rack app will run the same on all these handlers, without\@NLchanging anything.\@NL== Supported web frameworks\@NLThese frameworks include Rack adapters in their distributions:\@NL* Camping\@NL* Coset\@NL* Espresso\@NL* Halcyon\@NL* Mack\@NL* Maveric\@NL* Merb\@NL* Racktools::SimpleApplication\@NL* Ramaze\@NL* Ruby on Rails\@NL* Rum\@NL* Sinatra\@NL* Sin\@NL* Vintage\@NL* Waves\@NL* Wee\@NL* ... and many others.\@NL== Available middleware\@NLBetween the server and the framework, Rack can be customized to your\@NLapplications needs using middleware, for example:\@NL* Rack::URLMap, to route to multiple applications inside the same process.\@NL* Rack::CommonLogger, for creating Apache-style logfiles.\@NL* Rack::ShowException, for catching unhandled exceptions and\@NL presenting them in a nice and helpful way with clickable backtrace.\@NL* Rack::File, for serving static files.\@NL* ...many others!\@NLAll these components use the same interface, which is described in\@NLdetail in the Rack specification. These optional components can be\@NLused in any way you wish.\@NL== Convenience\@NLIf you want to develop outside of existing frameworks, implement your\@NLown ones, or develop middleware, Rack provides many helpers to create\@NLRack applications quickly and without doing the same web stuff all\@NLover:\@NL* Rack::Request, which also provides query string parsing and\@NL multipart handling.\@NL* Rack::Response, for convenient generation of HTTP replies and\@NL cookie handling.\@NL* Rack::MockRequest and Rack::MockResponse for efficient and quick\@NL testing of Rack application without real HTTP round-trips.\@NL== rack-contrib\@NLThe plethora of useful middleware created the need for a project that\@NLcollects fresh Rack middleware. rack-contrib includes a variety of\@NLadd-on components for Rack and it is easy to contribute new modules.\@NL* https://github.com/rack/rack-contrib\@NL== rackup\@NLrackup is a useful tool for running Rack applications, which uses the\@NLRack::Builder DSL to configure middleware and build up applications\@NLeasily.\@NLrackup automatically figures out the environment it is run in, and\@NLruns your application as FastCGI, CGI, or standalone with Mongrel or\@NLWEBrick---all from the same configuration.\@NL== Quick start\@NLTry the lobster!\@NLEither with the embedded WEBrick starter:\@NL ruby -Ilib lib/rack/lobster.rb\@NLOr with rackup:\@NL bin/rackup -Ilib example/lobster.ru\@NLBy default, the lobster is found at http://localhost:9292.\@NL== Installing with RubyGems\@NLA Gem of Rack is available at rubygems.org. You can install it with:\@NL gem install rack\@NLI also provide a local mirror of the gems (and development snapshots)\@NLat my site:\@NL gem install rack --source http://chneukirchen.org/releases/gems/\@NL== Running the tests\@NLTesting Rack requires the bacon testing framework:\@NL bundle install --without extra # to be able to run the fast tests\@NLOr:\@NL bundle install # this assumes that you have installed native extensions!\@NLThere are two rake-based test tasks:\@NL rake test tests all the fast tests (no Handlers or Adapters)\@NL rake fulltest runs all the tests\@NLThe fast testsuite has no dependencies outside of the core Ruby\@NLinstallation and bacon.\@NLTo run the test suite completely, you need:\@NL * fcgi\@NL * memcache-client\@NL * mongrel\@NL * thin\@NLThe full set of tests test FCGI access with lighttpd (on port\@NL9203) so you will need lighttpd installed as well as the FCGI\@NLlibraries and the fcgi gem:\@NLDownload and install lighttpd:\@NL http://www.lighttpd.net/download\@NLInstalling the FCGI libraries:\@NL curl -O http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz\@NL tar xzvf fcgi-2.4.0.tar.gz\@NL cd fcgi-2.4.0\@NL ./configure --prefix=/usr/local\@NL make\@NL sudo make install\@NL cd ..\@NLInstalling the Ruby fcgi gem:\@NL gem install fcgi\@NLFurthermore, to test Memcache sessions, you need memcached (will be\@NLrun on port 11211) and memcache-client installed.\@NL== Configuration\@NLSeveral parameters can be modified on Rack::Utils to configure Rack behaviour.\@NLe.g:\@NL Rack::Utils.key_space_limit = 128\@NL=== key_space_limit\@NLThe default number of bytes to allow a single parameter key to take up.\@NLThis helps prevent a rogue client from flooding a Request.\@NLDefault to 65536 characters (4 kiB in worst case).\@NL=== multipart_part_limit\@NLThe maximum number of parts a request can contain.\@NLAccepting too many part can lead to the server running out of file handles.\@NLThe default is 128, which means that a single request can't upload more than 128 files at once.\@NLSet to 0 for no limit.\@NLCan also be set via the RACK_MULTIPART_PART_LIMIT environment variable.\@NL== History\@NLSee <https://github.com/rack/HISTORY.md>.\@NL== Contact\@NLPlease post bugs, suggestions and patches to\@NLthe bug tracker at <https://github.com/rack/rack/issues>.\@NLPlease post security related bugs and suggestions to the core team at\@NL<https://groups.google.com/group/rack-core> or [email protected]. This\@NLlist is not public. Due to wide usage of the library, it is strongly preferred\@NLthat we manage timing in order to provide viable patches at the time of\@NLdisclosure. Your assistance in this matter is greatly appreciated.\@NLMailing list archives are available at\@NL<https://groups.google.com/group/rack-devel>.\@NLGit repository (send Git patches to the mailing list):\@NL* https://github.com/rack/rack\@NL* http://git.vuxu.org/cgi-bin/gitweb.cgi?p=rack-github.git\@NLYou are also welcome to join the #rack channel on irc.freenode.net.\@NL== Thanks\@NLThe Rack Core Team, consisting of\@NL* Christian Neukirchen (chneukirchen)\@NL* James Tucker (raggi)\@NL* Josh Peek (josh)\@NL* José Valim (josevalim)\@NL* Michael Fellinger (manveru)\@NL* Aaron Patterson (tenderlove)\@NL* Santiago Pastorino (spastorino)\@NL* Konstantin Haase (rkh)\@NLand the Rack Alumnis\@NL* Ryan Tomayko (rtomayko)\@NL* Scytrin dai Kinthra (scytrin)\@NLwould like to thank:\@NL* Adrian Madrid, for the LiteSpeed handler.\@NL* Christoffer Sawicki, for the first Rails adapter and Rack::Deflater.\@NL* Tim Fletcher, for the HTTP authentication code.\@NL* Luc Heinrich for the Cookie sessions, the static file handler and bugfixes.\@NL* Armin Ronacher, for the logo and racktools.\@NL* Alex Beregszaszi, Alexander Kahn, Anil Wadghule, Aredridel, Ben\@NL Alpert, Dan Kubb, Daniel Roethlisberger, Matt Todd, Tom Robinson,\@NL Phil Hagelberg, S. Brent Faulkner, Bosko Milekic, Daniel RodrÃguez\@NL Troitiño, Genki Takiuchi, Geoffrey Grosenbach, Julien Sanchez, Kamal\@NL Fariz Mahyuddin, Masayoshi Takahashi, Patrick Aljordm, Mig, Kazuhiro\@NL Nishiyama, Jon Bardin, Konstantin Haase, Larry Siden, Matias\@NL Korhonen, Sam Ruby, Simon Chiang, Tim Connor, Timur Batyrshin, and\@NL Zach Brock for bug fixing and other improvements.\@NL* Eric Wong, Hongli Lai, Jeremy Kemper for their continuous support\@NL and API improvements.\@NL* Yehuda Katz and Carl Lerche for refactoring rackup.\@NL* Brian Candler, for Rack::ContentType.\@NL* Graham Batty, for improved handler loading.\@NL* Stephen Bannasch, for bug reports and documentation.\@NL* Gary Wright, for proposing a better Rack::Response interface.\@NL* Jonathan Buch, for improvements regarding Rack::Response.\@NL* Armin Röhrl, for tracking down bugs in the Cookie generator.\@NL* Alexander Kellett for testing the Gem and reviewing the announcement.\@NL* Marcus Rückert, for help with configuring and debugging lighttpd.\@NL* The WSGI team for the well-done and documented work they've done and\@NL Rack builds up on.\@NL* All bug reporters and patch contributors not mentioned above.\@NL== Copyright\@NLCopyright (C) 2007, 2008, 2009, 2010 Christian Neukirchen <http://purl.org/net/chneukirchen>\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to\@NLdeal in the Software without restriction, including without limitation the\@NLrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\@NLsell copies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\@NLTHE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\@NLIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\@NLCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL== Links\@NLRack:: <http://rack.github.io/>\@NLOfficial Rack repositories:: <https://github.com/rack>\@NLRack Bug Tracking:: <https://github.com/rack/rack/issues>\@NLrack-devel mailing list:: <https://groups.google.com/group/rack-devel>\@NLRack's Rubyforge project:: <http://rubyforge.org/projects/rack>\@NLChristian Neukirchen:: <http://chneukirchen.org/>",/Users/scott/.rvm/gems/ruby-2.4.6/gems/rack-1.6.11
rack-accept,0.4.5,MIT,http://mjijackson.github.com/rack-accept,"# Rack::Accept\@NL**Rack::Accept** is a suite of tools for Ruby/Rack applications that eases the\@NLcomplexity of building and interpreting the Accept* family of [HTTP request headers][rfc].\@NLSome features of the library are:\@NL * Strict adherence to [RFC 2616][rfc], specifically [section 14][rfc-sec14]\@NL * Full support for the [Accept][rfc-sec14-1], [Accept-Charset][rfc-sec14-2],\@NL [Accept-Encoding][rfc-sec14-3], and [Accept-Language][rfc-sec14-4] HTTP\@NL request headers\@NL * May be used as [Rack][rack] middleware or standalone\@NL * A comprehensive [test suite][test] that covers many edge cases\@NL[rfc]: http://www.w3.org/Protocols/rfc2616/rfc2616.html\@NL[rfc-sec14]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html\@NL[rfc-sec14-1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1\@NL[rfc-sec14-2]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.2\@NL[rfc-sec14-3]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.3\@NL[rfc-sec14-4]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4\@NL[rack]: http://rack.rubyforge.org/\@NL[test]: http://github.com/mjijackson/rack-accept/tree/master/test/\@NL## Installation\@NL**Using [RubyGems](http://rubygems.org/):**\@NL $ sudo gem install rack-accept\@NL**From a local copy:**\@NL $ git clone git://github.com/mjijackson/rack-accept.git\@NL $ cd rack-accept\@NL $ rake package && sudo rake install\@NL## Usage\@NL**Rack::Accept** implements the Rack middleware interface and may be used with any\@NLRack-based application. Simply insert the `Rack::Accept` module in your Rack\@NLmiddleware pipeline and access the `Rack::Accept::Request` object in the\@NL`rack-accept.request` environment key, as in the following example.\@NL```ruby\@NLrequire 'rack/accept'\@NLuse Rack::Accept\@NLapp = lambda do |env|\@NL accept = env['rack-accept.request']\@NL response = Rack::Response.new\@NL if accept.media_type?('text/html')\@NL response['Content-Type'] = 'text/html'\@NL response.write ""<p>Hello. You accept text/html!</p>""\@NL else\@NL response['Content-Type'] = 'text/plain'\@NL response.write ""Apparently you don't accept text/html. Too bad.""\@NL end\@NL response.finish\@NLend\@NLrun app\@NL```\@NL**Rack::Accept** can also construct automatic [406][406] responses if you set up\@NLthe types of media, character sets, encoding, or languages your server is able\@NLto serve ahead of time. If you pass a configuration block to your `use`\@NLstatement it will yield the `Rack::Accept::Context` object that is used for that\@NLinvocation.\@NL[406]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.7\@NL```ruby\@NLrequire 'rack/accept'\@NLuse(Rack::Accept) do |context|\@NL # We only ever serve content in English or Japanese from this site, so if\@NL # the user doesn't accept either of these we will respond with a 406.\@NL context.languages = %w< en jp >\@NLend\@NLapp = ...\@NLrun app\@NL```\@NL**Note:** _You should think carefully before using Rack::Accept in this way.\@NLMany user agents are careless about the types of Accept headers they send, and\@NLdepend on apps not being too picky. Instead of automatically sending a 406, you\@NLshould probably only send one when absolutely necessary._\@NLAdditionally, **Rack::Accept** may be used outside of a Rack context to provide\@NLany Ruby app the ability to construct and interpret Accept headers.\@NL```ruby\@NLrequire 'rack/accept'\@NLmtype = Rack::Accept::MediaType.new\@NLmtype.qvalues = { 'text/html' => 1, 'text/*' => 0.8, '*/*' => 0.5 }\@NLmtype.to_s # => ""Accept: text/html, text/*;q=0.8, */*;q=0.5""\@NLcset = Rack::Accept::Charset.new('unicode-1-1, iso-8859-5;q=0.8')\@NLcset.best_of(%w< iso-8859-5 unicode-1-1 >) # => ""unicode-1-1""\@NLcset.accept?('iso-8859-1') # => true\@NL```\@NLThe very last line in this example may look like a mistake to someone not\@NLfamiliar with the intricacies of [the spec][rfc-sec14-3], but it's actually\@NLcorrect. It just puts emphasis on the convenience of using this library so you\@NLdon't have to worry about these kinds of details.\@NL## Four-letter Words\@NL - Spec: [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html][rfc-sec14]\@NL - Code: [http://github.com/mjijackson/rack-accept][code]\@NL - Bugs: [http://github.com/mjijackson/rack-accept/issues][bugs]\@NL - Docs: [http://mjijackson.github.com/rack-accept][docs]\@NL[code]: http://github.com/mjijackson/rack-accept\@NL[bugs]: http://github.com/mjijackson/rack-accept/issues\@NL[docs]: http://mjijackson.github.com/rack-accept\@NL## License\@NLCopyright 2012 Michael Jackson\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLThe software is provided ""as is"", without warranty of any kind, express or\@NLimplied, including but not limited to the warranties of merchantability,\@NLfitness for a particular purpose and noninfringement. In no event shall the\@NLauthors or copyright holders be liable for any claim, damages or other\@NLliability, whether in an action of contract, tort or otherwise, arising from,\@NLout of or in connection with the software or the use or other dealings in\@NLthe software.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/rack-accept-0.4.5
rack-cors,1.0.3,MIT,https://github.com/cyu/rack-cors,"Copyright (c) 2013 Calvin Yu\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/rack-cors-1.0.3
rack-test,0.6.3,MIT,http://github.com/brynary/rack-test,"Copyright (c) 2008-2009 Bryan Helmkamp, Engine Yard Inc.\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/rack-test-0.6.3
rails,4.2.11.1,MIT,http://www.rubyonrails.org,"",/Users/scott/.rvm/gems/ruby-2.4.6/gems/rails-4.2.11.1
rails-deprecated_sanitizer,1.0.3,MIT,https://github.com/rails/rails-deprecated_sanitizer,"",/Users/scott/.rvm/gems/ruby-2.4.6/gems/rails-deprecated_sanitizer-1.0.3
rails-dom-testing,1.0.9,MIT,https://github.com/rails/rails-dom-testing,"Copyright (c) 2013 Kasper Timm Hansen\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/rails-dom-testing-1.0.9
rails-html-sanitizer,1.0.4,MIT,https://github.com/rails/rails-html-sanitizer,"Copyright (c) 2013-2015 Rafael Mendonça França, Kasper Timm Hansen\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/rails-html-sanitizer-1.0.4
rails-i18n,4.0.9,MIT,http://github.com/svenfuchs/rails-i18n,"Copyright (c) 2008-2012 Sven Fuchs and contributors (see https://github.com/svenfuchs/rails-i18n/contributors)\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/rails-i18n-4.0.9
rails-settings-cached,0.5.6,MIT,"","",
rails-timeago,2.16.0,MIT,https://github.com/jgraichen/rails-timeago,"Copyright (c) 2012 Jan Graichen\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL# rails-timeago\@NL[![Gem Version](https://badge.fury.io/rb/rails-timeago.svg)](http://badge.fury.io/rb/rails-timeago)\@NL[![Build Status](https://travis-ci.org/jgraichen/rails-timeago.svg?branch=master)](https://travis-ci.org/jgraichen/rails-timeago)\@NL[![Code Climate](https://codeclimate.com/github/jgraichen/rails-timeago.svg)](https://codeclimate.com/github/jgraichen/rails-timeago)\@NL[![Dependency Status](https://gemnasium.com/jgraichen/rails-timeago.svg)](https://gemnasium.com/jgraichen/rails-timeago)\@NL**rails-timeago** provides a timeago_tag helper to create time tags usable for\@NL[jQuery Timeago](https://github.com/rmm5t/jquery-timeago) plugin.\@NL## Installation\@NLAdd this line to your application's `Gemfile`:\@NL```ruby\@NLgem 'rails-timeago', '~> 2.0'\@NL```\@NLAnd then execute:\@NL $ bundle\@NLOr install it yourself as:\@NL $ gem install rails-timeago\@NLTo use bundled jQuery Timeago plugin add this require statement to your `application.js` file:\@NL //= require rails-timeago\@NLThis will also convert all matching time tags on page load.\@NLUse the following to also include all available locale files:\@NL //= require rails-timeago-all\@NL## Usage\@NLUse the timeago_tag helper like any other regular tag helper:\@NL```erb\@NL<%= timeago_tag Time.zone.now, :nojs => true, :limit => 10.days.ago %>\@NL```\@NL### Available options:\@NL**nojs**\@NLAdd time ago in words as time tag content instead of absolute time.\@NL(default: `false`)\@NL**date_only**\@NLOnly print date as tag content instead of full time.\@NL(default: `true`)\@NL**format**\@NLA time format for localize method used to format static time.\@NL(default: `default`)\@NL**limit**\@NLSet a limit for time ago tags. All dates before given limit will not be converted.\@NL(default: `4.days.ago`)\@NL**force**\@NLForce time ago tag ignoring limit option.\@NL(default: `false`)\@NL**default**\@NLString that will be returned if time is `nil`.\@NL(default: `'-'`)\@NL**title**\@NLA string or block that will be used to create a title attribute for timeago tags. It set to nil or false no title attribute will be set.\@NL(default: `proc { |time, options| I18n.l time, :format => options[:format] }`)\@NLAll other options will be given as options to the time tag helper.\@NLThe above options can be assigned globally as defaults using\@NL```ruby\@NLRails::Timeago.default_options :limit => proc { 20.days.ago }, :nojs => true\@NL```\@NLA global limit should always be given as a block that will be evaluated each time the rails `timeago_tag` helper is called. That avoids the limit becoming smaller the longer the application runs.\@NL## I18n\@NL**rails-timeago 2** ships with a modified version of jQuery timeago that allows to include all locale files at once and set the locale via an option or per element via the `lang` attribute:\@NL```erb\@NL<%= timeago_tag Time.zone.now, :lang => :de %>\@NL```\@NLThe following snippet will print a script tag that set the jQuery timeago locale according to your `I18n.locale`:\@NL```erb\@NL<%= timeago_script_tag %>\@NL```\@NLJust insert it in your application layout's html head. If you use another I18n framework for JavaScript you can also directly set `jQuery.timeago.settings.lang`. For example:\@NL```js\@NLjQuery.timeago.settings.lang = $('html').attr('lang')\@NL````\@NLDo not forget to require the needed locale files by either require `rails-timeago-all` in your `application.js` file or require specific locale files:\@NL```js\@NL//= require locales/jquery.timeago.de.js\@NL//= require locales/jquery.timeago.ru.js\@NL```\@NL*Note:* English is included in jQuery timeago library, but can be easily override by include an own file that defines `jQuery.timeago.settings.strings[""en""]`. See a locale file for more details.\@NL**rails-timeago** includes locale files for the following locales taken from [jQuery Timeago](https://github.com/rmm5t/jquery-timeago).\@NL> de cy pl mk zh-CN bs en-short it fi es uk lt zh-TW sk hy ca pt el sv ar no fa fr pt-br tr he bg ko uz cz sl hu id hr ru nl fr-short da ja ro th\@NLYour customized jQuery locale files must be changed to work with **rails-timeago 2**. Instead of defining your locale strings as `jQuery.timeago.settings.strings` you need to define them like this:\@NL```js\@NLjQuery.timeago.settings.strings[""en""] = {\@NL ...\@NL}\@NL```\@NL## License\@NL[MIT License](http://www.opensource.org/licenses/mit-license.php)\@NLCopyright (c) 2014, Jan Graichen",/Users/scott/.rvm/gems/ruby-2.4.6/gems/rails-timeago-2.16.0
railties,4.2.11.1,MIT,http://www.rubyonrails.org,"Copyright <%= Date.today.year %> <%= author %>\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL= Railties -- Gluing the Engine to the Rails\@NLRailties is responsible for gluing all frameworks together. Overall, it:\@NL* handles the bootstrapping process for a Rails application;\@NL* manages the +rails+ command line interface;\@NL* and provides the Rails generators core.\@NL== Download\@NLThe latest version of Railties can be installed with RubyGems:\@NL* gem install railties\@NLSource code can be downloaded as part of the Rails project on GitHub\@NL* https://github.com/rails/rails/tree/4-2-stable/railties\@NL== License\@NLRailties is released under the MIT license:\@NL* http://www.opensource.org/licenses/MIT\@NL== Support\@NLAPI documentation is at\@NL* http://api.rubyonrails.org\@NLBug reports can be filed for the Ruby on Rails project here:\@NL* https://github.com/rails/rails/issues\@NLFeature requests should be discussed on the rails-core mailing list here:\@NL* https://groups.google.com/forum/?fromgroups#!forum/rubyonrails-core",/Users/scott/.rvm/gems/ruby-2.4.6/gems/railties-4.2.11.1
rainbow,2.2.2,MIT,https://github.com/sickill/rainbow,"Copyright (c) Marcin Kulik\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/rainbow-2.2.2
raindrops,0.19.0,LGPL-2.1+,https://bogomips.org/raindrops/," GNU LESSER GENERAL PUBLIC LICENSE\@NL Version 3, 29 June 2007\@NL Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>\@NL Everyone is permitted to copy and distribute verbatim copies\@NL of this license document, but changing it is not allowed.\@NL This version of the GNU Lesser General Public License incorporates\@NLthe terms and conditions of version 3 of the GNU General Public\@NLLicense, supplemented by the additional permissions listed below.\@NL 0. Additional Definitions.\@NL As used herein, ""this License"" refers to version 3 of the GNU Lesser\@NLGeneral Public License, and the ""GNU GPL"" refers to version 3 of the GNU\@NLGeneral Public License.\@NL ""The Library"" refers to a covered work governed by this License,\@NLother than an Application or a Combined Work as defined below.\@NL An ""Application"" is any work that makes use of an interface provided\@NLby the Library, but which is not otherwise based on the Library.\@NLDefining a subclass of a class defined by the Library is deemed a mode\@NLof using an interface provided by the Library.\@NL A ""Combined Work"" is a work produced by combining or linking an\@NLApplication with the Library. The particular version of the Library\@NLwith which the Combined Work was made is also called the ""Linked\@NLVersion"".\@NL The ""Minimal Corresponding Source"" for a Combined Work means the\@NLCorresponding Source for the Combined Work, excluding any source code\@NLfor portions of the Combined Work that, considered in isolation, are\@NLbased on the Application, and not on the Linked Version.\@NL The ""Corresponding Application Code"" for a Combined Work means the\@NLobject code and/or source code for the Application, including any data\@NLand utility programs needed for reproducing the Combined Work from the\@NLApplication, but excluding the System Libraries of the Combined Work.\@NL 1. Exception to Section 3 of the GNU GPL.\@NL You may convey a covered work under sections 3 and 4 of this License\@NLwithout being bound by section 3 of the GNU GPL.\@NL 2. Conveying Modified Versions.\@NL If you modify a copy of the Library, and, in your modifications, a\@NLfacility refers to a function or data to be supplied by an Application\@NLthat uses the facility (other than as an argument passed when the\@NLfacility is invoked), then you may convey a copy of the modified\@NLversion:\@NL a) under this License, provided that you make a good faith effort to\@NL ensure that, in the event an Application does not supply the\@NL function or data, the facility still operates, and performs\@NL whatever part of its purpose remains meaningful, or\@NL b) under the GNU GPL, with none of the additional permissions of\@NL this License applicable to that copy.\@NL 3. Object Code Incorporating Material from Library Header Files.\@NL The object code form of an Application may incorporate material from\@NLa header file that is part of the Library. You may convey such object\@NLcode under terms of your choice, provided that, if the incorporated\@NLmaterial is not limited to numerical parameters, data structure\@NLlayouts and accessors, or small macros, inline functions and templates\@NL(ten or fewer lines in length), you do both of the following:\@NL a) Give prominent notice with each copy of the object code that the\@NL Library is used in it and that the Library and its use are\@NL covered by this License.\@NL b) Accompany the object code with a copy of the GNU GPL and this license\@NL document.\@NL 4. Combined Works.\@NL You may convey a Combined Work under terms of your choice that,\@NLtaken together, effectively do not restrict modification of the\@NLportions of the Library contained in the Combined Work and reverse\@NLengineering for debugging such modifications, if you also do each of\@NLthe following:\@NL a) Give prominent notice with each copy of the Combined Work that\@NL the Library is used in it and that the Library and its use are\@NL covered by this License.\@NL b) Accompany the Combined Work with a copy of the GNU GPL and this license\@NL document.\@NL c) For a Combined Work that displays copyright notices during\@NL execution, include the copyright notice for the Library among\@NL these notices, as well as a reference directing the user to the\@NL copies of the GNU GPL and this license document.\@NL d) Do one of the following:\@NL 0) Convey the Minimal Corresponding Source under the terms of this\@NL License, and the Corresponding Application Code in a form\@NL suitable for, and under terms that permit, the user to\@NL recombine or relink the Application with a modified version of\@NL the Linked Version to produce a modified Combined Work, in the\@NL manner specified by section 6 of the GNU GPL for conveying\@NL Corresponding Source.\@NL 1) Use a suitable shared library mechanism for linking with the\@NL Library. A suitable mechanism is one that (a) uses at run time\@NL a copy of the Library already present on the user's computer\@NL system, and (b) will operate properly with a modified version\@NL of the Library that is interface-compatible with the Linked\@NL Version.\@NL e) Provide Installation Information, but only if you would otherwise\@NL be required to provide such information under section 6 of the\@NL GNU GPL, and only to the extent that such information is\@NL necessary to install and execute a modified version of the\@NL Combined Work produced by recombining or relinking the\@NL Application with a modified version of the Linked Version. (If\@NL you use option 4d0, the Installation Information must accompany\@NL the Minimal Corresponding Source and Corresponding Application\@NL Code. If you use option 4d1, you must provide the Installation\@NL Information in the manner specified by section 6 of the GNU GPL\@NL for conveying Corresponding Source.)\@NL 5. Combined Libraries.\@NL You may place library facilities that are a work based on the\@NLLibrary side by side in a single library together with other library\@NLfacilities that are not Applications and are not covered by this\@NLLicense, and convey such a combined library under terms of your\@NLchoice, if you do both of the following:\@NL a) Accompany the combined library with a copy of the same work based\@NL on the Library, uncombined with any other library facilities,\@NL conveyed under the terms of this License.\@NL b) Give prominent notice with the combined library that part of it\@NL is a work based on the Library, and explaining where to find the\@NL accompanying uncombined form of the same work.\@NL 6. Revised Versions of the GNU Lesser General Public License.\@NL The Free Software Foundation may publish revised and/or new versions\@NLof the GNU Lesser General Public License from time to time. Such new\@NLversions will be similar in spirit to the present version, but may\@NLdiffer in detail to address new problems or concerns.\@NL Each version is given a distinguishing version number. If the\@NLLibrary as you received it specifies that a certain numbered version\@NLof the GNU Lesser General Public License ""or any later version""\@NLapplies to it, you have the option of following the terms and\@NLconditions either of that published version or of any later version\@NLpublished by the Free Software Foundation. If the Library as you\@NLreceived it does not specify a version number of the GNU Lesser\@NLGeneral Public License, you may choose any version of the GNU Lesser\@NLGeneral Public License ever published by the Free Software Foundation.\@NL If the Library as you received it specifies that a proxy can decide\@NLwhether future versions of the GNU Lesser General Public License shall\@NLapply, that proxy's public statement of acceptance of any version is\@NLpermanent authorization for you to choose that version for the\@NLLibrary.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/raindrops-0.19.0
rake,12.3.2,MIT,https://github.com/ruby/rake,"Copyright (c) Jim Weirich\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/rake-12.3.2
ranked-model,0.4.1,MIT,https://github.com/mixonic/ranked-model,"Copyright (c) 2011 Iridesco LLC ([email protected])\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/ranked-model-0.4.1
rb-fsevent,0.10.3,MIT,http://rubygems.org/gems/rb-fsevent,"Copyright (c) 2011-2013 Travis Tilley\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NLCopyright (c) 2010-2014 Thibaud Guillaume-Gentil & Travis Tilley\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/rb-fsevent-0.10.3
rb-inotify,0.9.10,MIT,https://github.com/guard/rb-inotify,"# rb-inotify\@NLThis is a simple wrapper over the [inotify](http://en.wikipedia.org/wiki/Inotify) Linux kernel subsystem\@NLfor monitoring changes to files and directories.\@NLIt uses the [FFI](http://wiki.github.com/ffi/ffi) gem to avoid having to compile a C extension.\@NL[API documentation is available on rdoc.info](http://rdoc.info/projects/nex3/rb-inotify).\@NL[![Build Status](https://secure.travis-ci.org/guard/rb-inotify.svg)](http://travis-ci.org/guard/rb-inotify)\@NL[![Code Climate](https://codeclimate.com/github/guard/rb-inotify.svg)](https://codeclimate.com/github/guard/rb-inotify)\@NL[![Coverage Status](https://coveralls.io/repos/guard/rb-inotify/badge.svg)](https://coveralls.io/r/guard/rb-inotify)\@NL## Basic Usage\@NLThe API is similar to the inotify C API, but with a more Rubyish feel.\@NLFirst, create a notifier:\@NL notifier = INotify::Notifier.new\@NLThen, tell it to watch the paths you're interested in\@NLfor the events you care about:\@NL notifier.watch(""path/to/foo.txt"", :modify) {puts ""foo.txt was modified!""}\@NL notifier.watch(""path/to/bar"", :moved_to, :create) do |event|\@NL puts ""#{event.name} is now in path/to/bar!""\@NL end\@NLInotify can watch directories or individual files.\@NLIt can pay attention to all sorts of events;\@NLfor a full list, see [the inotify man page](http://www.tin.org/bin/man.cgi?section=7&topic=inotify).\@NLFinally, you get at the events themselves:\@NL notifier.run\@NLThis will loop infinitely, calling the appropriate callbacks when the files are changed.\@NLIf you don't want infinite looping,\@NLyou can also block until there are available events,\@NLprocess them all at once,\@NLand then continue on your merry way:\@NL notifier.process\@NL## Advanced Usage\@NLSometimes it's necessary to have finer control over the underlying IO operations\@NLthan is provided by the simple callback API.\@NLThe trick to this is that the \{INotify::Notifier#to_io Notifier#to_io} method\@NLreturns a fully-functional IO object,\@NLwith a file descriptor and everything.\@NLThis means, for example, that it can be passed to `IO#select`:\@NL # Wait 10 seconds for an event then give up\@NL if IO.select([notifier.to_io], [], [], 10)\@NL notifier.process\@NL end\@NLIt can even be used with EventMachine:\@NL require 'eventmachine'\@NL EM.run do\@NL EM.watch notifier.to_io do\@NL notifier.process\@NL end\@NL end\@NLUnfortunately, this currently doesn't work under JRuby.\@NLJRuby currently doesn't use native file descriptors for the IO object,\@NLso we can't use the notifier's file descriptor as a stand-in.\@NL## Contributing\@NL1. Fork it\@NL2. Create your feature branch (`git checkout -b my-new-feature`)\@NL3. Commit your changes (`git commit -am 'Add some feature'`)\@NL4. Push to the branch (`git push origin my-new-feature`)\@NL5. Create new Pull Request\@NL## License\@NLReleased under the MIT license.\@NLCopyright, 2009, by Nathan Weizenbaum. \@NLCopyright, 2017, by [Samuel G. D. Williams](http://www.codeotaku.com/samuel-williams).\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/rb-inotify-0.9.10
rdiscount,2.2.0.1,New BSD,http://dafoster.net/projects/rdiscount/,"",/Users/scott/.rvm/gems/ruby-2.4.6/gems/rdiscount-2.2.0.1
rdoc,6.0.4,ruby,https://ruby.github.io/rdoc,"",/Users/scott/.rvm/gems/ruby-2.4.6/gems/rdoc-6.0.4
recaptcha,2.3.0,MIT,http://github.com/ambethia/recaptcha,"Copyright (c) 2007 Jason L Perry\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/recaptcha-2.3.0
regexp_parser,0.5.0,MIT,http://github.com/ammar/regexp_parser,"Copyright (c) 2010, 2012-2015, Ammar Ali\@NLPermission is hereby granted, free of charge, to any person\@NLobtaining a copy of this software and associated documentation\@NLfiles (the ""Software""), to deal in the Software without\@NLrestriction, including without limitation the rights to use,\@NLcopy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the\@NLSoftware is furnished to do so, subject to the following\@NLconditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\@NLOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\@NLHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\@NLWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\@NLFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\@NLOTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/regexp_parser-0.5.0
request_store,1.4.1,MIT,http://github.com/steveklabnik/request_store,"Copyright (c) 2012 Steve Klabnik\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/request_store-1.4.1
responders,2.4.1,MIT,https://github.com/plataformatec/responders,"Copyright 2009-2016 Plataformatec. http://plataformatec.com.br\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/responders-2.4.1
rest-client,2.0.2,MIT,https://github.com/rest-client/rest-client,"The MIT License (MIT)\@NLCopyright (c) 2008-2014 Rest Client Authors\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all\@NLcopies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\@NLSOFTWARE.\@NL# REST Client -- simple DSL for accessing HTTP and REST resources\@NL[![Gem Downloads](https://img.shields.io/gem/dt/rest-client.svg)](https://rubygems.org/gems/rest-client)\@NL[![Build Status](https://travis-ci.org/rest-client/rest-client.svg?branch=master)](https://travis-ci.org/rest-client/rest-client)\@NL[![Code Climate](https://codeclimate.com/github/rest-client/rest-client.svg)](https://codeclimate.com/github/rest-client/rest-client)\@NL[![Inline docs](http://inch-ci.org/github/rest-client/rest-client.svg?branch=master)](http://www.rubydoc.info/github/rest-client/rest-client/master)\@NLA simple HTTP and REST client for Ruby, inspired by the Sinatra's microframework style\@NLof specifying actions: get, put, post, delete.\@NL* Main page: https://github.com/rest-client/rest-client\@NL* Mailing list: https://groups.io/g/rest-client\@NL### New mailing list\@NLWe have a new email list for announcements, hosted by Groups.io.\@NL* Subscribe on the web: https://groups.io/g/rest-client\@NL* Subscribe by sending an email: mailto:[email protected]\@NL* Open discussion subgroup: https://groups.io/g/rest-client+discuss\@NLThe old Librelist mailing list is *defunct*, as Librelist appears to be broken\@NLand not accepting new mail. The old archives are still up, but have been\@NLimported into the new list archives as well.\@NLhttp://librelist.com/browser/rest.client\@NL## Requirements\@NLMRI Ruby 2.0 and newer are supported. Alternative interpreters compatible with\@NL2.0+ should work as well.\@NLEarlier Ruby versions such as 1.8.7, 1.9.2, and 1.9.3 are no longer supported. These\@NLversions no longer have any official support, and do not receive security\@NLupdates.\@NLThe rest-client gem depends on these other gems for usage at runtime:\@NL* [mime-types](http://rubygems.org/gems/mime-types)\@NL* [netrc](http://rubygems.org/gems/netrc)\@NL* [http-cookie](https://rubygems.org/gems/http-cookie)\@NLThere are also several development dependencies. It's recommended to use\@NL[bundler](http://bundler.io/) to manage these dependencies for hacking on\@NLrest-client.\@NL### Upgrading to rest-client 2.0 from 1.x\@NLUsers are encouraged to upgrade to rest-client 2.0, which cleans up a number of\@NLAPI warts and wrinkles, making rest-client generally more useful. Usage is\@NLlargely compatible, so many applications will be able to upgrade with no\@NLchanges.\@NLOverview of significant changes:\@NL* requires Ruby >= 2.0\@NL* `RestClient::Response` objects are a subclass of `String` rather than a\@NL Frankenstein monster. And `#body` or `#to_s` return a true `String` object.\@NL* cleanup of exception classes, including new `RestClient::Exceptions::Timeout`\@NL* improvements to handling of redirects: responses and history are properly\@NL exposed\@NL* major changes to cookie support: cookie jars are used for browser-like\@NL behavior throughout\@NL* encoding: Content-Type charset response headers are used to automatically set\@NL the encoding of the response string\@NL* HTTP params: handling of GET/POST params is more consistent and sophisticated\@NL for deeply nested hash objects, and `ParamsArray` can be used to pass ordered\@NL params\@NL* improved proxy support with per-request proxy configuration, plus the ability\@NL to disable proxies set by environment variables\@NL* default request headers: rest-client sets `Accept: */*` and\@NL `User-Agent: rest-client/...`\@NLSee [history.md](./history.md) for a more complete description of changes.\@NL## Usage: Raw URL\@NLBasic usage:\@NL```ruby\@NLrequire 'rest-client'\@NLRestClient.get(url, headers={})\@NLRestClient.post(url, payload, headers={})\@NL```\@NLIn the high level helpers, only POST, PATCH, and PUT take a payload argument.\@NLTo pass a payload with other HTTP verbs or to pass more advanced options, use\@NL`RestClient::Request.execute` instead.\@NLMore detailed examples:\@NL```ruby\@NLrequire 'rest-client'\@NLRestClient.get 'http://example.com/resource'\@NLRestClient.get 'http://example.com/resource', {params: {id: 50, 'foo' => 'bar'}}\@NLRestClient.get 'https://user:[email protected]/private/resource', {accept: :json}\@NLRestClient.post 'http://example.com/resource', {param1: 'one', nested: {param2: 'two'}}\@NLRestClient.post ""http://example.com/resource"", {'x' => 1}.to_json, {content_type: :json, accept: :json}\@NLRestClient.delete 'http://example.com/resource'\@NL>> response = RestClient.get 'http://example.com/resource'\@NL=> <RestClient::Response 200 ""<!doctype h..."">\@NL>> response.code\@NL=> 200\@NL>> response.cookies\@NL=> {""Foo""=>""BAR"", ""QUUX""=>""QUUUUX""}\@NL>> response.headers\@NL=> {:content_type=>""text/html; charset=utf-8"", :cache_control=>""private"" ... }\@NL>> response.body\@NL=> ""<!doctype html>\n<html>\n<head>\n <title>Example Domain</title>\n\n ...""\@NLRestClient.post( url,\@NL {\@NL :transfer => {\@NL :path => '/foo/bar',\@NL :owner => 'that_guy',\@NL :group => 'those_guys'\@NL },\@NL :upload => {\@NL :file => File.new(path, 'rb')\@NL }\@NL })\@NL```\@NL## Passing advanced options\@NLThe top level helper methods like RestClient.get accept a headers hash as\@NLtheir last argument and don't allow passing more complex options. But these\@NLhelpers are just thin wrappers around `RestClient::Request.execute`.\@NL```ruby\@NLRestClient::Request.execute(method: :get, url: 'http://example.com/resource',\@NL timeout: 10)\@NLRestClient::Request.execute(method: :get, url: 'http://example.com/resource',\@NL ssl_ca_file: 'myca.pem',\@NL ssl_ciphers: 'AESGCM:!aNULL')\@NL```\@NLYou can also use this to pass a payload for HTTP verbs like DELETE, where the\@NL`RestClient.delete` helper doesn't accept a payload.\@NL```ruby\@NLRestClient::Request.execute(method: :delete, url: 'http://example.com/resource',\@NL payload: 'foo', headers: {myheader: 'bar'})\@NL```\@NLDue to unfortunate choices in the original API, the params used to populate the\@NLquery string are actually taken out of the headers hash. So if you want to pass\@NLboth the params hash and more complex options, use the special key\@NL`:params` in the headers hash. This design may change in a future major\@NLrelease.\@NL```ruby\@NLRestClient::Request.execute(method: :get, url: 'http://example.com/resource',\@NL timeout: 10, headers: {params: {foo: 'bar'}})\@NLâ GET http://example.com/resource?foo=bar\@NL```\@NL## Multipart\@NLYeah, that's right! This does multipart sends for you!\@NL```ruby\@NLRestClient.post '/data', :myfile => File.new(""/path/to/image.jpg"", 'rb')\@NL```\@NLThis does two things for you:\@NL- Auto-detects that you have a File value sends it as multipart\@NL- Auto-detects the mime of the file and sets it in the HEAD of the payload for each entry\@NLIf you are sending params that do not contain a File object but the payload needs to be multipart then:\@NL```ruby\@NLRestClient.post '/data', {:foo => 'bar', :multipart => true}\@NL```\@NL## Usage: ActiveResource-Style\@NL```ruby\@NLresource = RestClient::Resource.new 'http://example.com/resource'\@NLresource.get\@NLprivate_resource = RestClient::Resource.new 'https://example.com/private/resource', 'user', 'pass'\@NLprivate_resource.put File.read('pic.jpg'), :content_type => 'image/jpg'\@NL```\@NLSee RestClient::Resource module docs for details.\@NL## Usage: Resource Nesting\@NL```ruby\@NLsite = RestClient::Resource.new('http://example.com')\@NLsite['posts/1/comments'].post 'Good article.', :content_type => 'text/plain'\@NL```\@NLSee `RestClient::Resource` docs for details.\@NL## Exceptions (see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html)\@NL- for result codes between `200` and `207`, a `RestClient::Response` will be returned\@NL- for result codes `301`, `302` or `307`, the redirection will be followed if the request is a `GET` or a `HEAD`\@NL- for result code `303`, the redirection will be followed and the request transformed into a `GET`\@NL- for other cases, a `RestClient::ExceptionWithResponse` holding the Response will be raised; a specific exception class will be thrown for known error codes\@NL- call `.response` on the exception to get the server's response\@NL```ruby\@NL>> RestClient.get 'http://example.com/nonexistent'\@NLException: RestClient::NotFound: 404 Not Found\@NL>> begin\@NL RestClient.get 'http://example.com/nonexistent'\@NL rescue RestClient::ExceptionWithResponse => e\@NL e.response\@NL end\@NL=> <RestClient::Response 404 ""<!doctype h..."">\@NL```\@NL### Other exceptions\@NLWhile most exceptions have been collected under `RestClient::RequestFailed` aka\@NL`RestClient::ExceptionWithResponse`, there are a few quirky exceptions that\@NLhave been kept for backwards compatibility.\@NLRestClient will propagate up exceptions like socket errors without modification:\@NL```ruby\@NL>> RestClient.get 'http://localhost:12345'\@NLException: Errno::ECONNREFUSED: Connection refused - connect(2) for ""localhost"" port 12345\@NL```\@NLRestClient handles a few specific error cases separately in order to give\@NLbetter error messages. These will hopefully be cleaned up in a future major\@NLrelease.\@NL`RestClient::ServerBrokeConnection` is translated from `EOFError` to give a\@NLbetter error message.\@NL`RestClient::SSLCertificateNotVerified` is raised when HTTPS validation fails.\@NLOther `OpenSSL::SSL::SSLError` errors are raised as is.\@NL### Redirection\@NLBy default, rest-client will follow HTTP 30x redirection requests.\@NL__New in 2.0:__ `RestClient::Response` exposes a `#history` method that returns\@NLa list of each response received in a redirection chain.\@NL```ruby\@NL>> r = RestClient.get('http://httpbin.org/redirect/2')\@NL=> <RestClient::Response 200 ""{\n \""args\"":..."">\@NL# see each response in the redirect chain\@NL>> r.history\@NL=> [<RestClient::Response 302 ""<!DOCTYPE H..."">, <RestClient::Response 302 """">]\@NL# see each requested URL\@NL>> r.request.url\@NL=> ""http://httpbin.org/get""\@NL>> r.history.map {|x| x.request.url}\@NL=> [""http://httpbin.org/redirect/2"", ""http://httpbin.org/relative-redirect/1""]\@NL```\@NL#### Manually following redirection\@NLTo disable automatic redirection, set `:max_redirects => 0`.\@NL__New in 2.0:__ Prior versions of rest-client would raise\@NL`RestClient::MaxRedirectsReached`, with no easy way to access the server's\@NLresponse. In 2.0, rest-client raises the normal\@NL`RestClient::ExceptionWithResponse` as it would with any other non-HTTP-20x\@NLresponse.\@NL```ruby\@NL>> RestClient::Request.execute(method: :get, url: 'http://httpbin.org/redirect/1')\@NL=> RestClient::Response 200 ""{\n ""args"":...""\@NL>> RestClient::Request.execute(method: :get, url: 'http://httpbin.org/redirect/1', max_redirects: 0)\@NLRestClient::Found: 302 Found\@NL```\@NLTo manually follow redirection, you can call `Response#follow_redirection`. Or\@NLyou could of course inspect the result and choose custom behavior.\@NL```ruby\@NL>> RestClient::Request.execute(method: :get, url: 'http://httpbin.org/redirect/1', max_redirects: 0)\@NLRestClient::Found: 302 Found\@NL>> begin\@NL RestClient::Request.execute(method: :get, url: 'http://httpbin.org/redirect/1', max_redirects: 0)\@NL rescue RestClient::ExceptionWithResponse => err\@NL end\@NL>> err\@NL=> #<RestClient::Found: 302 Found>\@NL>> err.response\@NL=> RestClient::Response 302 ""<!DOCTYPE H...""\@NL>> err.response.headers[:location]\@NL=> ""/get""\@NL>> err.response.follow_redirection\@NL=> RestClient::Response 200 ""{\n ""args"":...""\@NL```\@NL## Result handling\@NLThe result of a `RestClient::Request` is a `RestClient::Response` object.\@NL__New in 2.0:__ `RestClient::Response` objects are now a subclass of `String`.\@NLPreviously, they were a real String object with response functionality mixed\@NLin, which was very confusing to work with.\@NLResponse objects have several useful methods. (See the class rdoc for more details.)\@NL- `Response#code`: The HTTP response code\@NL- `Response#body`: The response body as a string. (AKA .to_s)\@NL- `Response#headers`: A hash of HTTP response headers\@NL- `Response#raw_headers`: A hash of HTTP response headers as unprocessed arrays\@NL- `Response#cookies`: A hash of HTTP cookies set by the server\@NL- `Response#cookie_jar`: <em>New in 1.8</em> An HTTP::CookieJar of cookies\@NL- `Response#request`: The RestClient::Request object used to make the request\@NL- `Response#history`: <em>New in 2.0</em> If redirection was followed, a list of prior Response objects\@NL```ruby\@NLRestClient.get('http://example.com')\@NLâ <RestClient::Response 200 ""<!doctype h..."">\@NLbegin\@NL RestClient.get('http://example.com/notfound')\@NLrescue RestClient::ExceptionWithResponse => err\@NL err.response\@NLend\@NLâ <RestClient::Response 404 ""<!doctype h..."">\@NL```\@NL### Response callbacks, error handling\@NLA block can be passed to the RestClient method. This block will then be called with the Response.\@NLResponse.return! can be called to invoke the default response's behavior.\@NL```ruby\@NL# Don't raise exceptions but return the response\@NL>> RestClient.get('http://example.com/nonexistent') {|response, request, result| response }\@NL=> <RestClient::Response 404 ""<!doctype h..."">\@NL```\@NL```ruby\@NL# Manage a specific error code\@NLRestClient.get('http://example.com/resource') { |response, request, result, &block|\@NL case response.code\@NL when 200\@NL p ""It worked !""\@NL response\@NL when 423\@NL raise SomeCustomExceptionIfYouWant\@NL else\@NL response.return!(request, result, &block)\@NL end\@NL}\@NL```\@NLBut note that it may be more straightforward to use exceptions to handle\@NLdifferent HTTP error response cases:\@NL```ruby\@NLbegin\@NL resp = RestClient.get('http://example.com/resource')\@NLrescue RestClient::Unauthorized, RestClient::Forbidden => err\@NL puts 'Access denied'\@NL return err.response\@NLrescue RestClient::ImATeapot => err\@NL puts 'The server is a teapot! # RFC 2324'\@NL return err.response\@NLelse\@NL puts 'It worked!'\@NL return resp\@NLend\@NL```\@NLFor GET and HEAD requests, rest-client automatically follows redirection. For\@NLother HTTP verbs, call `.follow_redirection` on the response object (works both\@NLin block form and in exception form).\@NL```ruby\@NL# Follow redirections for all request types and not only for get and head\@NL# RFC : ""If the 301, 302 or 307 status code is received in response to a request other than GET or HEAD,\@NL# the user agent MUST NOT automatically redirect the request unless it can be confirmed by the user,\@NL# since this might change the conditions under which the request was issued.""\@NL# block style\@NLRestClient.post('http://example.com/redirect', 'body') { |response, request, result|\@NL case response.code\@NL when 301, 302, 307\@NL response.follow_redirection\@NL else\@NL response.return!\@NL end\@NL}\@NL# exception style by explicit classes\@NLbegin\@NL RestClient.post('http://example.com/redirect', 'body')\@NLrescue RestClient::MovedPermanently,\@NL RestClient::Found,\@NL RestClient::TemporaryRedirect => err\@NL err.response.follow_redirection\@NLend\@NL# exception style by response code\@NLbegin\@NL RestClient.post('http://example.com/redirect', 'body')\@NLrescue RestClient::ExceptionWithResponse => err\@NL case err.http_code\@NL when 301, 302, 307\@NL err.response.follow_redirection\@NL else\@NL raise\@NL end\@NLend\@NL```\@NL## Non-normalized URIs\@NLIf you need to normalize URIs, e.g. to work with International Resource Identifiers (IRIs),\@NLuse the addressable gem (http://addressable.rubyforge.org/api/) in your code:\@NL```ruby\@NL require 'addressable/uri'\@NL RestClient.get(Addressable::URI.parse(""http://www.詹å§æ¯.com/"").normalize.to_str)\@NL```\@NL## Lower-level access\@NLFor cases not covered by the general API, you can use the `RestClient::Request` class, which provides a lower-level API.\@NLYou can:\@NL- specify ssl parameters\@NL- override cookies\@NL- manually handle the response (e.g. to operate on it as a stream rather than reading it all into memory)\@NLSee `RestClient::Request`'s documentation for more information.\@NL## Shell\@NLThe restclient shell command gives an IRB session with RestClient already loaded:\@NL```ruby\@NL$ restclient\@NL>> RestClient.get 'http://example.com'\@NL```\@NLSpecify a URL argument for get/post/put/delete on that resource:\@NL```ruby\@NL$ restclient http://example.com\@NL>> put '/resource', 'data'\@NL```\@NLAdd a user and password for authenticated resources:\@NL```ruby\@NL$ restclient https://example.com user pass\@NL>> delete '/private/resource'\@NL```\@NLCreate ~/.restclient for named sessions:\@NL```ruby\@NL sinatra:\@NL url: http://localhost:4567\@NL rack:\@NL url: http://localhost:9292\@NL private_site:\@NL url: http://example.com\@NL username: user\@NL password: pass\@NL```\@NLThen invoke:\@NL```ruby\@NL$ restclient private_site\@NL```\@NLUse as a one-off, curl-style:\@NL```ruby\@NL$ restclient get http://example.com/resource > output_body\@NL$ restclient put http://example.com/resource < input_body\@NL```\@NL## Logging\@NLTo enable logging you can:\@NL- set RestClient.log with a Ruby Logger, or\@NL- set an environment variable to avoid modifying the code (in this case you can use a file name, ""stdout"" or ""stderr""):\@NL```ruby\@NL$ RESTCLIENT_LOG=stdout path/to/my/program\@NL```\@NLEither produces logs like this:\@NL```ruby\@NLRestClient.get ""http://some/resource""\@NL# => 200 OK | text/html 250 bytes\@NLRestClient.put ""http://some/resource"", ""payload""\@NL# => 401 Unauthorized | application/xml 340 bytes\@NL```\@NLNote that these logs are valid Ruby, so you can paste them into the `restclient`\@NLshell or a script to replay your sequence of rest calls.\@NL## Proxy\@NLAll calls to RestClient, including Resources, will use the proxy specified by\@NL`RestClient.proxy`:\@NL```ruby\@NLRestClient.proxy = ""http://proxy.example.com/""\@NLRestClient.get ""http://some/resource""\@NL# => response from some/resource as proxied through proxy.example.com\@NL```\@NLOften the proxy URL is set in an environment variable, so you can do this to\@NLuse whatever proxy the system is configured to use:\@NL```ruby\@NL RestClient.proxy = ENV['http_proxy']\@NL```\@NL__New in 2.0:__ Specify a per-request proxy by passing the :proxy option to\@NLRestClient::Request. This will override any proxies set by environment variable\@NLor by the global `RestClient.proxy` value.\@NL```ruby\@NLRestClient::Request.execute(method: :get, url: 'http://example.com',\@NL proxy: 'http://proxy.example.com')\@NL# => single request proxied through the proxy\@NL```\@NLThis can be used to disable the use of a proxy for a particular request.\@NL```ruby\@NLRestClient.proxy = ""http://proxy.example.com/""\@NLRestClient::Request.execute(method: :get, url: 'http://example.com', proxy: nil)\@NL# => single request sent without a proxy\@NL```\@NL## Query parameters\@NLRest-client can render a hash as HTTP query parameters for GET/HEAD/DELETE\@NLrequests or as HTTP post data in `x-www-form-urlencoded` format for POST\@NLrequests.\@NL__New in 2.0:__ Even though there is no standard specifying how this should\@NLwork, rest-client follows a similar convention to the one used by Rack / Rails\@NLservers for handling arrays, nested hashes, and null values.\@NLThe implementation in\@NL[./lib/rest-client/utils.rb](RestClient::Utils.encode_query_string)\@NLclosely follows\@NL[Rack::Utils.build_nested_query](http://www.rubydoc.info/gems/rack/Rack/Utils#build_nested_query-class_method),\@NLbut treats empty arrays and hashes as `nil`. (Rack drops them entirely, which\@NLis confusing behavior.)\@NLIf you don't like this behavior and want more control, just serialize params\@NLyourself (e.g. with `URI.encode_www_form`) and add the query string to the URL\@NLdirectly for GET parameters or pass the payload as a string for POST requests.\@NLBasic GET params:\@NL```ruby\@NLRestClient.get('https://httpbin.org/get', params: {foo: 'bar', baz: 'qux'})\@NL# GET ""https://httpbin.org/get?foo=bar&baz=qux""\@NL```\@NLBasic `x-www-form-urlencoded` POST params:\@NL```ruby\@NL>> r = RestClient.post('https://httpbin.org/post', {foo: 'bar', baz: 'qux'})\@NL# POST ""https://httpbin.org/post"", data: ""foo=bar&baz=qux""\@NL=> <RestClient::Response 200 ""{\n \""args\"":..."">\@NL>> JSON.parse(r.body)\@NL=> {""args""=>{},\@NL ""data""=>"""",\@NL ""files""=>{},\@NL ""form""=>{""baz""=>""qux"", ""foo""=>""bar""},\@NL ""headers""=>\@NL {""Accept""=>""*/*"",\@NL ""Accept-Encoding""=>""gzip, deflate"",\@NL ""Content-Length""=>""15"",\@NL ""Content-Type""=>""application/x-www-form-urlencoded"",\@NL ""Host""=>""httpbin.org""},\@NL ""json""=>nil,\@NL ""url""=>""https://httpbin.org/post""}\@NL```\@NLJSON payload: rest-client does not speak JSON natively, so serialize your\@NLpayload to a string before passing it to rest-client.\@NL```ruby\@NL>> payload = {'name' => 'newrepo', 'description': 'A new repo'}\@NL>> RestClient.post('https://api.github.com/user/repos', payload.to_json, content_type: :json)\@NL=> <RestClient::Response 201 ""{\""id\"":75149..."">\@NL```\@NLAdvanced GET params (arrays):\@NL```ruby\@NL>> r = RestClient.get('https://http-params.herokuapp.com/get', params: {foo: [1,2,3]})\@NL# GET ""https://http-params.herokuapp.com/get?foo[]=1&foo[]=2&foo[]=3""\@NL=> <RestClient::Response 200 ""Method: GET..."">\@NL>> puts r.body\@NLquery_string: ""foo[]=1&foo[]=2&foo[]=3""\@NLdecoded: ""foo[]=1&foo[]=2&foo[]=3""\@NLGET:\@NL {""foo""=>[""1"", ""2"", ""3""]}\@NL```\@NLAdvanced GET params (nested hashes):\@NL```ruby\@NL>> r = RestClient.get('https://http-params.herokuapp.com/get', params: {outer: {foo: 123, bar: 456}})\@NL# GET ""https://http-params.herokuapp.com/get?outer[foo]=123&outer[bar]=456""\@NL=> <RestClient::Response 200 ""Method: GET..."">\@NL>> puts r.body\@NL...\@NLquery_string: ""outer[foo]=123&outer[bar]=456""\@NLdecoded: ""outer[foo]=123&outer[bar]=456""\@NLGET:\@NL {""outer""=>{""foo""=>""123"", ""bar""=>""456""}}\@NL```\@NL__New in 2.0:__ The new `RestClient::ParamsArray` class allows callers to\@NLprovide ordering even to structured parameters. This is useful for unusual\@NLcases where the server treats the order of parameters as significant or you\@NLwant to pass a particular key multiple times.\@NLMultiple fields with the same name using ParamsArray:\@NL```ruby\@NL>> RestClient.get('https://httpbin.org/get', params:\@NL RestClient::ParamsArray.new([[:foo, 1], [:foo, 2]]))\@NL# GET ""https://httpbin.org/get?foo=1&foo=2""\@NL```\@NLNested ParamsArray:\@NL```ruby\@NL>> RestClient.get('https://httpbin.org/get', params:\@NL {foo: RestClient::ParamsArray.new([[:a, 1], [:a, 2]])})\@NL# GET ""https://httpbin.org/get?foo[a]=1&foo[a]=2""\@NL```\@NL## Headers\@NLRequest headers can be set by passing a ruby hash containing keys and values\@NLrepresenting header names and values:\@NL```ruby\@NL# GET request with modified headers\@NLRestClient.get 'http://example.com/resource', {:Authorization => 'Bearer cT0febFoD5lxAlNAXHo6g'}\@NL# POST request with modified headers\@NLRestClient.post 'http://example.com/resource', {:foo => 'bar', :baz => 'qux'}, {:Authorization => 'Bearer cT0febFoD5lxAlNAXHo6g'}\@NL# DELETE request with modified headers\@NLRestClient.delete 'http://example.com/resource', {:Authorization => 'Bearer cT0febFoD5lxAlNAXHo6g'}\@NL```\@NL## Timeouts\@NLBy default the timeout for a request is 60 seconds. Timeouts for your request can\@NLbe adjusted by setting the `timeout:` to the number of seconds that you would like\@NLthe request to wait. Setting `timeout:` will override both `read_timeout:` and `open_timeout:`.\@NL```ruby\@NLRestClient::Request.execute(method: :get, url: 'http://example.com/resource',\@NL timeout: 120)\@NL```\@NLAdditionally, you can set `read_timeout:` and `open_timeout:` separately.\@NL```ruby\@NLRestClient::Request.execute(method: :get, url: 'http://example.com/resource',\@NL read_timeout: 120, open_timeout: 240)\@NL```\@NL## Cookies\@NLRequest and Response objects know about HTTP cookies, and will automatically\@NLextract and set headers for them as needed:\@NL```ruby\@NLresponse = RestClient.get 'http://example.com/action_which_sets_session_id'\@NLresponse.cookies\@NL# => {""_applicatioN_session_id"" => ""1234""}\@NLresponse2 = RestClient.post(\@NL 'http://localhost:3000/',\@NL {:param1 => ""foo""},\@NL {:cookies => {:session_id => ""1234""}}\@NL)\@NL# ...response body\@NL```\@NL### Full cookie jar support (new in 1.8)\@NLThe original cookie implementation was very naive and ignored most of the\@NLcookie RFC standards.\@NL__New in 1.8__: An HTTP::CookieJar of cookies\@NLResponse objects now carry a cookie_jar method that exposes an HTTP::CookieJar\@NLof cookies, which supports full standards compliant behavior.\@NL## SSL/TLS support\@NLVarious options are supported for configuring rest-client's TLS settings. By\@NLdefault, rest-client will verify certificates using the system's CA store on\@NLall platforms. (This is intended to be similar to how browsers behave.) You can\@NLspecify an :ssl_ca_file, :ssl_ca_path, or :ssl_cert_store to customize the\@NLcertificate authorities accepted.\@NL### SSL Client Certificates\@NL```ruby\@NLRestClient::Resource.new(\@NL 'https://example.com',\@NL :ssl_client_cert => OpenSSL::X509::Certificate.new(File.read(""cert.pem"")),\@NL :ssl_client_key => OpenSSL::PKey::RSA.new(File.read(""key.pem""), ""passphrase, if any""),\@NL :ssl_ca_file => ""ca_certificate.pem"",\@NL :verify_ssl => OpenSSL::SSL::VERIFY_PEER\@NL).get\@NL```\@NLSelf-signed certificates can be generated with the openssl command-line tool.\@NL## Hook\@NLRestClient.add_before_execution_proc add a Proc to be called before each execution.\@NLIt's handy if you need direct access to the HTTP request.\@NLExample:\@NL```ruby\@NL# Add oauth support using the oauth gem\@NLrequire 'oauth'\@NLaccess_token = ...\@NLRestClient.add_before_execution_proc do |req, params|\@NL access_token.sign! req\@NLend\@NLRestClient.get 'http://example.com'\@NL```\@NL## More\@NLNeed caching, more advanced logging or any ability provided by Rack middleware?\@NLHave a look at rest-client-components: http://github.com/crohr/rest-client-components\@NL## Credits\@NL| | |\@NL|-------------------------|---------------------------------------------------------|\@NL| **REST Client Team** | Andy Brody |\@NL| **Creator** | Adam Wiggins |\@NL| **Maintainers Emeriti** | Lawrence Leonard Gilbert, Matthew Manning, Julien Kirch |\@NL| **Major contributions** | Blake Mizerany, Julien Kirch |\@NLA great many generous folks have contributed features and patches.\@NLSee AUTHORS for the full list.\@NL## Legal\@NLReleased under the MIT License: http://www.opensource.org/licenses/mit-license.php\@NL""Master Shake"" photo (http://www.flickr.com/photos/solgrundy/924205581/) by\@NL""SolGrundy""; used under terms of the Creative Commons Attribution-ShareAlike 2.0\@NLGeneric license (http://creativecommons.org/licenses/by-sa/2.0/)\@NLCode for reading Windows root certificate store derived from work by Puppet;\@NLused under terms of the Apache License, Version 2.0.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/rest-client-2.0.2
roo,2.8.2,MIT,https://github.com/roo-rb/roo,"Copyright (c) 2008-2014 Thomas Preymesser, Ben Woosley\@NLCopyright (c) 2014-2017 Ben Woosley\@NLCopyright (c) 2015-2017 Oleksandr Simonov, Steven Daniels\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/roo-2.8.2
route_translator,4.4.1,MIT,http://github.com/enriclluelles/route_translator,"The MIT License (MIT)\@NLCopyright (c) 2007 Raul Murciano [http://raul.murciano.net], Domestika INTERNET S.L. [http://domestika.org], 2015 Enric Lluelles [http://enric.lluell.es], 2016 Geremia Taglialatela\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/route_translator-4.4.1
rubyzip,1.2.2,Simplified BSD,http://github.com/rubyzip/rubyzip,"# rubyzip\@NL[![Gem Version](https://badge.fury.io/rb/rubyzip.svg)](http://badge.fury.io/rb/rubyzip)\@NL[![Build Status](https://secure.travis-ci.org/rubyzip/rubyzip.svg)](http://travis-ci.org/rubyzip/rubyzip)\@NL[![Code Climate](https://codeclimate.com/github/rubyzip/rubyzip.svg)](https://codeclimate.com/github/rubyzip/rubyzip)\@NL[![Coverage Status](https://img.shields.io/coveralls/rubyzip/rubyzip.svg)](https://coveralls.io/r/rubyzip/rubyzip?branch=master)\@NLRubyzip is a ruby library for reading and writing zip files.\@NL## Important note\@NLThe Rubyzip interface has changed!!! No need to do `require ""zip/zip""` and `Zip` prefix in class names removed.\@NLIf you have issues with any third-party gems that require an old version of rubyzip, you can use this workaround:\@NL```ruby\@NLgem 'rubyzip', '>= 1.0.0' # will load new rubyzip version\@NLgem 'zip-zip' # will load compatibility for old rubyzip API.\@NL```\@NL## Requirements\@NL* Ruby 1.9.2 or greater\@NL## Installation\@NLRubyzip is available on RubyGems:\@NL```\@NLgem install rubyzip\@NL```\@NLOr in your Gemfile:\@NL```ruby\@NLgem 'rubyzip'\@NL```\@NL## Usage\@NL### Basic zip archive creation\@NL```ruby\@NLrequire 'rubygems'\@NLrequire 'zip'\@NLfolder = ""Users/me/Desktop/stuff_to_zip""\@NLinput_filenames = ['image.jpg', 'description.txt', 'stats.csv']\@NLzipfile_name = ""/Users/me/Desktop/archive.zip""\@NLZip::File.open(zipfile_name, Zip::File::CREATE) do |zipfile|\@NL input_filenames.each do |filename|\@NL # Two arguments:\@NL # - The name of the file as it will appear in the archive\@NL # - The original file, including the path to find it\@NL zipfile.add(filename, File.join(folder, filename))\@NL end\@NL zipfile.get_output_stream(""myFile"") { |f| f.write ""myFile contains just this"" }\@NLend\@NL```\@NL### Zipping a directory recursively\@NLCopy from [here](https://github.com/rubyzip/rubyzip/blob/05916bf89181e1955118fd3ea059f18acac28cc8/samples/example_recursive.rb )\@NL```ruby\@NLrequire 'zip'\@NL# This is a simple example which uses rubyzip to\@NL# recursively generate a zip file from the contents of\@NL# a specified directory. The directory itself is not\@NL# included in the archive, rather just its contents.\@NL#\@NL# Usage:\@NL# directory_to_zip = ""/tmp/input""\@NL# output_file = ""/tmp/out.zip""\@NL# zf = ZipFileGenerator.new(directory_to_zip, output_file)\@NL# zf.write()\@NLclass ZipFileGenerator\@NL # Initialize with the directory to zip and the location of the output archive.\@NL def initialize(input_dir, output_file)\@NL @input_dir = input_dir\@NL @output_file = output_file\@NL end\@NL # Zip the input directory.\@NL def write\@NL entries = Dir.entries(@input_dir) - %w(. ..)\@NL ::Zip::File.open(@output_file, ::Zip::File::CREATE) do |zipfile|\@NL write_entries entries, '', zipfile\@NL end\@NL end\@NL private\@NL # A helper method to make the recursion work.\@NL def write_entries(entries, path, zipfile)\@NL entries.each do |e|\@NL zipfile_path = path == '' ? e : File.join(path, e)\@NL disk_file_path = File.join(@input_dir, zipfile_path)\@NL puts ""Deflating #{disk_file_path}""\@NL if File.directory? disk_file_path\@NL recursively_deflate_directory(disk_file_path, zipfile, zipfile_path)\@NL else\@NL put_into_archive(disk_file_path, zipfile, zipfile_path)\@NL end\@NL end\@NL end\@NL def recursively_deflate_directory(disk_file_path, zipfile, zipfile_path)\@NL zipfile.mkdir zipfile_path\@NL subdir = Dir.entries(disk_file_path) - %w(. ..)\@NL write_entries subdir, zipfile_path, zipfile\@NL end\@NL def put_into_archive(disk_file_path, zipfile, zipfile_path)\@NL zipfile.get_output_stream(zipfile_path) do |f|\@NL f.write(File.open(disk_file_path, 'rb').read)\@NL end\@NL end\@NLend\@NL```\@NL### Save zip archive entries in sorted by name state\@NLTo save zip archives in sorted order like below, you need to set `::Zip.sort_entries` to `true`\@NL```\@NLVegetable/\@NLVegetable/bean\@NLVegetable/carrot\@NLVegetable/celery\@NLfruit/\@NLfruit/apple\@NLfruit/kiwi\@NLfruit/mango\@NLfruit/orange\@NL```\@NLAfter this, entries in the zip archive will be saved in ordered state.\@NL### Default permissions of zip archives\@NLOn Posix file systems the default file permissions applied to a new archive\@NLare (0666 - umask), which mimics the behavior of standard tools such as `touch`.\@NLOn Windows the default file permissions are set to 0644 as suggested by the\@NL[Ruby File documentation](http://ruby-doc.org/core-2.2.2/File.html).\@NLWhen modifying a zip archive the file permissions of the archive are preserved.\@NL### Reading a Zip file\@NL```ruby\@NLZip::File.open('foo.zip') do |zip_file|\@NL # Handle entries one by one\@NL zip_file.each do |entry|\@NL # Extract to file/directory/symlink\@NL puts ""Extracting #{entry.name}""\@NL entry.extract(dest_file)\@NL # Read into memory\@NL content = entry.get_input_stream.read\@NL end\@NL # Find specific entry\@NL entry = zip_file.glob('*.csv').first\@NL puts entry.get_input_stream.read\@NLend\@NL```\@NL#### Notice about ::Zip::InputStream\@NL`::Zip::InputStream` usable for fast reading zip file content because it not read Central directory.\@NLBut there is one exception when it is not working - General Purpose Flag Bit 3.\@NL> If bit 3 (0x08) of the general-purpose flags field is set, then the CRC-32 and file sizes are not known when the header is written. The fields in the local header are filled with zero, and the CRC-32 and size are appended in a 12-byte structure (optionally preceded by a 4-byte signature) immediately after the compressed data\@NLIf `::Zip::InputStream` finds such entry in the zip archive it will raise an exception.\@NL### Password Protection (Experimental)\@NLRubyzip supports reading/writing zip files with traditional zip encryption (a.k.a. ""ZipCrypto""). AES encryption is not yet supported. It can be used with buffer streams, e.g.:\@NL```ruby\@NLZip::OutputStream.write_buffer(::StringIO.new(''), Zip::TraditionalEncrypter.new('password')) do |out|\@NL out.put_next_entry(""my_file.txt"")\@NL out.write my_data\@NLend.string\@NL```\@NLThis is an experimental feature and the interface for encryption may change in future versions.\@NL## Known issues\@NL### Modify docx file with rubyzip\@NLUse `write_buffer` instead `open`. Thanks to @jondruse\@NL```ruby\@NLbuffer = Zip::OutputStream.write_buffer do |out|\@NL @zip_file.entries.each do |e|\@NL unless [DOCUMENT_FILE_PATH, RELS_FILE_PATH].include?(e.name)\@NL out.put_next_entry(e.name)\@NL out.write e.get_input_stream.read\@NL end\@NL end\@NL out.put_next_entry(DOCUMENT_FILE_PATH)\@NL out.write xml_doc.to_xml(:indent => 0).gsub(""\n"","""")\@NL out.put_next_entry(RELS_FILE_PATH)\@NL out.write rels.to_xml(:indent => 0).gsub(""\n"","""")\@NLend\@NLFile.open(new_path, ""wb"") {|f| f.write(buffer.string) }\@NL```\@NL## Configuration\@NLBy default, rubyzip will not overwrite files if they already exist inside of the extracted path. To change this behavior, you may specify a configuration option like so:\@NL```ruby\@NLZip.on_exists_proc = true\@NL```\@NLIf you're using rubyzip with rails, consider placing this snippet of code in an initializer file such as `config/initializers/rubyzip.rb`\@NLAdditionally, if you want to configure rubyzip to overwrite existing files while creating a .zip file, you can do so with the following:\@NL```ruby\@NLZip.continue_on_exists_proc = true\@NL```\@NLIf you want to store non-english names and want to open them on Windows(pre 7) you need to set this option:\@NL```ruby\@NLZip.unicode_names = true\@NL```\@NLSome zip files might have an invalid date format, which will raise a warning. You can hide this warning with the following setting:\@NL```ruby\@NLZip.warn_invalid_date = false\@NL```\@NLYou can set the default compression level like so:\@NL```ruby\@NLZip.default_compression = Zlib::DEFAULT_COMPRESSION\@NL```\@NLIt defaults to `Zlib::DEFAULT_COMPRESSION`. Possible values are `Zlib::BEST_COMPRESSION`, `Zlib::DEFAULT_COMPRESSION` and `Zlib::NO_COMPRESSION`\@NLSometimes file names inside zip contain non-ASCII characters. If you can assume which encoding was used for such names and want to be able to find such entries using `find_entry` then you can force assumed encoding like so:\@NL```ruby\@NLZip.force_entry_names_encoding = 'UTF-8'\@NL```\@NLAllowed encoding names are the same as accepted by `String#force_encoding`\@NLYou can set multiple settings at the same time by using a block:\@NL```ruby\@NL Zip.setup do |c|\@NL c.on_exists_proc = true\@NL c.continue_on_exists_proc = true\@NL c.unicode_names = true\@NL c.default_compression = Zlib::BEST_COMPRESSION\@NL end\@NL```\@NLBy default, Zip64 support is disabled for writing. To enable it do this:\@NL```ruby\@NLZip.write_zip64_support = true\@NL```\@NL_NOTE_: If you will enable Zip64 writing then you will need zip extractor with Zip64 support to extract archive.\@NL## Developing\@NLTo run the test you need to do this:\@NL```\@NLbundle install\@NLrake\@NL```\@NL## Website and Project Home\@NLhttp://github.com/rubyzip/rubyzip\@NLhttp://rdoc.info/github/rubyzip/rubyzip/master/frames\@NL## Authors\@NLAlexander Simonov ( alex at simonov.me)\@NLAlan Harper ( alan at aussiegeek.net)\@NLThomas Sondergaard (thomas at sondergaard.cc)\@NLTechnorama Ltd. (oss-ruby-zip at technorama.net)\@NLextra-field support contributed by Tatsuki Sugiura (sugi at nemui.org)\@NL## License\@NLRubyzip is distributed under the same license as ruby. See\@NLhttp://www.ruby-lang.org/en/LICENSE.txt",/Users/scott/.rvm/gems/ruby-2.4.6/gems/rubyzip-1.2.2
sass,3.4.25,MIT,http://sass-lang.com/,"Copyright (c) 2006-2016 Hampton Catlin, Natalie Weizenbaum, and Chris Eppstein\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NLCopyright (c) 2013 Thibaud Guillaume-Gentil\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/sass-3.4.25
sass-rails,5.0.7,MIT,https://github.com/rails/sass-rails,"Copyright (c) 2011 Christopher Eppstein\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/sass-rails-5.0.7
sassc,2.0.1,MIT,https://github.com/sass/sassc-ruby,"\@NLCopyright (C) 2012-2016 by the Sass Open Source Foundation\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of\@NLthis software and associated documentation files (the ""Software""), to deal in\@NLthe Software without restriction, including without limitation the rights to\@NLuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\@NLof the Software, and to permit persons to whom the Software is furnished to do\@NLso, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all\@NLcopies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\@NLSOFTWARE.\@NLThe following files in the spec were taken from the original Ruby Sass project which\@NLis copyright Hampton Catlin, Nathan Weizenbaum, and Chris Eppstein and under\@NLthe same license.\@NLCopyright (c) Ryan Boland & Contributors\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL\@NLCopyright (C) 2012 by Hampton Catlin\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of\@NLthis software and associated documentation files (the ""Software""), to deal in\@NLthe Software without restriction, including without limitation the rights to\@NLuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\@NLof the Software, and to permit persons to whom the Software is furnished to do\@NLso, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all\@NLcopies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\@NLSOFTWARE.\@NLThe following files in the spec were taken from the original Ruby Sass project which\@NLis copyright Hampton Catlin, Nathan Weizenbaum, and Chris Eppstein and under\@NLthe same license.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/sassc-2.0.1
sdoc,1.0.0,MIT,https://github.com/zzak/sdoc,"Copyright (c) 2014 Vladimir Kolesnikov, and Nathan Broadbent\@NLCopyright (c) 2014-2017 Zachary Scott\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NLDarkfish RDoc HTML Generator\@NLCopyright (c) 2007, 2008, Michael Granger. All rights reserved.\@NLRedistribution and use in source and binary forms, with or without\@NLmodification, are permitted provided that the following conditions are met:\@NL* Redistributions of source code must retain the above copyright notice,\@NL this list of conditions and the following disclaimer.\@NL* Redistributions in binary form must reproduce the above copyright notice,\@NL this list of conditions and the following disclaimer in the documentation\@NL and/or other materials provided with the distribution.\@NL* Neither the name of the author/s, nor the names of the project's\@NL contributors may be used to endorse or promote products derived from this\@NL software without specific prior written permission.\@NLTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ""AS IS""\@NLAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\@NLIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\@NLDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE\@NLFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\@NLDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\@NLSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\@NLCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\@NLOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\@NLOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\@NLRDoc is copyrighted free software.\@NLYou can redistribute it and/or modify it under either the terms of the GPL\@NLversion 2 (see the file GPL), or the conditions below:\@NL 1. You may make and give away verbatim copies of the source form of the\@NL software without restriction, provided that you duplicate all of the\@NL original copyright notices and associated disclaimers.\@NL 2. You may modify your copy of the software in any way, provided that\@NL you do at least ONE of the following:\@NL a) place your modifications in the Public Domain or otherwise\@NL make them Freely Available, such as by posting said\@NL modifications to Usenet or an equivalent medium, or by allowing\@NL the author to include your modifications in the software.\@NL b) use the modified software only within your corporation or\@NL organization.\@NL c) give non-standard binaries non-standard names, with\@NL instructions on where to get the original software distribution.\@NL d) make other distribution arrangements with the author.\@NL 3. You may distribute the software in object code or binary form,\@NL provided that you do at least ONE of the following:\@NL a) distribute the binaries and library files of the software,\@NL together with instructions (in the manual page or equivalent)\@NL on where to get the original distribution.\@NL b) accompany the distribution with the machine-readable source of\@NL the software.\@NL c) give non-standard binaries non-standard names, with\@NL instructions on where to get the original software distribution.\@NL d) make other distribution arrangements with the author.\@NL 4. You may modify and include the part of the software into any other\@NL software (possibly commercial). But some files in the distribution\@NL are not written by the author, so that they are not under these terms.\@NL For the list of those files and their copying conditions, see the\@NL file LEGAL.\@NL 5. The scripts and library files supplied as input to or produced as\@NL output from the software do not automatically fall under the\@NL copyright of the software, but belong to whomever generated them,\@NL and may be sold commercially, and may be aggregated with this\@NL software.\@NL 6. THIS SOFTWARE IS PROVIDED ""AS IS"" AND WITHOUT ANY EXPRESS OR\@NL IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED\@NL WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\@NL PURPOSE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/sdoc-1.0.0
selectize-rails,0.12.6,"MIT, Apache License v2.0",https://github.com/manuelvanrijn/selectize-rails,"Copyright (c) 2013 Manuel van Rijn\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\@NL# selectize-rails [![Gem Version](https://badge.fury.io/rb/selectize-rails.png)](http://badge.fury.io/rb/selectize-rails)\@NLselectize-rails provides the [selectize.js](https://selectize.github.io/selectize.js/)\@NLplugin as a Rails engine to use it within the asset pipeline.\@NL## Installation\@NLAdd this to your Gemfile:\@NL```ruby\@NLgem ""selectize-rails""\@NL```\@NLand run `bundle install`.\@NL## Usage\@NLIn your `application.js`, include the following:\@NL```js\@NL//= require selectize\@NL```\@NLIn your `application.css`, include the following:\@NL```css\@NL *= require selectize\@NL *= require selectize.default\@NL```\@NLOr if you like, you could use import instead\@NL```sass\@NL@import 'selectize'\@NL@import 'selectize.bootstrap3'\@NL```\@NL### Themes\@NLTo include additional theme's you can replace the `selectize.default` for one of the [theme files](https://github.com/selectize/selectize.js/tree/master/dist/css)\@NL## Examples\@NLSee the [demo page](http://selectize.github.io/selectize.js/) for examples how to use the plugin\@NL## Changes\@NL| Version | Notes |\@NL| ----------:| ----------------------------------------------------------- |\@NL| 0.12.5 | Update to v0.12.5 of selectize.js |\@NL| 0.12.4.1 | Moved css files to scss to be able to use `@import` |\@NL| 0.12.4 | Update to v0.12.4 of selectize.js |\@NL| 0.12.3 | Update to v0.12.3 of selectize.js |\@NL| 0.12.2 | Update to v0.12.2 of selectize.js |\@NL| 0.12.1 | Update to v0.12.1 of selectize.js |\@NL| 0.12.0 | Update to v0.12.0 of selectize.js |\@NL| 0.11.2 | Update to v0.11.2 of selectize.js |\@NL| 0.11.0 | Update to v0.11.0 of selectize.js |\@NL[older](CHANGELOG.md)\@NL## License\@NL* The [selectize.js](http://selectize.github.io/selectize.js/) plugin is licensed under the\@NL[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)\@NL* The [selectize-rails](https://github.com/manuelvanrijn/selectize-rails) project is\@NL licensed under the [MIT License](http://opensource.org/licenses/mit-license.html)\@NL## Contributing\@NL1. Fork it\@NL2. Create your feature branch (`git checkout -b my-new-feature`)\@NL3. Commit your changes (`git commit -am 'Add some feature'`)\@NL4. Push to the branch (`git push origin my-new-feature`)\@NL5. Create new Pull Request",/Users/scott/.rvm/gems/ruby-2.4.6/gems/selectize-rails-0.12.6
simple_form,3.5.1,MIT,https://github.com/plataformatec/simple_form,"Copyright (c) 2009-2016 Plataformatec http://plataformatec.com.br/\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/simple_form-3.5.1
slideout.js,0.1.12,MIT,https://github.com/mango/slideout,"The MIT License (MIT)\@NLCopyright (c) 2015 Mango\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all\@NLcopies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\@NLSOFTWARE.",/Users/scott/Workspace/Helpy/helpy/vendor/assets/components/slideout.js
sprockets,3.7.2,MIT,https://github.com/rails/sprockets,"Copyright (c) 2014 Sam Stephenson\@NLCopyright (c) 2014 Joshua Peek\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/sprockets-3.7.2
sprockets-rails,3.2.1,MIT,https://github.com/rails/sprockets-rails,"Copyright (c) 2014-2016 Joshua Peek\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/sprockets-rails-3.2.1
staccato,0.5.1,MIT,https://github.com/tpitale/staccato,"Copyright (c) 2013 Tony Pitale\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/staccato-0.5.1
sucker_punch,2.1.1,MIT,https://github.com/brandonhilkert/sucker_punch,"Copyright (c) 2013 Brandon Hilkert\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/sucker_punch-2.1.1
summernote-rails,0.8.10.0,MIT,https://github.com/summernote/summernote-rails,"Copyright (c) 2013 Hyo Seong Choi\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/summernote-rails-0.8.10.0
themes_on_rails,0.4.0,MIT,https://github.com/chamnap/themes_on_rails,"Copyright 2013 Chamnap Chhorn\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/themes_on_rails-0.4.0
thor,0.20.3,MIT,http://whatisthor.com/,"Copyright (c) 2008 Yehuda Katz, Eric Hodel, et al.\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/thor-0.20.3
thread_safe,0.3.6,Apache 2.0,https://github.com/ruby-concurrency/thread_safe,"",/Users/scott/.rvm/gems/ruby-2.4.6/gems/thread_safe-0.3.6
tilt,2.0.9,MIT,http://github.com/rtomayko/tilt/,"Copyright (c) 2010-2016 Ryan Tomayko <http://tomayko.com/about>\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to\@NLdeal in the Software without restriction, including without limitation the\@NLrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\@NLsell copies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\@NLTHE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\@NLIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\@NLCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/tilt-2.0.9
timecop,0.9.1,MIT,https://github.com/travisjeffery/timecop,"(The MIT License)\@NLCopyright (c) 2012 â Travis Jeffery, John Trupiano\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL'Software'), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\@NLIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\@NLCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\@NLTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\@NLSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/timecop-0.9.1
timers,4.0.4,MIT,https://github.com/celluloid/timers,"Copyright (c) 2012-14 The Celluloid Timers Developers: given in the file\@NLAUTHORS.md at https://github.com/celluloid/timers/blob/master/AUTHORS.md\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/timers-4.0.4
turbolinks,2.5.4,MIT,https://github.com/rails/turbolinks/,"Copyright 2012-2014 David Heinemeier Hansson\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/turbolinks-2.5.4
twitter-bootstrap-rails,3.2.2,MIT,https://github.com/seyhunak/twitter-bootstrap-rails,"# Twitter Bootstrap for Rails 4, 3.x Asset Pipeline\@NLBootstrap is a toolkit from Twitter designed to kickstart development of webapps and sites. It includes base CSS and HTML for typography, forms, buttons, tables, grids, navigation, and more.\@NLtwitter-bootstrap-rails project integrates Bootstrap CSS toolkit for Rails Asset Pipeline (Rails 4, 3.x versions are supported)\@NL[![Gem Version](https://badge.fury.io/rb/twitter-bootstrap-rails.svg)](http://badge.fury.io/rb/twitter-bootstrap-rails)\@NL[![Dependency Status](https://gemnasium.com/seyhunak/twitter-bootstrap-rails.svg?travis)](https://gemnasium.com/seyhunak/twitter-bootstrap-rails?travis)\@NL[![Code Climate](https://codeclimate.com/github/seyhunak/twitter-bootstrap-rails/badges/gpa.svg)](https://codeclimate.com/github/seyhunak/twitter-bootstrap-rails?branch=master)\@NL[![Coverage Status](https://coveralls.io/repos/seyhunak/twitter-bootstrap-rails/badge.png?branch=master)](https://coveralls.io/repos/seyhunak/twitter-bootstrap-rails/badge.png?branch=master)\@NL[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/seyhunak/twitter-bootstrap-rails/trend.png)](https://bitdeli.com/free ""Bitdeli Badge"")\@NL## Screencasts\@NL#### Installing twitter-bootstrap-rails, generators, usage and more\@NL<img width=""180"" height=""35"" src=""http://oi49.tinypic.com/s5wn05.jpg""></img>\@NLScreencasts provided by <a href=""http://railscasts.com"">Railscasts</a> (Ryan Bates)\@NL[Twitter Bootstrap Basics](http://railscasts.com/episodes/328-twitter-bootstrap-basics ""Twitter Bootstrap Basics"")\@NLin this episode you will learn how to include Bootstrap into Rails application with the twitter-bootstrap-rails gem.\@NL[More on Twitter Bootstrap](http://railscasts.com/episodes/329-more-on-twitter-bootstrap ""More on Twitter Bootstrap"")\@NLin this episode continues on the Bootstrap project showing how to display flash messages, add form validations with SimpleForm, customize layout with variables, and switch to using Sass.\@NL(Note: This episode is pro episode)\@NL## Installing the Gem\@NLThe [Twitter Bootstrap Rails gem](http://rubygems.org/gems/twitter-bootstrap-rails) can provide the Bootstrap stylesheets in two ways.\@NLThe plain CSS way is how Bootstrap is provided on [the official website](http://twbs.github.io/bootstrap/).\@NLThe [Less](http://lesscss.org/) way provides more customization options, like changing theme colors, and provides useful Less mixins for your code, but requires the\@NLLess gem and the Ruby Racer Javascript runtime (not available on Microsoft Windows).\@NL### Installing the Less stylesheets\@NLTo use Less stylesheets, you'll need the [less-rails gem](http://rubygems.org/gems/less-rails), and one of [JavaScript runtimes supported by CommonJS](https://github.com/cowboyd/commonjs.rb#supported-runtimes).\@NLInclude these lines in the Gemfile to install the gems from [RubyGems.org](http://rubygems.org):\@NL```ruby\@NLgem ""therubyracer""\@NLgem ""less-rails"" #Sprockets (what Rails 3.1 uses for its asset pipeline) supports LESS\@NLgem ""twitter-bootstrap-rails""\@NL```\@NLor you can install from latest build;\@NL```ruby\@NLgem 'twitter-bootstrap-rails', :git => 'git://github.com/seyhunak/twitter-bootstrap-rails.git'\@NL```\@NLThen run `bundle install` from the command line:\@NL bundle install\@NLThen run the bootstrap generator to add Bootstrap includes into your assets:\@NL rails generate bootstrap:install less\@NLIf you need to skip coffeescript replacement into app generators, use:\@NL rails generate bootstrap:install --no-coffeescript\@NL### Installing the CSS stylesheets\@NLIf you don't need to customize the stylesheets using Less, the only gem you need is the `twitter-bootstrap-rails` gem:\@NL```ruby\@NLgem ""twitter-bootstrap-rails""\@NL```\@NLAfter running `bundle install`, run the generator:\@NL rails generate bootstrap:install static\@NL## Generating layouts and views\@NLYou can run following generators to get started with Bootstrap quickly.\@NLLayout (generates Bootstrap compatible layout) - (Haml and Slim supported)\@NLUsage:\@NL rails g bootstrap:layout [LAYOUT_NAME]\@NLThemed (generates Bootstrap compatible scaffold views.) - (Haml and Slim supported)\@NLUsage:\@NL rails g bootstrap:themed [RESOURCE_NAME]\@NLExample:\@NL rails g scaffold Post title:string description:text\@NL rake db:migrate\@NL rails g bootstrap:themed Posts\@NLNotice the plural usage of the resource to generate bootstrap:themed.\@NL## Using with Less\@NLBootstrap was built with Preboot, an open-source pack of mixins and variables to be used in conjunction with Less, a CSS preprocessor for faster and easier web development.\@NL## Using stylesheets with Less\@NLYou have to require Bootstrap LESS (bootstrap_and_overrides.css.less) in your application.css\@NL```css\@NL/*\@NL *= require bootstrap_and_overrides\@NL */\@NL/* Your stylesheets goes here... */\@NL```\@NLTo use individual components from bootstrap, your bootstrap_and_overrides.less could look like this:\@NL```css\@NL// Core variables and mixins\@NL@import ""twitter/bootstrap/variables.less"";\@NL@import ""twitter/bootstrap/mixins.less"";\@NL// Reset and dependencies\@NL@import ""twitter/bootstrap/normalize.less"";\@NL@import ""twitter/bootstrap/print.less"";\@NL//@import ""twitter/bootstrap/glyphicons.less""; // Excludes glyphicons\@NL// Core CSS\@NL@import ""twitter/bootstrap/scaffolding.less"";\@NL@import ""twitter/bootstrap/type.less"";\@NL@import ""twitter/bootstrap/code.less"";\@NL@import ""twitter/bootstrap/grid.less"";\@NL@import ""twitter/bootstrap/tables.less"";\@NL@import ""twitter/bootstrap/forms.less"";\@NL@import ""twitter/bootstrap/buttons.less"";\@NL// Components\@NL@import ""twitter/bootstrap/component-animations.less"";\@NL@import ""twitter/bootstrap/dropdowns.less"";\@NL@import ""twitter/bootstrap/button-groups.less"";\@NL@import ""twitter/bootstrap/input-groups.less"";\@NL@import ""twitter/bootstrap/navs.less"";\@NL@import ""twitter/bootstrap/navbar.less"";\@NL@import ""twitter/bootstrap/breadcrumbs.less"";\@NL@import ""twitter/bootstrap/pagination.less"";\@NL@import ""twitter/bootstrap/pager.less"";\@NL@import ""twitter/bootstrap/labels.less"";\@NL@import ""twitter/bootstrap/badges.less"";\@NL@import ""twitter/bootstrap/jumbotron.less"";\@NL@import ""twitter/bootstrap/thumbnails.less"";\@NL@import ""twitter/bootstrap/alerts.less"";\@NL@import ""twitter/bootstrap/progress-bars.less"";\@NL@import ""twitter/bootstrap/media.less"";\@NL@import ""twitter/bootstrap/list-group.less"";\@NL@import ""twitter/bootstrap/panels.less"";\@NL@import ""twitter/bootstrap/responsive-embed.less"";\@NL@import ""twitter/bootstrap/wells.less"";\@NL@import ""twitter/bootstrap/close.less"";\@NL// Components w/ JavaScript\@NL@import ""twitter/bootstrap/modals.less"";\@NL@import ""twitter/bootstrap/tooltip.less"";\@NL@import ""twitter/bootstrap/popovers.less"";\@NL@import ""twitter/bootstrap/carousel.less"";\@NL// Utility classes\@NL@import ""twitter/bootstrap/utilities.less"";\@NL@import ""twitter/bootstrap/responsive-utilities.less"";\@NL```\@NLIf you'd like to alter Bootstrap's own variables, or define your LESS\@NLstyles inheriting Bootstrap's mixins, you can do so inside bootstrap_and_overrides.css.less:\@NL```css\@NL@link-color: #ff0000;\@NL```\@NL### SASS\@NLIf you are using SASS to compile your application.css (e.g. your manifest file is application.css.sass or application.css.scss) you may get this:\@NL```\@NLInvalid CSS after ""*"": expected ""{"", was ""= require twitt...""\@NL(in app/assets/stylesheets/application.css)\@NL(sass)\@NL```\@NLIf this is the case, you **must** use @import instead of `*=` in your manifest file, or don't compile your manifest with SASS.\@NL### Icons\@NLBy default, this gem overrides standard Bootstraps's Glyphicons with Font Awesome (http://fortawesome.github.com/Font-Awesome/).\@NLThis should appear inside _bootstrap_and_overrides *(based on you twitter-bootstrap-rails version)*\@NL**From 2.2.7**\@NL```css\@NL// Font Awesome\@NL@fontAwesomeEotPath: asset-url(""fontawesome-webfont.eot"");\@NL@fontAwesomeEotPath_iefix: asset-url(""fontawesome-webfont.eot?#iefix"");\@NL@fontAwesomeWoffPath: asset-url(""fontawesome-webfont.woff"");\@NL@fontAwesomeTtfPath: asset-url(""fontawesome-webfont.ttf"");\@NL@fontAwesomeSvgPath: asset-url(""fontawesome-webfont.svg#fontawesomeregular"");\@NL@import ""fontawesome/font-awesome"";\@NL```\@NL**Before 2.2.7**\@NL```css\@NL// Font Awesome\@NL@fontAwesomeEotPath: ""/assets/fontawesome-webfont.eot"";\@NL@fontAwesomeEotPath_iefix: ""/assets/fontawesome-webfont.eot?#iefix"";\@NL@fontAwesomeWoffPath: ""/assets/fontawesome-webfont.woff"";\@NL@fontAwesomeTtfPath: ""/assets/fontawesome-webfont.ttf"";\@NL@fontAwesomeSvgPath: ""/assets/fontawesome-webfont.svg#fontawesomeregular"";\@NL@import ""fontawesome"";\@NL```\@NLIf you would like to restore the default Glyphicons, inside the _bootstrap_and_overrides.css.less_ remove the FontAwesome declaration and uncomment the line:\@NL```less\@NL// Font Awesome\@NL// @fontAwesomeEotPath: asset-url(""fontawesome-webfont.eot"");\@NL// @fontAwesomeEotPath_iefix: asset-url(""fontawesome-webfont.eot?#iefix"");\@NL// @fontAwesomeWoffPath: asset-url(""fontawesome-webfont.woff"");\@NL// @fontAwesomeTtfPath: asset-url(""fontawesome-webfont.ttf"");\@NL// @fontAwesomeSvgPath: asset-url(""fontawesome-webfont.svg#fontawesomeregular"");\@NL// @import ""fontawesome/font-awesome"";\@NL// Glyphicons\@NL@import ""twitter/bootstrap/glyphicons.less"";\@NL```\@NL## Using JavaScript\@NLRequire Bootstrap JS (bootstrap.js) in your application.js\@NL```js\@NL//= require twitter/bootstrap\@NL$(function(){\@NL /* Your JavaScript goes here... */\@NL});\@NL```\@NLIf you want to customize what is loaded, your application.js would look something like this\@NL```js\@NL#= require jquery\@NL#= require jquery_ujs\@NL#= require twitter/bootstrap/transition\@NL#= require twitter/bootstrap/alert\@NL#= require twitter/bootstrap/modal\@NL#= require twitter/bootstrap/button\@NL#= require twitter/bootstrap/collapse\@NL```\@NL...and so on for each bootstrap js component.\@NL## Using CoffeeScript (optionally)\@NLUsing Bootstrap with the CoffeeScript is easy.\@NLtwitter-bootstrap-rails generates a ""bootstrap.js.coffee"" file for you\@NLto /app/assets/javascripts/ folder.\@NL```coffee\@NLjQuery ->\@NL $(""a[rel~=popover], .has-popover"").popover()\@NL $(""a[rel~=tooltip], .has-tooltip"").tooltip()\@NL```\@NL## Using Helpers\@NL### Modal Helper\@NLYou can create modals easily using the following example. The header, body, and footer all accept content_tag or plain html.\@NLThe href of the button to launch the modal must match the id of the modal dialog. It also accepts a block for the header, body, and footer. If you are getting a complaint about the modal_helper unable to merge a hash it is due to this.\@NL````\@NL<%= content_tag :a, ""Modal"", href: ""#modal"", class: 'btn', data: {toggle: 'modal'} %>\@NL<%= modal_dialog id: ""modal"",\@NL header: { show_close: true, dismiss: 'modal', title: 'Modal header' },\@NL body: { content: 'This is the body' },\@NL footer: { content: content_tag(:button, 'Save', class: 'btn') } %>\@NL````\@NL### Navbar Helper\@NLIt should let you write things like:\@NL````\@NL<%= nav_bar fixed: :top, brand: ""Fashionable Clicheizr 2.0"", responsive: true do %>\@NL <%= menu_group do %>\@NL <%= menu_item ""Home"", root_path %>\@NL <%= menu_divider %>\@NL <%= drop_down ""Products"" do %>\@NL <%= menu_item ""Things you can't afford"", expensive_products_path %>\@NL <%= menu_item ""Things that won't suit you anyway"", harem_pants_path %>\@NL <%= menu_item ""Things you're not even cool enough to buy anyway"", hipster_products_path %>\@NL <% if current_user.lives_in_hackney? %>\@NL <%= menu_item ""Bikes"", fixed_wheel_bikes_path %>\@NL <% end %>\@NL <% end %>\@NL <%= menu_item ""About Us"", about_us_path %>\@NL <%= menu_item ""Contact"", contact_path %>\@NL <% end %>\@NL <%= menu_group pull: :right do %>\@NL <% if current_user %>\@NL <%= menu_item ""Log Out"", log_out_path %>\@NL <% else %>\@NL <%= form_for @user, url: session_path(:user), html => {class: ""navbar-form pull-right""} do |f| -%>\@NL <p><%= f.text_field :email %></p>\@NL <p><%= f.password_field :password %></p>\@NL <p><%= f.submit ""Sign in"" %></p>\@NL <% end -%>\@NL <% end %>\@NL <% end %>\@NL<% end %>\@NL````\@NL### Navbar scaffolding\@NLIn your view file (most likely application.html.erb) to get a basic navbar set up you need to do this:\@NL````\@NL<%= nav_bar %>\@NL````\@NLWhich will render:\@NL <div class=""navbar"">\@NL <div class=""container"">\@NL </div>\@NL </div>\@NL### Fixed navbar\@NLIf you want the navbar to stick to the top of the screen, pass in the option like this:\@NL````\@NL<%= nav_bar fixed: :top %>\@NL````\@NLTo render:\@NL <div class=""navbar navbar-fixed-top"">\@NL <div class=""container"">\@NL </div>\@NL </div>\@NL### Static navbar\@NLIf you want a full-width navbar that scrolls away with the page, pass in the option like this:\@NL````\@NL<%= nav_bar static: :top %>\@NL````\@NLTo render:\@NL <div class=""navbar navbar-static-top"">\@NL <div class=""container"">\@NL </div>\@NL </div>\@NL### Brand name\@NLAdd the name of your site on the left hand edge of the navbar. By default, it will link to root_url. Passing a brand_link option will set the url to whatever you want.\@NL````\@NL<%= nav_bar brand: ""We're sooo web 2.0alizr"", brand_link: account_dashboard_path %>\@NL````\@NLWhich will render:\@NL <div class=""navbar"">\@NL <div class=""container"">\@NL <a class=""navbar-brand"" href=""/accounts/dashboard"">\@NL We're sooo web 2.0alizr\@NL </a>\@NL </div>\@NL </div>\@NL### Optional responsive variation\@NLIf you want the responsive version of the navbar to work (One that shrinks down on mobile devices etc.), you need to pass this option:\@NL````\@NL<%= nav_bar responsive: true %>\@NL````\@NLWhich renders the html quite differently:\@NL <div class=""navbar"">\@NL <div class=""container"">\@NL <!-- .navbar-toggle is used as the toggle for collapsed navbar content -->\@NL <button type=""button"" class=""navbar-toggle"" data-toggle=""collapse"" data-target="".navbar-collapse"">\@NL <span class=""icon-bar""></span>\@NL <span class=""icon-bar""></span>\@NL <span class=""icon-bar""></span>\@NL </button>\@NL <!-- Everything in here gets hidden at 940px or less -->\@NL <div class=""navbar-collapse collapse"">\@NL <!-- menu items gets rendered here instead -->\@NL </div>\@NL </div>\@NL </div>\@NL### Nav links\@NLThis is the 'meat' of the code where you define your menu items.\@NLYou can group menu items in theoretical boxes which you can apply logic to - e.g. show different collections for logged in users/logged out users, or simply right align a group.\@NLThe active menu item will be inferred from the link for now.\@NLThe important methods here are menu_group and menu_item.\@NLmenu_group only takes one argument - :pull - this moves the group left or right when passed :left or :right.\@NLmenu_item generates a link wrapped in an li tag. It takes two arguments and an options hash. The first argument is the name (the text that will appear in the menu), and the path (which defaults to ""#"" if left blank). The rest of the options are passed straight through to the link_to helper, so that you can add classes, ids, methods or data tags etc.\@NL````\@NL<%= nav_bar fixed: :top, brand: ""Ninety Ten"" do %>\@NL <%= menu_group do %>\@NL <%= menu_item ""Home"", root_path %>\@NL <%= menu_item ""About Us"", about_us_path %>\@NL <%= menu_item ""Contact"", contact_path %>\@NL <% end %>\@NL <% if current_user %>\@NL <%= menu_item ""Log Out"", log_out_path %>\@NL <% else %>\@NL <%= menu_group pull: :right do %>\@NL <%= menu_item ""Sign Up"", registration_path %>\@NL <%= form_for @user, url: session_path(:user) do |f| -%>\@NL <p><%= f.text_field :email %></p>\@NL <p><%= f.password_field :password %></p>\@NL <p><%= f.submit ""Sign in"" %></p>\@NL <% end -%>\@NL <% end %>\@NL <% end %>\@NL<% end %>\@NL````\@NL### Dropdown menus\@NLFor multi-level list options, where it makes logical sense to group menu items, or simply to save space if you have a lot of pages, you can group menu items into drop down lists like this:\@NL````\@NL<%= nav_bar do %>\@NL <%= menu_item ""Home"", root_path %>\@NL <%= drop_down ""Products"" do %>\@NL <%= menu_item ""Latest"", latest_products_path %>\@NL <%= menu_item ""Top Sellers"", popular_products_path %>\@NL <%= drop_down_divider %>\@NL <%= menu_item ""Discount Items"", discounted_products_path %>\@NL <% end %>\@NL <%= menu_item ""About Us"", about_us_path %>\@NL <%= menu_item ""Contact"", contact_path %>\@NL<% end %>\@NL````\@NL### Dividers\@NLDividers are just vertical bars that visually separate logically disparate groups of menu items\@NL````\@NL<%= nav_bar fixed: :bottom do %>\@NL <%= menu_item ""Home"", root_path %>\@NL <%= menu_item ""About Us"", about_us_path %>\@NL <%= menu_item ""Contact"", contact_path %>\@NL <%= menu_divider %>\@NL <%= menu_item ""Edit Profile"", edit_user_path(current_user) %>\@NL <%= menu_item ""Account Settings"", edit_user_account_path(current_user, @account) %>\@NL <%= menu_item ""Log Out"", log_out_path %>\@NL<% end %>\@NL````\@NL### Forms in navbar\@NLAt the moment - this is just a how to...\@NLYou need to add this class to the form itself (Different form builders do this in different ways - please check out the relevant docs)\@NL````css\@NL.navbar-form\@NL````\@NLTo pull the form left or right, add either of these classes:\@NL````css\@NL.pull-left\@NL.pull-right\@NL````\@NLIf you want the Bootstrap search box (I think it just rounds the corners), use:\@NL````css\@NL.navbar-search\@NL````\@NLInstead of:\@NL````css\@NL.navbar-form\@NL````\@NLTo change the size of the form fields, use .span2 (or however many span widths you want) to the input itself.\@NL### Component alignment\@NLYou can shift things to the left or the right across the nav bar. It's easiest to do this on grouped menu items:\@NL````\@NL<%= nav_bar fixed: :bottom do %>\@NL <% menu_group do %>\@NL <%= menu_item ""Home"", root_path %>\@NL <%= menu_item ""About Us"", about_us_path %>\@NL <%= menu_item ""Contact"", contact_path %>\@NL <% end %>\@NL <% menu_group pull: :right do %>\@NL <%= menu_item ""Edit Profile"", edit_user_path(current_user) %>\@NL <%= menu_item ""Account Settings"", edit_user_account_path(current_user, @account) %>\@NL <%= menu_item ""Log Out"", log_out_path %>\@NL <% end %>\@NL<% end %>\@NL````\@NL### Text in the navbar\@NLIf you want to put regular plain text in the navbar anywhere, you do it like this:\@NL````\@NL<%= nav_bar brand: ""Apple"" do %>\@NL <%= menu_text ""We make shiny things"" %>\@NL <%= menu_item ""Home"", root_path %>\@NL <%= menu_item ""About Us"", about_us_path %>\@NL<% end %>\@NL````\@NLIt also takes the :pull option to drag it to the left or right.\@NL### Flash helper\@NLAdd flash helper `<%= bootstrap_flash %>` to your layout (built-in with layout generator).\@NLYou can pass the attributes you want to add to the main div returned: `<%= bootstrap_flash(class: ""extra-class"", id: ""your-id"") %>`\@NL### Breadcrumbs Helpers\@NL*Notice* If your application is using [breadcrumbs-on-rails](https://github.com/weppos/breadcrumbs_on_rails) you will have a namespace collision with the add_breadcrumb method. For this reason if breadcrumbs-on-rails is detected in `Gemfile` gem methods will be accessible using `boostrap` prefix, i.e. `render_bootstrap_breadcrumbs` and `add_bootstrap_breadcrumb`\@NLUsually you do not need to use these breadcrumb gems since this gem provides the same functionality out of the box without the additional dependency.\@NLHowever if there are some `breadcrumbs-on-rails` features you need to keep you can still use them and use this gem with the prefixes explained above.\@NLAdd breadcrumbs helper `<%= render_breadcrumbs %>` to your layout.\@NLYou can also specify a divider for it like this: `<%= render_breadcrumbs('>') %>` (default divider is `/`).\@NLIf you do not need dividers at all you can use `nil`: `<%= render_breadcrumbs(nil) %>`.\@NLFull example:\@NL```ruby\@NLrender_breadcrumbs("" / "", { class: '', item_class: '', divider_class: '', active_class: 'active' })\@NL```\@NL```ruby\@NLclass ApplicationController\@NL add_breadcrumb :root # 'root_path' will be used as url\@NLend\@NL```\@NL```ruby\@NLclass ExamplesController < ApplicationController\@NL add_breadcrumb :index, :examples_path\@NL def edit\@NL @example = Example.find params[:id]\@NL add_breadcrumb @example # @example.to_s as name, example_path(@example) as url\@NL add_breadcrumb :edit, edit_example_path(@example)\@NL end\@NLend\@NL```\@NLAll symbolic names translated with I18n. See [I18n Internationalization Support](#i18n-internationalization-support)\@NLsection.\@NL### Element utility helpers\@NLBadge:\@NL```erb\@NL<%= badge(12, :warning) %> <span class=""badge badge-warning"">12</span>\@NL```\@NLLabel:\@NL```erb\@NL<%= tag_label('Gut!', :success) %> <span class=""label label-success"">Gut!</span>\@NL```\@NLGlyph:\@NL```erb\@NL<%= glyph(:pencil) %> <i class=""icon-pencil""></i>\@NL<%= glyph(:pencil, {tag: :span}) %> <span class=""icon-pencil""></span>\@NL```\@NL### I18n Internationalization Support\@NLThe installer creates an English translation file for you and copies it to config/locales/en.bootstrap.yml\@NLNOTE: If you are using Devise in your project, you must have a devise locale file\@NLfor handling flash messages, even if those messages are blank. See https://github.com/plataformatec/devise/wiki/I18n\@NL## Changelog\@NLPlease see CHANGELOG.md for more details\@NL## Contributors & Patches & Forks\@NLPlease see CONTRIBUTERS.md for contributors list\@NL## About Me\@NLCTO / Senior Developer / Programmer\@NL@useful (Usefulideas) Istanbul / Turkey\@NL### Contact me\@NLSeyhun Akyürek - seyhunak [at] gmail com\@NL## Thanks\@NLBootstrap and all twitter-bootstrap-rails contributors\@NLhttp://twbs.github.io/bootstrap\@NL## License\@NLCopyright (c) 2014 Seyhun Akyürek\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ""Software""), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/twitter-bootstrap-rails-3.2.2
twitter-bootstrap-rails-confirm,2.0.0,MIT,https://github.com/bluerail/twitter-bootstrap-rails-confirm,"Copyright (c) 2012 - 2018 Rene van Lieshout\@NLMIT License\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/twitter-bootstrap-rails-confirm-2.0.0
tzinfo,1.2.5,MIT,http://tzinfo.github.io,"Copyright (c) 2005-2018 Philip Ross\@NLPermission is hereby granted, free of charge, to any person obtaining a copy of \@NLthis software and associated documentation files (the ""Software""), to deal in \@NLthe Software without restriction, including without limitation the rights to \@NLuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies \@NLof the Software, and to permit persons to whom the Software is furnished to do \@NLso, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in all \@NLcopies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, \@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN \@NLTHE SOFTWARE.\@NLTZInfo - Ruby Timezone Library\@NL==============================\@NL[![Gem Version](https://badge.fury.io/rb/tzinfo.svg)](http://badge.fury.io/rb/tzinfo) [![Build Status](https://travis-ci.org/tzinfo/tzinfo.svg?branch=master)](https://travis-ci.org/tzinfo/tzinfo)\@NL[TZInfo](http://tzinfo.github.io) provides daylight savings aware \@NLtransformations between times in different timezones.\@NLData Sources\@NL------------\@NLTZInfo requires a source of timezone data. There are two built-in options:\@NL1. The TZInfo::Data library (the tzinfo-data gem). TZInfo::Data contains a set \@NL of Ruby modules that are generated from the [IANA Time Zone Database](http://www.iana.org/time-zones).\@NL2. A zoneinfo directory. Most Unix-like systems include a zoneinfo directory \@NL containing timezone definitions. These are also generated from the \@NL [IANA Time Zone Database](http://www.iana.org/time-zones).\@NLBy default, TZInfo::Data will be used. If TZInfo::Data is not available (i.e. \@NLif `require 'tzinfo/data'` fails), then TZInfo will search for a zoneinfo\@NLdirectory instead (using the search path specified by \@NL`TZInfo::ZoneinfoDataSource::DEFAULT_SEARCH_PATH`).\@NLIf no data source can be found, a `TZInfo::DataSourceNotFound` exception will be\@NLraised when TZInfo is used. Further information is available \@NL[in the wiki](http://tzinfo.github.io/datasourcenotfound) to help with \@NLresolving `TZInfo::DataSourceNotFound` errors.\@NLThe default data source selection can be overridden using \@NL`TZInfo::DataSource.set`.\@NLCustom data sources can also be used. See `TZInfo::DataSource.set` for\@NLfurther details.\@NLInstallation\@NL------------\@NLThe TZInfo gem can be installed by running:\@NL gem install tzinfo\@NLTo use the Ruby modules as the data source, TZInfo::Data will also need to be\@NLinstalled:\@NL gem install tzinfo-data\@NL \@NLExample Usage\@NL-------------\@NLThe following code will obtain the America/New_York timezone (as an instance\@NLof `TZInfo::Timezone`) and convert a time in UTC to local New York time:\@NL require 'tzinfo'\@NL \@NL tz = TZInfo::Timezone.get('America/New_York')\@NL local = tz.utc_to_local(Time.utc(2005,8,29,15,35,0))\@NLNote that the local Time returned will have a UTC timezone (`local.zone` will \@NLreturn `""UTC""`). This is because the Ruby Time class only supports two timezones: \@NLUTC and the current system local timezone.\@NL \@NLTo convert from a local time to UTC, the `local_to_utc` method can be used as\@NLfollows:\@NL utc = tz.local_to_utc(local)\@NLNote that the timezone information of the local Time object is ignored (TZInfo\@NLwill just read the date and time and treat them as if there were in the `tz`\@NLtimezone). The following two lines will return the same result regardless of \@NLthe system's local timezone:\@NL tz.local_to_utc(Time.local(2006,6,26,1,0,0))\@NL tz.local_to_utc(Time.utc(2006,6,26,1,0,0))\@NL \@NLTo obtain information about the rules in force at a particular UTC or local \@NLtime, the `TZInfo::Timezone.period_for_utc` and \@NL`TZInfo::Timezone.period_for_local` methods can be used. Both of these methods \@NLreturn `TZInfo::TimezonePeriod` objects. The following gets the identifier for \@NLthe period (in this case EDT).\@NL period = tz.period_for_utc(Time.utc(2005,8,29,15,35,0))\@NL id = period.zone_identifier\@NL \@NLThe current local time in a `Timezone` can be obtained with the \@NL`TZInfo::Timezone#now` method:\@NL now = tz.now\@NLAll methods in TZInfo that operate on a time can be used with either `Time` or \@NL`DateTime` instances or with Integer timestamps (i.e. as returned by \@NL`Time#to_i`). The type of the values returned will match the type passed in.\@NLA list of all the available timezone identifiers can be obtained using the\@NL`TZInfo::Timezone.all_identifiers` method. `TZInfo::Timezone.all` can be called\@NLto get an `Array` of all the `TZInfo::Timezone` instances.\@NLTimezones can also be accessed by country (using an ISO 3166-1 alpha-2 country \@NLcode). The following code retrieves the `TZInfo::Country` instance representing \@NLthe USA (country code 'US') and then gets all the timezone identifiers used in \@NLthe USA.\@NL us = TZInfo::Country.get('US')\@NL timezones = us.zone_identifiers\@NL \@NLThe `TZInfo::Country#zone_info` method provides an additional description and \@NLgeographic location for each timezone in a country.\@NLA list of all the available country codes can be obtained using the\@NL`TZInfo::Country.all_codes` method. `TZInfo::Country.all` can be called to get \@NLan `Array` of all the `Country` instances.\@NL \@NLFor further detail, please refer to the API documentation for the \@NL`TZInfo::Timezone` and `TZInfo::Country` classes.\@NLThread-Safety\@NL-------------\@NLThe `TZInfo::Country` and `TZInfo::Timezone` classes are thread-safe. It is safe\@NLto use class and instance methods of `TZInfo::Country` and `TZInfo::Timezone` in \@NLconcurrently executing threads. Instances of both classes can be shared across \@NLthread boundaries.\@NLDocumentation\@NL-------------\@NLAPI documentation for TZInfo is available on [RubyDoc.info](http://rubydoc.info/gems/tzinfo/frames).\@NLLicense\@NL-------\@NLTZInfo is released under the MIT license, see LICENSE for details.\@NLSource Code\@NL-----------\@NLSource code for TZInfo is available on [GitHub](https://github.com/tzinfo/tzinfo).\@NLIssue Tracker\@NL-------------\@NLPlease post any bugs, issues, feature requests or questions to the \@NL[GitHub issue tracker](https://github.com/tzinfo/tzinfo/issues).",/Users/scott/.rvm/gems/ruby-2.4.6/gems/tzinfo-1.2.5
uglifier,4.1.20,MIT,http://github.com/lautis/uglifier,"Copyright (c) 2011 Ville Lautanala\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/uglifier-4.1.20
unf,0.1.4,2-clause BSDL,https://github.com/knu/ruby-unf,"",/Users/scott/.rvm/gems/ruby-2.4.6/gems/unf-0.1.4
unf_ext,0.0.7.5,MIT,https://github.com/knu/ruby-unf_ext,"The MIT License\@NLCopyright (c) 2010 Takeru Ohta <[email protected]>\@NLCopyright (c) 2011-2018 Akinori MUSHA <[email protected]> (extended Ruby support)\@NLPermission is hereby granted, free of charge, to any person obtaining a copy\@NLof this software and associated documentation files (the ""Software""), to deal\@NLin the Software without restriction, including without limitation the rights\@NLto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\@NLcopies of the Software, and to permit persons to whom the Software is\@NLfurnished to do so, subject to the following conditions:\@NLThe above copyright notice and this permission notice shall be included in\@NLall copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\@NLIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\@NLFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\@NLAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\@NLLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\@NLOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\@NLTHE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/unf_ext-0.0.7.5
unicorn,5.5.0,"GPL-2.0+,Ruby-1.8",https://bogomips.org/unicorn/," GNU GENERAL PUBLIC LICENSE\@NL Version 3, 29 June 2007\@NL Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>\@NL Everyone is permitted to copy and distribute verbatim copies\@NL of this license document, but changing it is not allowed.\@NL Preamble\@NL The GNU General Public License is a free, copyleft license for\@NLsoftware and other kinds of works.\@NL The licenses for most software and other practical works are designed\@NLto take away your freedom to share and change the works. By contrast,\@NLthe GNU General Public License is intended to guarantee your freedom to\@NLshare and change all versions of a program--to make sure it remains free\@NLsoftware for all its users. We, the Free Software Foundation, use the\@NLGNU General Public License for most of our software; it applies also to\@NLany other work released this way by its authors. You can apply it to\@NLyour programs, too.\@NL When we speak of free software, we are referring to freedom, not\@NLprice. Our General Public Licenses are designed to make sure that you\@NLhave the freedom to distribute copies of free software (and charge for\@NLthem if you wish), that you receive source code or can get it if you\@NLwant it, that you can change the software or use pieces of it in new\@NLfree programs, and that you know you can do these things.\@NL To protect your rights, we need to prevent others from denying you\@NLthese rights or asking you to surrender the rights. Therefore, you have\@NLcertain responsibilities if you distribute copies of the software, or if\@NLyou modify it: responsibilities to respect the freedom of others.\@NL For example, if you distribute copies of such a program, whether\@NLgratis or for a fee, you must pass on to the recipients the same\@NLfreedoms that you received. You must make sure that they, too, receive\@NLor can get the source code. And you must show them these terms so they\@NLknow their rights.\@NL Developers that use the GNU GPL protect your rights with two steps:\@NL(1) assert copyright on the software, and (2) offer you this License\@NLgiving you legal permission to copy, distribute and/or modify it.\@NL For the developers' and authors' protection, the GPL clearly explains\@NLthat there is no warranty for this free software. For both users' and\@NLauthors' sake, the GPL requires that modified versions be marked as\@NLchanged, so that their problems will not be attributed erroneously to\@NLauthors of previous versions.\@NL Some devices are designed to deny users access to install or run\@NLmodified versions of the software inside them, although the manufacturer\@NLcan do so. This is fundamentally incompatible with the aim of\@NLprotecting users' freedom to change the software. The systematic\@NLpattern of such abuse occurs in the area of products for individuals to\@NLuse, which is precisely where it is most unacceptable. Therefore, we\@NLhave designed this version of the GPL to prohibit the practice for those\@NLproducts. If such problems arise substantially in other domains, we\@NLstand ready to extend this provision to those domains in future versions\@NLof the GPL, as needed to protect the freedom of users.\@NL Finally, every program is threatened constantly by software patents.\@NLStates should not allow patents to restrict development and use of\@NLsoftware on general-purpose computers, but in those that do, we wish to\@NLavoid the special danger that patents applied to a free program could\@NLmake it effectively proprietary. To prevent this, the GPL assures that\@NLpatents cannot be used to render the program non-free.\@NL The precise terms and conditions for copying, distribution and\@NLmodification follow.\@NL TERMS AND CONDITIONS\@NL 0. Definitions.\@NL ""This License"" refers to version 3 of the GNU General Public License.\@NL ""Copyright"" also means copyright-like laws that apply to other kinds of\@NLworks, such as semiconductor masks.\@NL ""The Program"" refers to any copyrightable work licensed under this\@NLLicense. Each licensee is addressed as ""you"". ""Licensees"" and\@NL""recipients"" may be individuals or organizations.\@NL To ""modify"" a work means to copy from or adapt all or part of the work\@NLin a fashion requiring copyright permission, other than the making of an\@NLexact copy. The resulting work is called a ""modified version"" of the\@NLearlier work or a work ""based on"" the earlier work.\@NL A ""covered work"" means either the unmodified Program or a work based\@NLon the Program.\@NL To ""propagate"" a work means to do anything with it that, without\@NLpermission, would make you directly or secondarily liable for\@NLinfringement under applicable copyright law, except executing it on a\@NLcomputer or modifying a private copy. Propagation includes copying,\@NLdistribution (with or without modification), making available to the\@NLpublic, and in some countries other activities as well.\@NL To ""convey"" a work means any kind of propagation that enables other\@NLparties to make or receive copies. Mere interaction with a user through\@NLa computer network, with no transfer of a copy, is not conveying.\@NL An interactive user interface displays ""Appropriate Legal Notices""\@NLto the extent that it includes a convenient and prominently visible\@NLfeature that (1) displays an appropriate copyright notice, and (2)\@NLtells the user that there is no warranty for the work (except to the\@NLextent that warranties are provided), that licensees may convey the\@NLwork under this License, and how to view a copy of this License. If\@NLthe interface presents a list of user commands or options, such as a\@NLmenu, a prominent item in the list meets this criterion.\@NL 1. Source Code.\@NL The ""source code"" for a work means the preferred form of the work\@NLfor making modifications to it. ""Object code"" means any non-source\@NLform of a work.\@NL A ""Standard Interface"" means an interface that either is an official\@NLstandard defined by a recognized standards body, or, in the case of\@NLinterfaces specified for a particular programming language, one that\@NLis widely used among developers working in that language.\@NL The ""System Libraries"" of an executable work include anything, other\@NLthan the work as a whole, that (a) is included in the normal form of\@NLpackaging a Major Component, but which is not part of that Major\@NLComponent, and (b) serves only to enable use of the work with that\@NLMajor Component, or to implement a Standard Interface for which an\@NLimplementation is available to the public in source code form. A\@NL""Major Component"", in this context, means a major essential component\@NL(kernel, window system, and so on) of the specific operating system\@NL(if any) on which the executable work runs, or a compiler used to\@NLproduce the work, or an object code interpreter used to run it.\@NL The ""Corresponding Source"" for a work in object code form means all\@NLthe source code needed to generate, install, and (for an executable\@NLwork) run the object code and to modify the work, including scripts to\@NLcontrol those activities. However, it does not include the work's\@NLSystem Libraries, or general-purpose tools or generally available free\@NLprograms which are used unmodified in performing those activities but\@NLwhich are not part of the work. For example, Corresponding Source\@NLincludes interface definition files associated with source files for\@NLthe work, and the source code for shared libraries and dynamically\@NLlinked subprograms that the work is specifically designed to require,\@NLsuch as by intimate data communication or control flow between those\@NLsubprograms and other parts of the work.\@NL The Corresponding Source need not include anything that users\@NLcan regenerate automatically from other parts of the Corresponding\@NLSource.\@NL The Corresponding Source for a work in source code form is that\@NLsame work.\@NL 2. Basic Permissions.\@NL All rights granted under this License are granted for the term of\@NLcopyright on the Program, and are irrevocable provided the stated\@NLconditions are met. This License explicitly affirms your unlimited\@NLpermission to run the unmodified Program. The output from running a\@NLcovered work is covered by this License only if the output, given its\@NLcontent, constitutes a covered work. This License acknowledges your\@NLrights of fair use or other equivalent, as provided by copyright law.\@NL You may make, run and propagate covered works that you do not\@NLconvey, without conditions so long as your license otherwise remains\@NLin force. You may convey covered works to others for the sole purpose\@NLof having them make modifications exclusively for you, or provide you\@NLwith facilities for running those works, provided that you comply with\@NLthe terms of this License in conveying all material for which you do\@NLnot control copyright. Those thus making or running the covered works\@NLfor you must do so exclusively on your behalf, under your direction\@NLand control, on terms that prohibit them from making any copies of\@NLyour copyrighted material outside their relationship with you.\@NL Conveying under any other circumstances is permitted solely under\@NLthe conditions stated below. Sublicensing is not allowed; section 10\@NLmakes it unnecessary.\@NL 3. Protecting Users' Legal Rights From Anti-Circumvention Law.\@NL No covered work shall be deemed part of an effective technological\@NLmeasure under any applicable law fulfilling obligations under article\@NL11 of the WIPO copyright treaty adopted on 20 December 1996, or\@NLsimilar laws prohibiting or restricting circumvention of such\@NLmeasures.\@NL When you convey a covered work, you waive any legal power to forbid\@NLcircumvention of technological measures to the extent such circumvention\@NLis effected by exercising rights under this License with respect to\@NLthe covered work, and you disclaim any intention to limit operation or\@NLmodification of the work as a means of enforcing, against the work's\@NLusers, your or third parties' legal rights to forbid circumvention of\@NLtechnological measures.\@NL 4. Conveying Verbatim Copies.\@NL You may convey verbatim copies of the Program's source code as you\@NLreceive it, in any medium, provided that you conspicuously and\@NLappropriately publish on each copy an appropriate copyright notice;\@NLkeep intact all notices stating that this License and any\@NLnon-permissive terms added in accord with section 7 apply to the code;\@NLkeep intact all notices of the absence of any warranty; and give all\@NLrecipients a copy of this License along with the Program.\@NL You may charge any price or no price for each copy that you convey,\@NLand you may offer support or warranty protection for a fee.\@NL 5. Conveying Modified Source Versions.\@NL You may convey a work based on the Program, or the modifications to\@NLproduce it from the Program, in the form of source code under the\@NLterms of section 4, provided that you also meet all of these conditions:\@NL a) The work must carry prominent notices stating that you modified\@NL it, and giving a relevant date.\@NL b) The work must carry prominent notices stating that it is\@NL released under this License and any conditions added under section\@NL 7. This requirement modifies the requirement in section 4 to\@NL ""keep intact all notices"".\@NL c) You must license the entire work, as a whole, under this\@NL License to anyone who comes into possession of a copy. This\@NL License will therefore apply, along with any applicable section 7\@NL additional terms, to the whole of the work, and all its parts,\@NL regardless of how they are packaged. This License gives no\@NL permission to license the work in any other way, but it does not\@NL invalidate such permission if you have separately received it.\@NL d) If the work has interactive user interfaces, each must display\@NL Appropriate Legal Notices; however, if the Program has interactive\@NL interfaces that do not display Appropriate Legal Notices, your\@NL work need not make them do so.\@NL A compilation of a covered work with other separate and independent\@NLworks, which are not by their nature extensions of the covered work,\@NLand which are not combined with it such as to form a larger program,\@NLin or on a volume of a storage or distribution medium, is called an\@NL""aggregate"" if the compilation and its resulting copyright are not\@NLused to limit the access or legal rights of the compilation's users\@NLbeyond what the individual works permit. Inclusion of a covered work\@NLin an aggregate does not cause this License to apply to the other\@NLparts of the aggregate.\@NL 6. Conveying Non-Source Forms.\@NL You may convey a covered work in object code form under the terms\@NLof sections 4 and 5, provided that you also convey the\@NLmachine-readable Corresponding Source under the terms of this License,\@NLin one of these ways:\@NL a) Convey the object code in, or embodied in, a physical product\@NL (including a physical distribution medium), accompanied by the\@NL Corresponding Source fixed on a durable physical medium\@NL customarily used for software interchange.\@NL b) Convey the object code in, or embodied in, a physical product\@NL (including a physical distribution medium), accompanied by a\@NL written offer, valid for at least three years and valid for as\@NL long as you offer spare parts or customer support for that product\@NL model, to give anyone who possesses the object code either (1) a\@NL copy of the Corresponding Source for all the software in the\@NL product that is covered by this License, on a durable physical\@NL medium customarily used for software interchange, for a price no\@NL more than your reasonable cost of physically performing this\@NL conveying of source, or (2) access to copy the\@NL Corresponding Source from a network server at no charge.\@NL c) Convey individual copies of the object code with a copy of the\@NL written offer to provide the Corresponding Source. This\@NL alternative is allowed only occasionally and noncommercially, and\@NL only if you received the object code with such an offer, in accord\@NL with subsection 6b.\@NL d) Convey the object code by offering access from a designated\@NL place (gratis or for a charge), and offer equivalent access to the\@NL Corresponding Source in the same way through the same place at no\@NL further charge. You need not require recipients to copy the\@NL Corresponding Source along with the object code. If the place to\@NL copy the object code is a network server, the Corresponding Source\@NL may be on a different server (operated by you or a third party)\@NL that supports equivalent copying facilities, provided you maintain\@NL clear directions next to the object code saying where to find the\@NL Corresponding Source. Regardless of what server hosts the\@NL Corresponding Source, you remain obligated to ensure that it is\@NL available for as long as needed to satisfy these requirements.\@NL e) Convey the object code using peer-to-peer transmission, provided\@NL you inform other peers where the object code and Corresponding\@NL Source of the work are being offered to the general public at no\@NL charge under subsection 6d.\@NL A separable portion of the object code, whose source code is excluded\@NLfrom the Corresponding Source as a System Library, need not be\@NLincluded in conveying the object code work.\@NL A ""User Product"" is either (1) a ""consumer product"", which means any\@NLtangible personal property which is normally used for personal, family,\@NLor household purposes, or (2) anything designed or sold for incorporation\@NLinto a dwelling. In determining whether a product is a consumer product,\@NLdoubtful cases shall be resolved in favor of coverage. For a particular\@NLproduct received by a particular user, ""normally used"" refers to a\@NLtypical or common use of that class of product, regardless of the status\@NLof the particular user or of the way in which the particular user\@NLactually uses, or expects or is expected to use, the product. A product\@NLis a consumer product regardless of whether the product has substantial\@NLcommercial, industrial or non-consumer uses, unless such uses represent\@NLthe only significant mode of use of the product.\@NL ""Installation Information"" for a User Product means any methods,\@NLprocedures, authorization keys, or other information required to install\@NLand execute modified versions of a covered work in that User Product from\@NLa modified version of its Corresponding Source. The information must\@NLsuffice to ensure that the continued functioning of the modified object\@NLcode is in no case prevented or interfered with solely because\@NLmodification has been made.\@NL If you convey an object code work under this section in, or with, or\@NLspecifically for use in, a User Product, and the conveying occurs as\@NLpart of a transaction in which the right of possession and use of the\@NLUser Product is transferred to the recipient in perpetuity or for a\@NLfixed term (regardless of how the transaction is characterized), the\@NLCorresponding Source conveyed under this section must be accompanied\@NLby the Installation Information. But this requirement does not apply\@NLif neither you nor any third party retains the ability to install\@NLmodified object code on the User Product (for example, the work has\@NLbeen installed in ROM).\@NL The requirement to provide Installation Information does not include a\@NLrequirement to continue to provide support service, warranty, or updates\@NLfor a work that has been modified or installed by the recipient, or for\@NLthe User Product in which it has been modified or installed. Access to a\@NLnetwork may be denied when the modification itself materially and\@NLadversely affects the operation of the network or violates the rules and\@NLprotocols for communication across the network.\@NL Corresponding Source conveyed, and Installation Information provided,\@NLin accord with this section must be in a format that is publicly\@NLdocumented (and with an implementation available to the public in\@NLsource code form), and must require no special password or key for\@NLunpacking, reading or copying.\@NL 7. Additional Terms.\@NL ""Additional permissions"" are terms that supplement the terms of this\@NLLicense by making exceptions from one or more of its conditions.\@NLAdditional permissions that are applicable to the entire Program shall\@NLbe treated as though they were included in this License, to the extent\@NLthat they are valid under applicable law. If additional permissions\@NLapply only to part of the Program, that part may be used separately\@NLunder those permissions, but the entire Program remains governed by\@NLthis License without regard to the additional permissions.\@NL When you convey a copy of a covered work, you may at your option\@NLremove any additional permissions from that copy, or from any part of\@NLit. (Additional permissions may be written to require their own\@NLremoval in certain cases when you modify the work.) You may place\@NLadditional permissions on material, added by you to a covered work,\@NLfor which you have or can give appropriate copyright permission.\@NL Notwithstanding any other provision of this License, for material you\@NLadd to a covered work, you may (if authorized by the copyright holders of\@NLthat material) supplement the terms of this License with terms:\@NL a) Disclaiming warranty or limiting liability differently from the\@NL terms of sections 15 and 16 of this License; or\@NL b) Requiring preservation of specified reasonable legal notices or\@NL author attributions in that material or in the Appropriate Legal\@NL Notices displayed by works containing it; or\@NL c) Prohibiting misrepresentation of the origin of that material, or\@NL requiring that modified versions of such material be marked in\@NL reasonable ways as different from the original version; or\@NL d) Limiting the use for publicity purposes of names of licensors or\@NL authors of the material; or\@NL e) Declining to grant rights under trademark law for use of some\@NL trade names, trademarks, or service marks; or\@NL f) Requiring indemnification of licensors and authors of that\@NL material by anyone who conveys the material (or modified versions of\@NL it) with contractual assumptions of liability to the recipient, for\@NL any liability that these contractual assumptions directly impose on\@NL those licensors and authors.\@NL All other non-permissive additional terms are considered ""further\@NLrestrictions"" within the meaning of section 10. If the Program as you\@NLreceived it, or any part of it, contains a notice stating that it is\@NLgoverned by this License along with a term that is a further\@NLrestriction, you may remove that term. If a license document contains\@NLa further restriction but permits relicensing or conveying under this\@NLLicense, you may add to a covered work material governed by the terms\@NLof that license document, provided that the further restriction does\@NLnot survive such relicensing or conveying.\@NL If you add terms to a covered work in accord with this section, you\@NLmust place, in the relevant source files, a statement of the\@NLadditional terms that apply to those files, or a notice indicating\@NLwhere to find the applicable terms.\@NL Additional terms, permissive or non-permissive, may be stated in the\@NLform of a separately written license, or stated as exceptions;\@NLthe above requirements apply either way.\@NL 8. Termination.\@NL You may not propagate or modify a covered work except as expressly\@NLprovided under this License. Any attempt otherwise to propagate or\@NLmodify it is void, and will automatically terminate your rights under\@NLthis License (including any patent licenses granted under the third\@NLparagraph of section 11).\@NL However, if you cease all violation of this License, then your\@NLlicense from a particular copyright holder is reinstated (a)\@NLprovisionally, unless and until the copyright holder explicitly and\@NLfinally terminates your license, and (b) permanently, if the copyright\@NLholder fails to notify you of the violation by some reasonable means\@NLprior to 60 days after the cessation.\@NL Moreover, your license from a particular copyright holder is\@NLreinstated permanently if the copyright holder notifies you of the\@NLviolation by some reasonable means, this is the first time you have\@NLreceived notice of violation of this License (for any work) from that\@NLcopyright holder, and you cure the violation prior to 30 days after\@NLyour receipt of the notice.\@NL Termination of your rights under this section does not terminate the\@NLlicenses of parties who have received copies or rights from you under\@NLthis License. If your rights have been terminated and not permanently\@NLreinstated, you do not qualify to receive new licenses for the same\@NLmaterial under section 10.\@NL 9. Acceptance Not Required for Having Copies.\@NL You are not required to accept this License in order to receive or\@NLrun a copy of the Program. Ancillary propagation of a covered work\@NLoccurring solely as a consequence of using peer-to-peer transmission\@NLto receive a copy likewise does not require acceptance. However,\@NLnothing other than this License grants you permission to propagate or\@NLmodify any covered work. These actions infringe copyright if you do\@NLnot accept this License. Therefore, by modifying or propagating a\@NLcovered work, you indicate your acceptance of this License to do so.\@NL 10. Automatic Licensing of Downstream Recipients.\@NL Each time you convey a covered work, the recipient automatically\@NLreceives a license from the original licensors, to run, modify and\@NLpropagate that work, subject to this License. You are not responsible\@NLfor enforcing compliance by third parties with this License.\@NL An ""entity transaction"" is a transaction transferring control of an\@NLorganization, or substantially all assets of one, or subdividing an\@NLorganization, or merging organizations. If propagation of a covered\@NLwork results from an entity transaction, each party to that\@NLtransaction who receives a copy of the work also receives whatever\@NLlicenses to the work the party's predecessor in interest had or could\@NLgive under the previous paragraph, plus a right to possession of the\@NLCorresponding Source of the work from the predecessor in interest, if\@NLthe predecessor has it or can get it with reasonable efforts.\@NL You may not impose any further restrictions on the exercise of the\@NLrights granted or affirmed under this License. For example, you may\@NLnot impose a license fee, royalty, or other charge for exercise of\@NLrights granted under this License, and you may not initiate litigation\@NL(including a cross-claim or counterclaim in a lawsuit) alleging that\@NLany patent claim is infringed by making, using, selling, offering for\@NLsale, or importing the Program or any portion of it.\@NL 11. Patents.\@NL A ""contributor"" is a copyright holder who authorizes use under this\@NLLicense of the Program or a work on which the Program is based. The\@NLwork thus licensed is called the contributor's ""contributor version"".\@NL A contributor's ""essential patent claims"" are all patent claims\@NLowned or controlled by the contributor, whether already acquired or\@NLhereafter acquired, that would be infringed by some manner, permitted\@NLby this License, of making, using, or selling its contributor version,\@NLbut do not include claims that would be infringed only as a\@NLconsequence of further modification of the contributor version. For\@NLpurposes of this definition, ""control"" includes the right to grant\@NLpatent sublicenses in a manner consistent with the requirements of\@NLthis License.\@NL Each contributor grants you a non-exclusive, worldwide, royalty-free\@NLpatent license under the contributor's essential patent claims, to\@NLmake, use, sell, offer for sale, import and otherwise run, modify and\@NLpropagate the contents of its contributor version.\@NL In the following three paragraphs, a ""patent license"" is any express\@NLagreement or commitment, however denominated, not to enforce a patent\@NL(such as an express permission to practice a patent or covenant not to\@NLsue for patent infringement). To ""grant"" such a patent license to a\@NLparty means to make such an agreement or commitment not to enforce a\@NLpatent against the party.\@NL If you convey a covered work, knowingly relying on a patent license,\@NLand the Corresponding Source of the work is not available for anyone\@NLto copy, free of charge and under the terms of this License, through a\@NLpublicly available network server or other readily accessible means,\@NLthen you must either (1) cause the Corresponding Source to be so\@NLavailable, or (2) arrange to deprive yourself of the benefit of the\@NLpatent license for this particular work, or (3) arrange, in a manner\@NLconsistent with the requirements of this License, to extend the patent\@NLlicense to downstream recipients. ""Knowingly relying"" means you have\@NLactual knowledge that, but for the patent license, your conveying the\@NLcovered work in a country, or your recipient's use of the covered work\@NLin a country, would infringe one or more identifiable patents in that\@NLcountry that you have reason to believe are valid.\@NL If, pursuant to or in connection with a single transaction or\@NLarrangement, you convey, or propagate by procuring conveyance of, a\@NLcovered work, and grant a patent license to some of the parties\@NLreceiving the covered work authorizing them to use, propagate, modify\@NLor convey a specific copy of the covered work, then the patent license\@NLyou grant is automatically extended to all recipients of the covered\@NLwork and works based on it.\@NL A patent license is ""discriminatory"" if it does not include within\@NLthe scope of its coverage, prohibits the exercise of, or is\@NLconditioned on the non-exercise of one or more of the rights that are\@NLspecifically granted under this License. You may not convey a covered\@NLwork if you are a party to an arrangement with a third party that is\@NLin the business of distributing software, under which you make payment\@NLto the third party based on the extent of your activity of conveying\@NLthe work, and under which the third party grants, to any of the\@NLparties who would receive the covered work from you, a discriminatory\@NLpatent license (a) in connection with copies of the covered work\@NLconveyed by you (or copies made from those copies), or (b) primarily\@NLfor and in connection with specific products or compilations that\@NLcontain the covered work, unless you entered into that arrangement,\@NLor that patent license was granted, prior to 28 March 2007.\@NL Nothing in this License shall be construed as excluding or limiting\@NLany implied license or other defenses to infringement that may\@NLotherwise be available to you under applicable patent law.\@NL 12. No Surrender of Others' Freedom.\@NL If conditions are imposed on you (whether by court order, agreement or\@NLotherwise) that contradict the conditions of this License, they do not\@NLexcuse you from the conditions of this License. If you cannot convey a\@NLcovered work so as to satisfy simultaneously your obligations under this\@NLLicense and any other pertinent obligations, then as a consequence you may\@NLnot convey it at all. For example, if you agree to terms that obligate you\@NLto collect a royalty for further conveying from those to whom you convey\@NLthe Program, the only way you could satisfy both those terms and this\@NLLicense would be to refrain entirely from conveying the Program.\@NL 13. Use with the GNU Affero General Public License.\@NL Notwithstanding any other provision of this License, you have\@NLpermission to link or combine any covered work with a work licensed\@NLunder version 3 of the GNU Affero General Public License into a single\@NLcombined work, and to convey the resulting work. The terms of this\@NLLicense will continue to apply to the part which is the covered work,\@NLbut the special requirements of the GNU Affero General Public License,\@NLsection 13, concerning interaction through a network will apply to the\@NLcombination as such.\@NL 14. Revised Versions of this License.\@NL The Free Software Foundation may publish revised and/or new versions of\@NLthe GNU General Public License from time to time. Such new versions will\@NLbe similar in spirit to the present version, but may differ in detail to\@NLaddress new problems or concerns.\@NL Each version is given a distinguishing version number. If the\@NLProgram specifies that a certain numbered version of the GNU General\@NLPublic License ""or any later version"" applies to it, you have the\@NLoption of following the terms and conditions either of that numbered\@NLversion or of any later version published by the Free Software\@NLFoundation. If the Program does not specify a version number of the\@NLGNU General Public License, you may choose any version ever published\@NLby the Free Software Foundation.\@NL If the Program specifies that a proxy can decide which future\@NLversions of the GNU General Public License can be used, that proxy's\@NLpublic statement of acceptance of a version permanently authorizes you\@NLto choose that version for the Program.\@NL Later license versions may give you additional or different\@NLpermissions. However, no additional obligations are imposed on any\@NLauthor or copyright holder as a result of your choosing to follow a\@NLlater version.\@NL 15. Disclaimer of Warranty.\@NL THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\@NLAPPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\@NLHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM ""AS IS"" WITHOUT WARRANTY\@NLOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\@NLTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\@NLPURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\@NLIS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\@NLALL NECESSARY SERVICING, REPAIR OR CORRECTION.\@NL 16. Limitation of Liability.\@NL IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\@NLWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\@NLTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\@NLGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\@NLUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\@NLDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\@NLPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\@NLEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\@NLSUCH DAMAGES.\@NL 17. Interpretation of Sections 15 and 16.\@NL If the disclaimer of warranty and limitation of liability provided\@NLabove cannot be given local legal effect according to their terms,\@NLreviewing courts shall apply local law that most closely approximates\@NLan absolute waiver of all civil liability in connection with the\@NLProgram, unless a warranty or assumption of liability accompanies a\@NLcopy of the Program in return for a fee.\@NL END OF TERMS AND CONDITIONS\@NL How to Apply These Terms to Your New Programs\@NL If you develop a new program, and you want it to be of the greatest\@NLpossible use to the public, the best way to achieve this is to make it\@NLfree software which everyone can redistribute and change under these terms.\@NL To do so, attach the following notices to the program. It is safest\@NLto attach them to the start of each source file to most effectively\@NLstate the exclusion of warranty; and each file should have at least\@NLthe ""copyright"" line and a pointer to where the full notice is found.\@NL <one line to give the program's name and a brief idea of what it does.>\@NL Copyright (C) <year> <name of author>\@NL This program is free software: you can redistribute it and/or modify\@NL it under the terms of the GNU General Public License as published by\@NL the Free Software Foundation, either version 3 of the License, or\@NL (at your option) any later version.\@NL This program is distributed in the hope that it will be useful,\@NL but WITHOUT ANY WARRANTY; without even the implied warranty of\@NL MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\@NL GNU General Public License for more details.\@NL You should have received a copy of the GNU General Public License\@NL along with this program. If not, see <http://www.gnu.org/licenses/>.\@NLAlso add information on how to contact you by electronic and paper mail.\@NL If the program does terminal interaction, make it output a short\@NLnotice like this when it starts in an interactive mode:\@NL <program> Copyright (C) <year> <name of author>\@NL This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\@NL This is free software, and you are welcome to redistribute it\@NL under certain conditions; type `show c' for details.\@NLThe hypothetical commands `show w' and `show c' should show the appropriate\@NLparts of the General Public License. Of course, your program's commands\@NLmight be different; for a GUI interface, you would use an ""about box"".\@NL You should also get your employer (if you work as a programmer) or school,\@NLif any, to sign a ""copyright disclaimer"" for the program, if necessary.\@NLFor more information on this, and how to apply and follow the GNU GPL, see\@NL<http://www.gnu.org/licenses/>.\@NL The GNU General Public License does not permit incorporating your program\@NLinto proprietary programs. If your program is a subroutine library, you\@NLmay consider it more useful to permit linking proprietary applications with\@NLthe library. If this is what you want to do, use the GNU Lesser General\@NLPublic License instead of this License. But first, please read\@NL<http://www.gnu.org/philosophy/why-not-lgpl.html>.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/unicorn-5.5.0
virtus,1.0.5,MIT,https://github.com/solnic/virtus,"Copyright (c) 2011-2013 Piotr Solnica\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/virtus-1.0.5
warden,1.2.7,MIT,http://github.com/hassox/warden,"Copyright (c) 2009 Daniel Neighman\@NLPermission is hereby granted, free of charge, to any person obtaining\@NLa copy of this software and associated documentation files (the\@NL""Software""), to deal in the Software without restriction, including\@NLwithout limitation the rights to use, copy, modify, merge, publish,\@NLdistribute, sublicense, and/or sell copies of the Software, and to\@NLpermit persons to whom the Software is furnished to do so, subject to\@NLthe following conditions:\@NLThe above copyright notice and this permission notice shall be\@NLincluded in all copies or substantial portions of the Software.\@NLTHE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,\@NLEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\@NLMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\@NLNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\@NLLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\@NLOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\@NLWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",/Users/scott/.rvm/gems/ruby-2.4.6/gems/warden-1.2.7