peasant 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 48ff97a45029eb7ca85d66b36da489b245e1f87c
4
- data.tar.gz: 1bc192d1d537bdfe02cfa4e6f31169192c8dd729
3
+ metadata.gz: 70406d2610abde63fb16e6f9107219b833eaf45a
4
+ data.tar.gz: e3503c08686415a10792062111ebbb17879c6c23
5
5
  SHA512:
6
- metadata.gz: de456b13b8df17fddd02967a5d2c0166f08700101f41443c8a5234794966338a223cd5b5bbc5c50cf5866fe0d3e5379ad3670ac0c541bc84cfc9b6cec0ea8b74
7
- data.tar.gz: e872b149499bd291451d38f726b7695a3506eac4b7ee18cb6ea93755c65bd750c8a9062868e2a176360282ed42216a504a6419837c2c28d765e955ba4d7d1df6
6
+ metadata.gz: f297278c43044c67fa92225aa9f0a923d14bd9e55c262882a94271a3441b9d85c0eb79cebb8cb0fa17a2f7be484ffb614a4540577adff573ff10124c110c6f45
7
+ data.tar.gz: 77d13820895aea9858c0a55ab223c7090ca3790fafd94c7dad26822da7d2ecffa78ecd287620bcfcfacf3bf533f043a16efdf7e6e2d8cb29750c1577777caeae
data/LICENSE CHANGED
@@ -1,191 +1,8 @@
1
- Apache License
2
- Version 2.0, January 2004
3
- http://www.apache.org/licenses/
4
-
5
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
-
7
- 1. Definitions.
8
-
9
- "License" shall mean the terms and conditions for use, reproduction, and
10
- distribution as defined by Sections 1 through 9 of this document.
11
-
12
- "Licensor" shall mean the copyright owner or entity authorized by the copyright
13
- owner that is granting the License.
14
-
15
- "Legal Entity" shall mean the union of the acting entity and all other entities
16
- that control, are controlled by, or are under common control with that entity.
17
- For the purposes of this definition, "control" means (i) the power, direct or
18
- indirect, to cause the direction or management of such entity, whether by
19
- contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the
20
- outstanding shares, or (iii) beneficial ownership of such entity.
21
-
22
- "You" (or "Your") shall mean an individual or Legal Entity exercising
23
- permissions granted by this License.
24
-
25
- "Source" form shall mean the preferred form for making modifications, including
26
- but not limited to software source code, documentation source, and configuration
27
- files.
28
-
29
- "Object" form shall mean any form resulting from mechanical transformation or
30
- translation of a Source form, including but not limited to compiled object code,
31
- generated documentation, and conversions to other media types.
32
-
33
- "Work" shall mean the work of authorship, whether in Source or Object form, made
34
- available under the License, as indicated by a copyright notice that is included
35
- in or attached to the work (an example is provided in the Appendix below).
36
-
37
- "Derivative Works" shall mean any work, whether in Source or Object form, that
38
- is based on (or derived from) the Work and for which the editorial revisions,
39
- annotations, elaborations, or other modifications represent, as a whole, an
40
- original work of authorship. For the purposes of this License, Derivative Works
41
- shall not include works that remain separable from, or merely link (or bind by
42
- name) to the interfaces of, the Work and Derivative Works thereof.
43
-
44
- "Contribution" shall mean any work of authorship, including the original version
45
- of the Work and any modifications or additions to that Work or Derivative Works
46
- thereof, that is intentionally submitted to Licensor for inclusion in the Work
47
- by the copyright owner or by an individual or Legal Entity authorized to submit
48
- on behalf of the copyright owner. For the purposes of this definition,
49
- "submitted" means any form of electronic, verbal, or written communication sent
50
- to the Licensor or its representatives, including but not limited to
51
- communication on electronic mailing lists, source code control systems, and
52
- issue tracking systems that are managed by, or on behalf of, the Licensor for
53
- the purpose of discussing and improving the Work, but excluding communication
54
- that is conspicuously marked or otherwise designated in writing by the copyright
55
- owner as "Not a Contribution."
56
-
57
- "Contributor" shall mean Licensor and any individual or Legal Entity on behalf
58
- of whom a Contribution has been received by Licensor and subsequently
59
- incorporated within the Work.
60
-
61
- 2. Grant of Copyright License.
62
-
63
- Subject to the terms and conditions of this License, each Contributor hereby
64
- grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
65
- irrevocable copyright license to reproduce, prepare Derivative Works of,
66
- publicly display, publicly perform, sublicense, and distribute the Work and such
67
- Derivative Works in Source or Object form.
68
-
69
- 3. Grant of Patent License.
70
-
71
- Subject to the terms and conditions of this License, each Contributor hereby
72
- grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
73
- irrevocable (except as stated in this section) patent license to make, have
74
- made, use, offer to sell, sell, import, and otherwise transfer the Work, where
75
- such license applies only to those patent claims licensable by such Contributor
76
- that are necessarily infringed by their Contribution(s) alone or by combination
77
- of their Contribution(s) with the Work to which such Contribution(s) was
78
- submitted. If You institute patent litigation against any entity (including a
79
- cross-claim or counterclaim in a lawsuit) alleging that the Work or a
80
- Contribution incorporated within the Work constitutes direct or contributory
81
- patent infringement, then any patent licenses granted to You under this License
82
- for that Work shall terminate as of the date such litigation is filed.
83
-
84
- 4. Redistribution.
85
-
86
- You may reproduce and distribute copies of the Work or Derivative Works thereof
87
- in any medium, with or without modifications, and in Source or Object form,
88
- provided that You meet the following conditions:
89
-
90
- You must give any other recipients of the Work or Derivative Works a copy of
91
- this License; and
92
- You must cause any modified files to carry prominent notices stating that You
93
- changed the files; and
94
- You must retain, in the Source form of any Derivative Works that You distribute,
95
- all copyright, patent, trademark, and attribution notices from the Source form
96
- of the Work, excluding those notices that do not pertain to any part of the
97
- Derivative Works; and
98
- If the Work includes a "NOTICE" text file as part of its distribution, then any
99
- Derivative Works that You distribute must include a readable copy of the
100
- attribution notices contained within such NOTICE file, excluding those notices
101
- that do not pertain to any part of the Derivative Works, in at least one of the
102
- following places: within a NOTICE text file distributed as part of the
103
- Derivative Works; within the Source form or documentation, if provided along
104
- with the Derivative Works; or, within a display generated by the Derivative
105
- Works, if and wherever such third-party notices normally appear. The contents of
106
- the NOTICE file are for informational purposes only and do not modify the
107
- License. You may add Your own attribution notices within Derivative Works that
108
- You distribute, alongside or as an addendum to the NOTICE text from the Work,
109
- provided that such additional attribution notices cannot be construed as
110
- modifying the License.
111
- You may add Your own copyright statement to Your modifications and may provide
112
- additional or different license terms and conditions for use, reproduction, or
113
- distribution of Your modifications, or for any such Derivative Works as a whole,
114
- provided Your use, reproduction, and distribution of the Work otherwise complies
115
- with the conditions stated in this License.
116
-
117
- 5. Submission of Contributions.
118
-
119
- Unless You explicitly state otherwise, any Contribution intentionally submitted
120
- for inclusion in the Work by You to the Licensor shall be under the terms and
121
- conditions of this License, without any additional terms or conditions.
122
- Notwithstanding the above, nothing herein shall supersede or modify the terms of
123
- any separate license agreement you may have executed with Licensor regarding
124
- such Contributions.
125
-
126
- 6. Trademarks.
127
-
128
- This License does not grant permission to use the trade names, trademarks,
129
- service marks, or product names of the Licensor, except as required for
130
- reasonable and customary use in describing the origin of the Work and
131
- reproducing the content of the NOTICE file.
132
-
133
- 7. Disclaimer of Warranty.
134
-
135
- Unless required by applicable law or agreed to in writing, Licensor provides the
136
- Work (and each Contributor provides its Contributions) on an "AS IS" BASIS,
137
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
138
- including, without limitation, any warranties or conditions of TITLE,
139
- NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
140
- solely responsible for determining the appropriateness of using or
141
- redistributing the Work and assume any risks associated with Your exercise of
142
- permissions under this License.
143
-
144
- 8. Limitation of Liability.
145
-
146
- In no event and under no legal theory, whether in tort (including negligence),
147
- contract, or otherwise, unless required by applicable law (such as deliberate
148
- and grossly negligent acts) or agreed to in writing, shall any Contributor be
149
- liable to You for damages, including any direct, indirect, special, incidental,
150
- or consequential damages of any character arising as a result of this License or
151
- out of the use or inability to use the Work (including but not limited to
152
- damages for loss of goodwill, work stoppage, computer failure or malfunction, or
153
- any and all other commercial damages or losses), even if such Contributor has
154
- been advised of the possibility of such damages.
155
-
156
- 9. Accepting Warranty or Additional Liability.
157
-
158
- While redistributing the Work or Derivative Works thereof, You may choose to
159
- offer, and charge a fee for, acceptance of support, warranty, indemnity, or
160
- other liability obligations and/or rights consistent with this License. However,
161
- in accepting such obligations, You may act only on Your own behalf and on Your
162
- sole responsibility, not on behalf of any other Contributor, and only if You
163
- agree to indemnify, defend, and hold each Contributor harmless for any liability
164
- incurred by, or claims asserted against, such Contributor by reason of your
165
- accepting any such warranty or additional liability.
166
-
167
- END OF TERMS AND CONDITIONS
168
-
169
- APPENDIX: How to apply the Apache License to your work
170
-
171
- To apply the Apache License to your work, attach the following boilerplate
172
- notice, with the fields enclosed by brackets "[]" replaced with your own
173
- identifying information. (Don't include the brackets!) The text should be
174
- enclosed in the appropriate comment syntax for the file format. We also
175
- recommend that a file or class name and description of purpose be included on
176
- the same "printed page" as the copyright notice for easier identification within
177
- third-party archives.
178
-
179
- Copyright [yyyy] [name of copyright owner]
180
-
181
- Licensed under the Apache License, Version 2.0 (the "License");
182
- you may not use this file except in compliance with the License.
183
- You may obtain a copy of the License at
184
-
185
- http://www.apache.org/licenses/LICENSE-2.0
186
-
187
- Unless required by applicable law or agreed to in writing, software
188
- distributed under the License is distributed on an "AS IS" BASIS,
189
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
190
- See the License for the specific language governing permissions and
191
- limitations under the License.
1
+ /*
2
+ * ----------------------------------------------------------------------------
3
+ * "THE BEER-WARE LICENSE" (Revision 42):
4
+ * As long as you retain this notice you can do whatever you want with this
5
+ * stuff. If we meet some day, and you think this stuff is worth it, you can
6
+ * buy me a beer in return. Rene Klacan
7
+ * ----------------------------------------------------------------------------
8
+ */
data/README.md CHANGED
@@ -1,4 +1,30 @@
1
- Peasant
2
- =======
1
+ # Peasant
2
+
3
+ Peasant is ruby library for creating proxies that forwards requests to
4
+ another proxies or any nodes.
5
+
6
+ Peasant is compatible with Tor.
7
+
8
+ ## Installation
9
+
10
+ You can install it via gem
11
+
12
+ ```bash
13
+ gem install peasant
14
+ ```
15
+
16
+ Or you can put it in your Gemfile
17
+
18
+ ```ruby
19
+ gem 'peasant', '~> 0.0.2'
20
+ ```
21
+
22
+ ## Other
23
+
24
+ * [How to use Peasant with Tor and Privoxy for scraping](https://github.com/reneklacan/peasant/wiki/How-to-use-Peasant-with-Tor-and-Privoxy-for-scraping)
25
+ * [How to use Peasant with Tor and Firefox for
26
+ browsing](https://github.com/reneklacan/peasant/wiki/How-to-use-Peasant-with-Tor-and-Firefox-for-browsing)
3
27
 
4
28
  TBD
29
+
30
+ ## License
data/lib/peasant/node.rb CHANGED
@@ -2,7 +2,7 @@ module Peasant
2
2
  class Node
3
3
  include NodeCallbacks
4
4
 
5
- attr_reader :host, :port
5
+ attr_reader :host, :port
6
6
  attr_accessor :load
7
7
 
8
8
  def initialize options={}
@@ -2,10 +2,7 @@ module Peasant
2
2
  class PeerInfo
3
3
  def initialize peer, args={}
4
4
  @peer = peer
5
- @node = nil
6
- @requests = 0
7
- @node_expiration = 0
8
-
5
+ reset
9
6
  @max_requests = args[:max_requests] || 3
10
7
  @node_timeout = args[:node_timeout] || 15
11
8
  end
@@ -15,13 +12,15 @@ module Peasant
15
12
  end
16
13
 
17
14
  def node= n
15
+ reset
18
16
  @node = n
19
17
  @node_expiration = Time.now.to_f + @node_timeout
20
- @requests = 0
21
18
  end
22
19
 
23
20
  def node_expired?
24
- @node_expiration < Time.now.to_f || @requests > @max_requests
21
+ expired = @node_expiration < Time.now.to_f || @requests > @max_requests
22
+ reset if expired
23
+ expired
25
24
  end
26
25
 
27
26
  def inc_requests
@@ -31,5 +30,11 @@ module Peasant
31
30
  def reset_node_expiration
32
31
  @node_expiration = Time.now.to_f + @node_timeout
33
32
  end
33
+
34
+ def reset
35
+ @node = nil
36
+ @requests = 0
37
+ @node_expiration = 0
38
+ end
34
39
  end
35
40
  end
@@ -1,3 +1,3 @@
1
1
  module Paesant
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: peasant
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rene Klacan
@@ -69,7 +69,7 @@ files:
69
69
  - lib/peasant.rb
70
70
  - LICENSE
71
71
  - README.md
72
- homepage: https://github.com/reneklacan/dictuby
72
+ homepage: https://github.com/reneklacan/peasant
73
73
  licenses:
74
74
  - Beerware
75
75
  metadata: {}
@@ -94,3 +94,4 @@ signing_key:
94
94
  specification_version: 4
95
95
  summary: ''
96
96
  test_files: []
97
+ has_rdoc: