lbry 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +10 -0
- data/.travis.yml +5 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +59 -0
- data/Rakefile +10 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lbry.gemspec +40 -0
- data/lib/lbry.rb +10 -0
- data/lib/lbry/api.rb +48 -0
- data/lib/lbry/api_error.rb +12 -0
- data/lib/lbry/client.rb +167 -0
- data/lib/lbry/version.rb +3 -0
- metadata +156 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5d38161742271e9c0ab2b6d9716d9d655704f483
|
4
|
+
data.tar.gz: 6f8746957b8dc16f4b8e05fe8a65e0c620901dfe
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c53dca994f68e3a6bd0e8b522923ef36b88d3816a736a0ad04f31551335ed45aa868c1c04e23426be421f0681af94fe273eef31e827d3b75ad01d7179fcd81ac
|
7
|
+
data.tar.gz: 59c43cb256d06bafd055b9f542879eaa5ae581adbbbfbb280d5e41e814b330e179ce277523dbe7a11c5b956bb102afcd5a5361c7e7707c94891e6800c4abc2a9
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2018 Daniel Dominguez
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
# Lbry
|
2
|
+
|
3
|
+
|
4
|
+
LBRY is an open-source protocol providing distribution, discovery, and purchase of digital content (data) via a decentralized network.
|
5
|
+
Ruby wrapper for LBRY and LBRYcrd APIs
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
gem 'lbry'
|
13
|
+
```
|
14
|
+
|
15
|
+
And then execute:
|
16
|
+
|
17
|
+
$ bundle
|
18
|
+
|
19
|
+
Or install it yourself as:
|
20
|
+
|
21
|
+
$ gem install lbry
|
22
|
+
|
23
|
+
## Usage
|
24
|
+
|
25
|
+
All methods listed on [Lbry API doc](https://lbryio.github.io/lbry) are working here and they have the same name and accept the same arguments, for example to call the method get example from the api doc: `curl 'http://localhost:5279' --data '{"method":"get","params":{"uri":"what"} }'`, here you will need to do this
|
26
|
+
```
|
27
|
+
client = Lbry::Client.new
|
28
|
+
client.get(uri: "what") =>
|
29
|
+
=> #<OpenStruct id=nil, jsonrpc="2.0", result=#<OpenStruct blobs_completed=76, blobs_in_stream=76, channel_claim_id=nil, channel_name=nil, claim_id="6769855a9aa43b67086f9ff3c1a5bacb5698a27a", claim_name="what", completed=true, download_directory="/home/r1/Downloads", download_path="/home/r1/Downloads/LBRY100.mp4", file_name="LBRY100.mp4", key="0edc1705489d7a2b2bcad3fea7e5ce92", metadata=#<OpenStruct author="Samuel Bryan", description="What is LBRY? An introduction with Alex Tabarrok", language="en", license="LBRY inc", licenseUrl="", nsfw=false, preview="", thumbnail="https://s3.amazonaws.com/files.lbry.io/logo.png", title="What is LBRY?", version="_0_1_0">, mime_type="video/mp4", nout=0, outpoint="6c71c02c4990ce0590f6888a77ad11f1ae45486f6a4c56d5013954ee8f6356bc:0", points_paid=0.0, sd_hash="d5169241150022f996fa7cd6a9a1c421937276a3275eb912790bd07ba7aec1fac5fd45431d226b8fb402691e79aeb24b", status="completed", stopped=true, stream_hash="9f41e37b1ea706d1b431a65f634b89c5aadefb106280da3661e4d565d47bc938a345755cafb2af807bcfc9fbde3306e3", stream_name="LBRY100.mp4", suggested_file_name="LBRY100.mp4", total_bytes=158433904, txid="6c71c02c4990ce0590f6888a77ad11f1ae45486f6a4c56d5013954ee8f6356bc", written_bytes=158433824>>
|
30
|
+
|
31
|
+
```
|
32
|
+
|
33
|
+
Example on how to get a list of claims:
|
34
|
+
```
|
35
|
+
client = Lbry::Client.new
|
36
|
+
response = client.claim_list(name: "lbry")
|
37
|
+
claims = response.result.claims # array of claims
|
38
|
+
claims.first => #<OpenStruct address="bTzDhXE4vK6fLqU9LSVgrBGYhxuSj8spH8", amount=1.0, claim_id="2c63bcc26eb26d60e91fe99cd972e38bb64b3401", claim_sequence=15, decoded_claim=true, depth=232551, effective_amount=1.0, has_signature=false, height=147432, hex="080110011adc010801129401080410011a0d57686174206973204c4252593f223057686174206973204c4252593f20416e20696e74726f64756374696f6e207769746820416c6578205461626172726f6b2a0c53616d75656c20427279616e32084c42525920696e6338004a2f68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f66696c65732e6c6272792e696f2f6c6f676f2e706e6752005a001a41080110011a30e3bcfb59a97efd76d5ce7533ff9aae8ad565df4b8d10db32b7296b07d2a3fbd41ba99c439cc972b567323fc97132041d2209766964656f2f6d7034", name="lbry", nout=0, permanent_url="lbry#2c63bcc26eb26d60e91fe99cd972e38bb64b3401", supports=[], txid="32b2c71eb1edb47dfa1b9b645c35fa5a4fdc77b4d4eada08d747e21f3f0871a7", valid_at_height=150075, value=#<OpenStruct claimType="streamType", stream=#<OpenStruct metadata=#<OpenStruct author="Samuel Bryan", description="What is LBRY? An introduction with Alex Tabarrok", language="en", license="LBRY inc", licenseUrl="", nsfw=false, preview="", thumbnail="https://s3.amazonaws.com/files.lbry.io/logo.png", title="What is LBRY?", version="_0_1_0">, source=#<OpenStruct contentType="video/mp4", source="e3bcfb59a97efd76d5ce7533ff9aae8ad565df4b8d10db32b7296b07d2a3fbd41ba99c439cc972b567323fc97132041d", sourceType="lbry_sd_hash", version="_0_0_1">, version="_0_0_1">, version="_0_0_1">>
|
39
|
+
```
|
40
|
+
|
41
|
+
You can also look under `test/fixtures/[method_name]/ to see how the response looks like.
|
42
|
+
|
43
|
+
You can get the list of supported methods [here](https://github.com/dan1d/lbry-api-ruby/blob/master/lib/lbry/client.rb#L6) and the API doc [here](https://lbryio.github.io/lbry), on the original API DOC you can see the list of arguments needed for each method call.
|
44
|
+
|
45
|
+
|
46
|
+
## Development
|
47
|
+
|
48
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
49
|
+
|
50
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
51
|
+
|
52
|
+
## Contributing
|
53
|
+
|
54
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/dan1d/lbry.
|
55
|
+
|
56
|
+
|
57
|
+
## License
|
58
|
+
|
59
|
+
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "lbry"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start(__FILE__)
|
data/bin/setup
ADDED
data/lbry.gemspec
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'lbry/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "lbry"
|
8
|
+
spec.version = Lbry::VERSION
|
9
|
+
spec.authors = ["Daniel Dominguez"]
|
10
|
+
spec.email = ["danielfromarg@gmail.com"]
|
11
|
+
|
12
|
+
spec.summary = %q{Ruby wrapper for LBRY and LBRYcrd APIs}
|
13
|
+
spec.description = %q{Ruby wrapper for LBRY and LBRYcrd APIs}
|
14
|
+
spec.homepage = "https://github.com/dan1d/lbry-api-ruby"
|
15
|
+
spec.license = "MIT"
|
16
|
+
|
17
|
+
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
18
|
+
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
19
|
+
# if spec.respond_to?(:metadata)
|
20
|
+
# spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
|
21
|
+
# else
|
22
|
+
# raise "RubyGems 2.0 or newer is required to protect against " \
|
23
|
+
# "public gem pushes."
|
24
|
+
# end
|
25
|
+
|
26
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
27
|
+
f.match(%r{^(test|spec|features)/})
|
28
|
+
end
|
29
|
+
spec.bindir = "exe"
|
30
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
31
|
+
spec.require_paths = ["lib"]
|
32
|
+
|
33
|
+
spec.add_development_dependency "bundler", "~> 1.14"
|
34
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
35
|
+
spec.add_development_dependency "minitest", "~> 5.0"
|
36
|
+
spec.add_development_dependency "vcr"
|
37
|
+
spec.add_development_dependency "webmock"
|
38
|
+
spec.add_development_dependency "httparty"
|
39
|
+
spec.add_development_dependency "pry"
|
40
|
+
end
|
data/lib/lbry.rb
ADDED
data/lib/lbry/api.rb
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'httparty'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
module Lbry
|
5
|
+
class Api
|
6
|
+
include HTTParty
|
7
|
+
attr_accessor :auth, :default_options
|
8
|
+
|
9
|
+
base_uri 'http://localhost:5279'
|
10
|
+
headers 'Content-Type' => 'application/json'
|
11
|
+
|
12
|
+
def parse_response(raw_response)
|
13
|
+
# binding.pry
|
14
|
+
struct = JSON.parse(raw_response.body, object_class: OpenStruct)
|
15
|
+
error = struct.error
|
16
|
+
return struct unless error && error.code && error.message
|
17
|
+
# binding.pry
|
18
|
+
raise Lbry::ApiError.new(error)
|
19
|
+
end
|
20
|
+
|
21
|
+
def initialize(auth: {})
|
22
|
+
@auth = { username: auth["user"], password: auth["password"] }
|
23
|
+
@default_options = {}
|
24
|
+
default_options[:basic_auth] = auth if auth.values.any?
|
25
|
+
end
|
26
|
+
|
27
|
+
def request(http_verb, lbry_command, lbry_params, headers: {})
|
28
|
+
params = { body: { method: lbry_command, params: lbry_params }.to_json }
|
29
|
+
params[:headers] = headers if headers.keys.any?
|
30
|
+
response = self.class.send(http_verb, '', params)
|
31
|
+
parse_response(response)
|
32
|
+
end
|
33
|
+
|
34
|
+
def get(lbry_command, lbry_params = {}, options: {})
|
35
|
+
request(:get, lbry_command, lbry_params)
|
36
|
+
end
|
37
|
+
|
38
|
+
def post(lbry_command, *lbry_params)
|
39
|
+
headers = { "Content-Type" => "application/x-www-form-urlencoded" }
|
40
|
+
request(:post, lbry_command, *lbry_params, headers: headers)
|
41
|
+
end
|
42
|
+
|
43
|
+
def put(lbry_command, lbry_params = {}, options: {})
|
44
|
+
request(:put, lbry_command, lbry_params)
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
data/lib/lbry/client.rb
ADDED
@@ -0,0 +1,167 @@
|
|
1
|
+
# @author Daniel Alejandro Dominguez Diaz
|
2
|
+
module Lbry
|
3
|
+
class Client
|
4
|
+
attr_reader :client
|
5
|
+
def self.add_support_for(lbry_command, http_verb: :post)
|
6
|
+
define_method(lbry_command) do |*args, &block|
|
7
|
+
client.send(http_verb, lbry_command, *args)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def initialize(auth: {})
|
12
|
+
@client = Api.new(auth)
|
13
|
+
end
|
14
|
+
|
15
|
+
# Announce blobs to the DHT
|
16
|
+
# @overload blob_announce(query)
|
17
|
+
# @param [Hash] query
|
18
|
+
# @option query [String] :blob_hash announce a blob, specified by blob_hash
|
19
|
+
# @option query [String] :stream_hash announce all blobs associated with stream_hash
|
20
|
+
# @option query [String] :sd_hash announce all blobs associated with sd_hash and the sd_hash itself
|
21
|
+
add_support_for :blob_announce
|
22
|
+
|
23
|
+
# Get blob availability
|
24
|
+
# @overload blob_announce(query)
|
25
|
+
# @param [Hash] query
|
26
|
+
# @option query [String] :blob_hash check availability for this blob hash
|
27
|
+
# @option query [Number] :search_timeout how long to search for peers for the blob in the dht
|
28
|
+
# @option query [Number] :sd_hash how long to try downloading from a peer
|
29
|
+
add_support_for :blob_availability
|
30
|
+
|
31
|
+
# Delete a blob
|
32
|
+
# @overload blob_delete(query)
|
33
|
+
# @param [Hash] query
|
34
|
+
# @option query [String] :blob_hash blob hash of the blob to delete
|
35
|
+
add_support_for :blob_delete
|
36
|
+
|
37
|
+
# Download and return a blob
|
38
|
+
# @overload blob_get(query)
|
39
|
+
# @param [Hash] query
|
40
|
+
# @option query [String] :blob_hash :required, blob hash of the blob to get
|
41
|
+
# @option query [Number] :timeout timeout in number of seconds
|
42
|
+
# @option query [String] :encoding by default no attempt at decoding is made, can be set to one of the following decoders: 'json'
|
43
|
+
# @option query [String] :payment_rate_manager if not given the default payment rate manager will be used. supported alternative rate managers: 'only-free'
|
44
|
+
add_support_for :blob_get
|
45
|
+
|
46
|
+
# Returns blob hashes. If not given filters, returns all blobs known by the blob manager
|
47
|
+
# @overload blob_list(query)
|
48
|
+
# @param [Hash] query
|
49
|
+
# @option query [Boolean] :needed only return needed blobs
|
50
|
+
# @option query [Boolean] :finished only return finished blobs
|
51
|
+
# @option query [String] :uri filter blobs by stream in a uri
|
52
|
+
# @option query [String] :stream_hash filter blobs by stream hash
|
53
|
+
# @option query [String] :sd_hash filter blobs by sd hash
|
54
|
+
# @option query [Number] :page_size results page size
|
55
|
+
# @option query [Number] :page page of results to return
|
56
|
+
add_support_for :blob_list
|
57
|
+
|
58
|
+
# Returns blob hashes. If not given filters, returns all blobs known by the blob manager
|
59
|
+
# @overload blob_reflect(query)
|
60
|
+
# @param [Hash] query
|
61
|
+
# @option query [String] :reflector_server reflector address
|
62
|
+
add_support_for :blob_reflect
|
63
|
+
|
64
|
+
# Reflects all saved blobs
|
65
|
+
# No args
|
66
|
+
add_support_for :blob_reflect_all
|
67
|
+
|
68
|
+
# Returns blob hashes. If not given filters, returns all blobs known by the blob manager
|
69
|
+
# @overload block_show(query)
|
70
|
+
# @param [Hash] query
|
71
|
+
# @option query [String] :blockhash :required, hash of the block to look up
|
72
|
+
# @option query [Number] :height :required, height of the block to look up
|
73
|
+
add_support_for :block_show
|
74
|
+
|
75
|
+
# Export serialized channel signing information for a given certificate claim id
|
76
|
+
# @overload channel_export(query)
|
77
|
+
# @param [Hash] query
|
78
|
+
# @option query [String] :claim_id :required, Claim ID to export information about
|
79
|
+
add_support_for :channel_export
|
80
|
+
|
81
|
+
# Import serialized channel signing information (to allow signing new claims to the channel)
|
82
|
+
# @overload channel_import(query)
|
83
|
+
# @param [Hash] query
|
84
|
+
# @option query [String] :serialized_certificate_info :required, certificate info
|
85
|
+
add_support_for :channel_import
|
86
|
+
|
87
|
+
# Get certificate claim infos for channels that can be published to
|
88
|
+
# No args
|
89
|
+
add_support_for :channel_list
|
90
|
+
|
91
|
+
# Generate a publisher key and create a new '@' prefixed certificate claim
|
92
|
+
# @overload channel_new(query)
|
93
|
+
# @param [Hash] query
|
94
|
+
# @option query [String] :channel_name :required, name of the channel prefixed with '@'
|
95
|
+
# @option query [Float] :amount :required, bid amount on the channel
|
96
|
+
add_support_for :channel_new
|
97
|
+
|
98
|
+
# Abandon a name and reclaim credits from the claim
|
99
|
+
# @overload claim_abandon(query)
|
100
|
+
# @param [Hash] query
|
101
|
+
# @option query [String] :claim_id claim_id of the claim to abandon
|
102
|
+
# @option query [String] :txid txid of the claim to abandon
|
103
|
+
# @option query [Number] :nout nout of the claim to abandon
|
104
|
+
add_support_for :claim_abandon
|
105
|
+
|
106
|
+
# List current claims and information about them for a given name
|
107
|
+
# @overload claim_list(query)
|
108
|
+
# @param [Hash] query
|
109
|
+
# @option query [String] :name name of the claim to list info about
|
110
|
+
add_support_for :claim_list
|
111
|
+
|
112
|
+
# List current claims and information about them for a given name
|
113
|
+
# @overload claim_list_by_channel(query)
|
114
|
+
# @param [Hash] query
|
115
|
+
# @option query [String] :uri required, uri of the channel
|
116
|
+
# @option query [String] :uris uris of the channel
|
117
|
+
# @option query [Number] :page which page of results to return where page 1 is the first page, defaults to no pages
|
118
|
+
# @option query [Number] :page_size number of results in a page, default of 10
|
119
|
+
add_support_for :claim_list_by_channel
|
120
|
+
|
121
|
+
add_support_for :help
|
122
|
+
|
123
|
+
SUPPORTED_METHODS = %w{
|
124
|
+
claim_list_mine
|
125
|
+
claim_new_support
|
126
|
+
claim_renew
|
127
|
+
claim_send_to_address
|
128
|
+
claim_show
|
129
|
+
cli_test_command
|
130
|
+
commands
|
131
|
+
daemon_stop
|
132
|
+
file_delete
|
133
|
+
file_list
|
134
|
+
file_reflect
|
135
|
+
file_set_status
|
136
|
+
get
|
137
|
+
help
|
138
|
+
peer_list
|
139
|
+
peer_ping
|
140
|
+
publish
|
141
|
+
resolve
|
142
|
+
resolve_name
|
143
|
+
routing_table_get
|
144
|
+
settings_get
|
145
|
+
settings_set
|
146
|
+
status
|
147
|
+
stream_availability
|
148
|
+
stream_cost_estimate
|
149
|
+
transaction_list
|
150
|
+
transaction_show
|
151
|
+
utxo_list
|
152
|
+
version
|
153
|
+
wallet_balance
|
154
|
+
wallet_decrypt
|
155
|
+
wallet_encrypt
|
156
|
+
wallet_is_address_mine
|
157
|
+
wallet_list
|
158
|
+
wallet_new_address
|
159
|
+
wallet_prefill_addresses
|
160
|
+
wallet_public_key
|
161
|
+
wallet_send
|
162
|
+
wallet_unlock
|
163
|
+
wallet_unused_address
|
164
|
+
}.each {|q| self.add_support_for q.to_sym }
|
165
|
+
|
166
|
+
end
|
167
|
+
end
|
data/lib/lbry/version.rb
ADDED
metadata
ADDED
@@ -0,0 +1,156 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: lbry
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Daniel Dominguez
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-06-03 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.14'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.14'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '5.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '5.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: vcr
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: webmock
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: httparty
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: pry
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
description: Ruby wrapper for LBRY and LBRYcrd APIs
|
112
|
+
email:
|
113
|
+
- danielfromarg@gmail.com
|
114
|
+
executables: []
|
115
|
+
extensions: []
|
116
|
+
extra_rdoc_files: []
|
117
|
+
files:
|
118
|
+
- ".gitignore"
|
119
|
+
- ".travis.yml"
|
120
|
+
- Gemfile
|
121
|
+
- LICENSE.txt
|
122
|
+
- README.md
|
123
|
+
- Rakefile
|
124
|
+
- bin/console
|
125
|
+
- bin/setup
|
126
|
+
- lbry.gemspec
|
127
|
+
- lib/lbry.rb
|
128
|
+
- lib/lbry/api.rb
|
129
|
+
- lib/lbry/api_error.rb
|
130
|
+
- lib/lbry/client.rb
|
131
|
+
- lib/lbry/version.rb
|
132
|
+
homepage: https://github.com/dan1d/lbry-api-ruby
|
133
|
+
licenses:
|
134
|
+
- MIT
|
135
|
+
metadata: {}
|
136
|
+
post_install_message:
|
137
|
+
rdoc_options: []
|
138
|
+
require_paths:
|
139
|
+
- lib
|
140
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - ">="
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0'
|
145
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
146
|
+
requirements:
|
147
|
+
- - ">="
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0'
|
150
|
+
requirements: []
|
151
|
+
rubyforge_project:
|
152
|
+
rubygems_version: 2.6.11
|
153
|
+
signing_key:
|
154
|
+
specification_version: 4
|
155
|
+
summary: Ruby wrapper for LBRY and LBRYcrd APIs
|
156
|
+
test_files: []
|