cosgrove 0.0.4.0pre2 → 0.0.4.0pre3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e48845f0cda0595faaf52cec70e8ede013d91b410e1fff7b6e596433d04e8a59
4
- data.tar.gz: 76550d1f6f6a56ebb971d41572d6a775450dd7c6f13732f5d0531e2adf8c248b
3
+ metadata.gz: 4199a721cb39937e39933953807d5c4260530443cad30ef3158c899f3dcb673f
4
+ data.tar.gz: 9e59b88a764d8039d58ff8104beafc79dbc01bfbdb73f6f2f5de0d311cbe157b
5
5
  SHA512:
6
- metadata.gz: ef7e64af801759ddc8c8c1eb32e24732e5fe0dc6da1398e42c2acf550bbed246379bdc3f5084ce458d4f74804ba0baa4cfb7ee9131d35bfd9a51a9753c68068d
7
- data.tar.gz: 9c146df2c912586e7a814112a7597f8011d5a267e646bdd1b53381b166eb99673597b8598276c09d0f69813c8f7bde84f68b02b36fa9433b6e858fa07ccb152c
6
+ metadata.gz: 4a0ed9862bee58cdfcf793f7606b3c59a7ddb5c90db3d0b620937adce79caff76f1343eff326aba285a2b3fc8231f8703234ca9d89dddd760be61d1f8f991e2d
7
+ data.tar.gz: d7fbcaebb0f4fa4f947e0438f333a8a1b4a6d56ef785f508c43b47f503170aca9a846e113cbbae4512521da2490237b898cac9cd610ba746572147d086896cf3
data/.gitignore CHANGED
@@ -1,4 +1,5 @@
1
1
  *.gem
2
+ Gemfile.lock
2
3
  *.rbc
3
4
  /.config
4
5
  /coverage/
data/README.md CHANGED
@@ -4,11 +4,10 @@ Cosgrove is a STEEM Centric Discord Bot Framework that allows you to write your
4
4
 
5
5
  One example of a bot that uses this framework is [@banjo](https://steemit.com/steemdata/@inertia/introducing-banjo) on SteemSpeak.
6
6
 
7
- Many (not all) features work on Golos as well.
8
-
9
7
  ## New features
10
8
 
11
- * Added support for SteemApi as a fallback to SteemData.
9
+ * Support for SteemApi (replacing SteemData)
10
+ * Optimized interactive messages to update as data is queried
12
11
  * Gem updates.
13
12
 
14
13
  ## Features
@@ -65,10 +64,7 @@ Add a config file to your `ruby` project called `config.yml`:
65
64
  :chain:
66
65
  :steem_account:
67
66
  :steem_posting_wif:
68
- :golos_account:
69
- :golos_posting_wif:
70
67
  :steem_api_url: https://api.steemit.com
71
- :golos_api_url: https://ws.golos.io
72
68
  :discord:
73
69
  :log_mode: info
74
70
  ```
@@ -91,6 +87,26 @@ SecureRandom.hex(32)
91
87
  4. Give that URL to the Discord server/guild owner and have them authorize the bot.
92
88
  5. Set the `token` and `client_id` in your bot constructor (see below).
93
89
 
90
+ ## SteemSQL
91
+
92
+ Some features provided by `cosgrove` require access to [SteemSQL](http://steemsql.com/), which is a Microsoft SQL database containing all the Steem blockchain data.
93
+
94
+ **Please note:**
95
+
96
+ > SteemSQL has moved to a monthly subscription model and the default free account/password “steemit/steemit” has been disabled.
97
+
98
+ If you intend to use SteemSQL, you can provide the credentials in `authorize-steem-sql.sh`, then use this terminal command to enable SteemSQL just before running your bot. Copy the example `example-authorize-steem-sql.sh` and add your credentials:
99
+
100
+ ```bash
101
+ source path/to/authorize-steem-sql.sh
102
+ ```
103
+
104
+ Features that currently require SteemSQL:
105
+
106
+ * Details in `$mvests` command
107
+ * Any command that tries to suggest account names
108
+ * `$upvote` (when checking for dailly limits)
109
+
94
110
  ## Usage
95
111
 
96
112
  Cosgrove is based on `discordrb`, see: https://github.com/meew0/discordrb
@@ -28,8 +28,7 @@ Gem::Specification.new do |spec|
28
28
  spec.add_development_dependency 'yard', '~> 0.9', '>= 0.9.16'
29
29
 
30
30
  spec.add_dependency 'radiator', '~> 0.4', '>= 0.4.3'
31
- spec.add_dependency 'steem_api', '~> 1.1', '>= 1.1.1rc1'
32
- spec.add_dependency 'golos_cloud', '~> 1.1', '>= 1.1.1rc1'
31
+ spec.add_dependency 'steem_api', '~> 1.1', '>= 1.1.2pre3'
33
32
  spec.add_dependency 'discordrb', '~> 3.2', '>= 3.2.1'
34
33
  spec.add_dependency 'ai4r', '~> 1.13', '>= 1.13'
35
34
  spec.add_dependency 'steem-slap', '~> 0.0', '>= 0.0.2'
@@ -5,7 +5,6 @@ require 'action_view'
5
5
  require 'radiator'
6
6
  require 'awesome_print'
7
7
  require 'steem_api'
8
- require 'golos_cloud'
9
8
  # require 'pry' # for binding.pry
10
9
 
11
10
  Bundler.require
@@ -3,10 +3,9 @@ require 'discordrb'
3
3
  module Cosgrove
4
4
  require 'cosgrove/snark_commands'
5
5
 
6
- cattr_accessor :latest_steemit_link, :latest_golos_link
6
+ cattr_accessor :latest_steemit_link
7
7
 
8
8
  @@latest_steemit_link = {}
9
- @@latest_golosio_link = {}
10
9
 
11
10
  class Bot < Discordrb::Commands::CommandBot
12
11
  include Support
@@ -34,12 +33,6 @@ module Cosgrove
34
33
  Cosgrove::latest_steemit_link[event.channel.name] = link
35
34
  append_link_details(event, link)
36
35
  end
37
-
38
- # A user typed a link to golos.io.
39
- self.message(content: /http[s]*:\/\/golos\.io\/.*/, ignore_bots: false) do |event|
40
- link = event.content.split(' ').first
41
- Cosgrove::latest_golosio_link[event.channel.name] = link
42
- end
43
36
  end
44
37
 
45
38
  def add_all_commands
@@ -36,14 +36,6 @@ module Cosgrove
36
36
  [chain[:steem_api_failover_urls]].flatten.compact
37
37
  end
38
38
 
39
- def golos_api_url
40
- chain[:golos_api_url]
41
- end
42
-
43
- def golos_api_failover_urls
44
- [chain[:golos_api_failover_urls]].flatten.compact
45
- end
46
-
47
39
  def test_api_url
48
40
  chain[:test_api_url]
49
41
  end
@@ -60,14 +52,6 @@ module Cosgrove
60
52
  chain[:steem_posting_wif]
61
53
  end
62
54
 
63
- def golos_account
64
- chain[:golos_account]
65
- end
66
-
67
- def golos_posting_wif
68
- chain[:golos_posting_wif]
69
- end
70
-
71
55
  def test_posting_wif
72
56
  chain[:test_posting_wif]
73
57
  end
@@ -38,22 +38,33 @@ module Cosgrove
38
38
  author_name, permlink = parse_slug slug
39
39
  created = nil
40
40
  cashout_time = nil
41
+ message = nil
42
+
43
+ return unless !!author_name && !!permlink
41
44
 
42
45
  if slug =~ /steemit.com/
43
46
  chain = :steem
44
- elsif slug =~ /golos.io/
45
- chain = :golos
46
- elsif slug =~ /golos.blog/
47
- chain = :golos
48
47
  else
49
48
  return # silntlly ignore this slug
50
49
  end
51
50
 
52
- post = case chain
53
- when :steem then SteemApi::Comment.where(author: author_name, permlink: permlink).last
54
- when :golos then GolosCloud::Comment.where(author: author_name, permlink: permlink).last
51
+ if !!event
52
+ begin
53
+ message = event.respond "Looking up #{author_name}/#{permlink} ..."
54
+ rescue Discordrb::Errors::NoPermission => _
55
+ puts "Unable to append link details on #{event.channel.server.name} in #{event.channel.name}"
56
+ return nil
57
+ end
58
+ end
59
+
60
+ posts = case chain
61
+ when :steem then SteemApi::Comment.where(author: author_name, permlink: permlink)
55
62
  end
56
63
 
64
+ posts.select(:ID, :created, :cashout_time, :author, :permlink, :active_votes, :children)
65
+
66
+ post = posts.last
67
+
57
68
  if post.nil?
58
69
  # Fall back to RPC
59
70
  api(chain).get_content(author_name, permlink) do |content, errors|
@@ -64,7 +75,11 @@ module Cosgrove
64
75
  end
65
76
  end
66
77
 
67
- return if post.nil?
78
+ if post.nil?
79
+ message = message.edit 'Unable to locate.' if !!message
80
+
81
+ return
82
+ end
68
83
 
69
84
  created ||= post.created
70
85
  cashout_time ||= post.cashout_time
@@ -73,47 +88,46 @@ module Cosgrove
73
88
  age = time_ago_in_words(created)
74
89
  age = age.slice(0, 1).capitalize + age.slice(1..-1)
75
90
 
76
- details << if created < 30.minutes.ago
91
+ details << if created < 15.minutes.ago
77
92
  "#{age} old"
78
93
  else
79
94
  "**#{age}** old"
80
95
  end
96
+ message = message.edit details.join('; ') if !!message
81
97
 
82
- active_votes = SteemApi::Tx::Vote.where(author: post.author, permlink: post.permlink)
98
+ active_votes = JSON[post.active_votes] rescue []
83
99
 
84
100
  if active_votes.any?
85
- upvotes = active_votes.map{ |v| v if v.weight > 0 }.compact.count
86
- downvotes = active_votes.map{ |v| v if v.weight < 0 }.compact.count
101
+ upvotes = active_votes.map{ |v| v if v['weight'].to_i > 0 }.compact.count
102
+ downvotes = active_votes.map{ |v| v if v['weight'].to_i < 0 }.compact.count
87
103
  netvotes = upvotes - downvotes
88
104
  details << "Net votes: #{netvotes}"
105
+ message = message.edit details.join('; ') if !!message
89
106
 
90
107
  # Only append this detail of the post less than an hour old.
91
108
  if created > 1.hour.ago
92
109
  votes = case chain
93
110
  when :steem then SteemApi::Tx::Vote.where('timestamp > ?', post.created)
94
- when :golos then GolosCloud::Vote.where('timestamp > ?', post.created)
95
111
  end
96
- total_votes = votes.count
97
- total_voters = votes.distinct(:voter).size
112
+ total_votes = votes.distinct("concat(author, permlink)").count
113
+ total_voters = votes.distinct(:voter).count
98
114
 
99
115
  if total_votes > 0 && total_voters > 0
100
116
  details << "Out of #{pluralize(total_votes - netvotes, 'vote')} cast by #{pluralize(total_voters, 'voter')}"
117
+ message = message.edit details.join('; ') if !!message
101
118
  end
102
119
  end
103
120
  end
104
121
 
105
122
  details << "Comments: #{post.children.to_i}"
123
+ message = message.edit details.join('; ') if !!message
106
124
 
125
+ # Page View counter is no longer supported by steemit.com.
107
126
  # page_views = page_views("/#{post.parent_permlink}/@#{post.author}/#{post.permlink}")
108
127
  # details << "Views: #{page_views}" if !!page_views
128
+ # message = message.edit details.join('; ') if !!message
109
129
 
110
- begin
111
- event.respond details.join('; ')
112
- rescue Discordrb::Errors::NoPermission => _
113
- puts "Unable to append link details on #{event.channel.server.name} in #{event.channel.name}"
114
- end
115
-
116
- return nil
130
+ details.join('; ') if event.nil?
117
131
  end
118
132
 
119
133
  def find_account(key, event = nil, chain = :steem)
@@ -138,8 +152,6 @@ module Cosgrove
138
152
  account = if !!key
139
153
  if chain == :steem && (accounts = SteemApi::Account.where(name: key)).any?
140
154
  accounts.first
141
- elsif chain == :golos && (accounts = GolosCloud::Account.where(name: key)).any?
142
- accounts.first
143
155
  else
144
156
  # Fall back to RPC
145
157
  api(chain).get_accounts([key]) do |_accounts, errors|
@@ -7,8 +7,8 @@ module Cosgrove
7
7
  end
8
8
 
9
9
  def reset_api
10
- @steem_api = @golos_api = @test_api = nil
11
- @steem_folow_api = @golos_follow_api = @test_folow_api = nil
10
+ @steem_api = @test_api = nil
11
+ @steem_folow_api = @test_folow_api = nil
12
12
  @cycle_api_at = nil
13
13
  end
14
14
 
@@ -28,12 +28,6 @@ module Cosgrove
28
28
  url: steem_api_url,
29
29
  failover_urls: steem_api_failover_urls.any? ? steem_api_failover_urls : nil
30
30
  }
31
- when :golos
32
- {
33
- chain: :golos,
34
- url: golos_api_url,
35
- failover_urls: golos_api_failover_urls.any? ? golos_api_failover_urls : nil
36
- }
37
31
  when :test
38
32
  {
39
33
  chain: :test,
@@ -50,7 +44,6 @@ module Cosgrove
50
44
 
51
45
  case chain
52
46
  when :steem then @steem_api ||= Radiator::Api.new(chain_options(chain))
53
- when :golos then @golos_api ||= Radiator::Api.new(chain_options(chain))
54
47
  when :test then @test_api ||= Radiator::Api.new(chain_options(chain))
55
48
  end
56
49
  end
@@ -62,7 +55,6 @@ module Cosgrove
62
55
 
63
56
  case chain
64
57
  when :steem then @steem_follow_api ||= Radiator::FollowApi.new(chain_options(chain))
65
- when :golos then @golos_follow_api ||= Radiator::FollowApi.new(chain_options(chain))
66
58
  when :test then @test_follow_api ||= Radiator::FollowApi.new(chain_options(chain))
67
59
  end
68
60
  end
@@ -72,8 +64,8 @@ module Cosgrove
72
64
  end
73
65
 
74
66
  def reset_stream
75
- @steem_stream = @golos_stream = @test_stream = nil
76
- @steem_folow_stream = @golos_follow_stream = @test_folow_stream = nil
67
+ @steem_stream = @test_stream = nil
68
+ @steem_folow_stream = @test_folow_stream = nil
77
69
  @cycle_stream_at = nil
78
70
  end
79
71
 
@@ -84,7 +76,6 @@ module Cosgrove
84
76
 
85
77
  case chain
86
78
  when :steem then @steem_stream ||= Radiator::Stream.new(chain_options(chain))
87
- when :golos then @golos_stream ||= Radiator::Stream.new(chain_options(chain))
88
79
  when :test then @test_stream ||= Radiator::Stream.new(chain_options(chain))
89
80
  end
90
81
  end
@@ -104,7 +95,6 @@ module Cosgrove
104
95
  def new_tx(chain)
105
96
  case chain
106
97
  when :steem then Radiator::Transaction.new(chain_options(chain).merge(wif: steem_posting_wif))
107
- when :golos then Radiator::Transaction.new(chain_options(chain).merge(wif: golos_posting_wif))
108
98
  when :test then Radiator::Transaction.new(chain_options(chain).merge(wif: test_posting_wif))
109
99
  end
110
100
  end
@@ -128,6 +118,7 @@ module Cosgrove
128
118
  slug = slug.split('@').last
129
119
  author_name = slug.split('/')[0]
130
120
  permlink = slug.split('/')[1..-1].join('/')
121
+ permlink = permlink.split('#')[0]
131
122
 
132
123
  [author_name, permlink]
133
124
  end
@@ -181,12 +172,6 @@ module Cosgrove
181
172
  posts = posts.where(permlink: permlink) if !!permlink
182
173
  posts = posts.where(parent_permlink: parent_permlink) if !!parent_permlink
183
174
 
184
- posts.first
185
- when :golos
186
- posts = GolosCloud::Comment.where(author: author_name)
187
- posts = posts.where(permlink: permlink) if !!permlink
188
- posts = posts.where(parent_permlink: parent_permlink) if !!parent_permlink
189
-
190
175
  posts.first
191
176
  end
192
177
  end
@@ -238,11 +223,6 @@ module Cosgrove
238
223
  where(to: to).
239
224
  where("memo LIKE ?", "%#{memo_key}%").last
240
225
  end
241
- when :golos
242
- GolosCloud::Tx::Transfer.
243
- where(from: from).
244
- where(to: to).
245
- where("memo LIKE ?", "%#{memo_key}%").last
246
226
  end
247
227
 
248
228
  if op.nil?
@@ -275,7 +255,6 @@ module Cosgrove
275
255
  def core_asset(chain = :steem)
276
256
  case chain
277
257
  when :steem then 'STEEM'
278
- when :golos then 'GOLOS'
279
258
  else; 'TESTS'
280
259
  end
281
260
  end
@@ -283,7 +262,6 @@ module Cosgrove
283
262
  def debt_asset(chain = :steem)
284
263
  case chain
285
264
  when :steem then 'SBD'
286
- when :golos then 'GBG'
287
265
  else; 'TBD'
288
266
  end
289
267
  end
@@ -1,4 +1,4 @@
1
1
  module Cosgrove
2
- VERSION = '0.0.4.0pre2'
2
+ VERSION = '0.0.4.0pre3'
3
3
  AGENT_ID = "cosgrove/#{VERSION}"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cosgrove
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4.0pre2
4
+ version: 0.0.4.0pre3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anthony Martin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-22 00:00:00.000000000 Z
11
+ date: 2018-12-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -219,7 +219,7 @@ dependencies:
219
219
  version: '1.1'
220
220
  - - ">="
221
221
  - !ruby/object:Gem::Version
222
- version: 1.1.1rc1
222
+ version: 1.1.2pre3
223
223
  type: :runtime
224
224
  prerelease: false
225
225
  version_requirements: !ruby/object:Gem::Requirement
@@ -229,27 +229,7 @@ dependencies:
229
229
  version: '1.1'
230
230
  - - ">="
231
231
  - !ruby/object:Gem::Version
232
- version: 1.1.1rc1
233
- - !ruby/object:Gem::Dependency
234
- name: golos_cloud
235
- requirement: !ruby/object:Gem::Requirement
236
- requirements:
237
- - - "~>"
238
- - !ruby/object:Gem::Version
239
- version: '1.1'
240
- - - ">="
241
- - !ruby/object:Gem::Version
242
- version: 1.1.1rc1
243
- type: :runtime
244
- prerelease: false
245
- version_requirements: !ruby/object:Gem::Requirement
246
- requirements:
247
- - - "~>"
248
- - !ruby/object:Gem::Version
249
- version: '1.1'
250
- - - ">="
251
- - !ruby/object:Gem::Version
252
- version: 1.1.1rc1
232
+ version: 1.1.2pre3
253
233
  - !ruby/object:Gem::Dependency
254
234
  name: discordrb
255
235
  requirement: !ruby/object:Gem::Requirement
@@ -479,7 +459,6 @@ extra_rdoc_files: []
479
459
  files:
480
460
  - ".gitignore"
481
461
  - Gemfile
482
- - Gemfile.lock
483
462
  - LICENSE
484
463
  - README.md
485
464
  - Rakefile
@@ -1,220 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- cosgrove (0.0.4.0pre2)
5
- activesupport (~> 5.1, >= 5.1.1)
6
- ai4r (~> 1.13, >= 1.13)
7
- awesome_print (~> 1.7, >= 1.7.0)
8
- discordrb (~> 3.2, >= 3.2.1)
9
- golos_cloud (~> 1.1, >= 1.1.1rc1)
10
- mechanize (~> 2.7, >= 2.7.5)
11
- phantomjs (~> 2.1, >= 2.1.1.0)
12
- radiator (~> 0.4, >= 0.4.3)
13
- railties (~> 5.1, >= 5.1.1)
14
- rdiscount (~> 2.2, >= 2.2.0.1)
15
- rmagick (~> 2.16, >= 2.16.0)
16
- steem-slap (~> 0.0, >= 0.0.2)
17
- steem_api (~> 1.1, >= 1.1.1rc1)
18
- wolfram-alpha (~> 0.3, >= 0.3.1)
19
-
20
- GEM
21
- remote: https://rubygems.org/
22
- specs:
23
- actionpack (5.1.6)
24
- actionview (= 5.1.6)
25
- activesupport (= 5.1.6)
26
- rack (~> 2.0)
27
- rack-test (>= 0.6.3)
28
- rails-dom-testing (~> 2.0)
29
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
30
- actionview (5.1.6)
31
- activesupport (= 5.1.6)
32
- builder (~> 3.1)
33
- erubi (~> 1.4)
34
- rails-dom-testing (~> 2.0)
35
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
36
- activemodel (5.1.6)
37
- activesupport (= 5.1.6)
38
- activerecord (5.1.6)
39
- activemodel (= 5.1.6)
40
- activesupport (= 5.1.6)
41
- arel (~> 8.0)
42
- activerecord-sqlserver-adapter (5.1.6)
43
- activerecord (~> 5.1.0)
44
- tiny_tds
45
- activesupport (5.1.6)
46
- concurrent-ruby (~> 1.0, >= 1.0.2)
47
- i18n (>= 0.7, < 2)
48
- minitest (~> 5.1)
49
- tzinfo (~> 1.1)
50
- addressable (2.5.2)
51
- public_suffix (>= 2.0.2, < 4.0)
52
- ai4r (1.13)
53
- arel (8.0.0)
54
- awesome_print (1.8.0)
55
- bitcoin-ruby (0.0.18)
56
- builder (3.2.3)
57
- coderay (1.1.2)
58
- concurrent-ruby (1.1.3)
59
- connection_pool (2.2.1)
60
- crack (0.4.3)
61
- safe_yaml (~> 1.0.0)
62
- crass (1.0.4)
63
- discordrb (3.3.0)
64
- discordrb-webhooks (~> 3.3.0)
65
- ffi (>= 1.9.24)
66
- opus-ruby
67
- rbnacl (~> 3.4.0)
68
- rest-client (>= 2.1.0.rc1)
69
- websocket-client-simple (>= 0.3.0)
70
- discordrb-webhooks (3.3.0)
71
- rest-client (>= 2.1.0.rc1)
72
- docile (1.3.0)
73
- domain_name (0.5.20180417)
74
- unf (>= 0.0.5, < 1.0.0)
75
- erubi (1.7.1)
76
- event_emitter (0.2.6)
77
- ffi (1.9.25)
78
- golos_cloud (1.1.1)
79
- activerecord (>= 4, < 6)
80
- activerecord-sqlserver-adapter (>= 4, < 6)
81
- nokogiri (~> 1.8)
82
- rest-client (~> 2.0)
83
- tiny_tds (~> 1.3)
84
- hashdiff (0.3.7)
85
- hashie (3.6.0)
86
- http-accept (1.7.0)
87
- http-cookie (1.0.3)
88
- domain_name (~> 0.5)
89
- i18n (1.1.1)
90
- concurrent-ruby (~> 1.0)
91
- json (2.1.0)
92
- little-plugger (1.1.4)
93
- logging (2.2.2)
94
- little-plugger (~> 1.1)
95
- multi_json (~> 1.10)
96
- loofah (2.2.3)
97
- crass (~> 1.0.2)
98
- nokogiri (>= 1.5.9)
99
- mechanize (2.7.6)
100
- domain_name (~> 0.5, >= 0.5.1)
101
- http-cookie (~> 1.0)
102
- mime-types (>= 1.17.2)
103
- net-http-digest_auth (~> 1.1, >= 1.1.1)
104
- net-http-persistent (>= 2.5.2)
105
- nokogiri (~> 1.6)
106
- ntlm-http (~> 0.1, >= 0.1.1)
107
- webrobots (>= 0.0.9, < 0.2)
108
- method_source (0.9.0)
109
- mime-types (3.1)
110
- mime-types-data (~> 3.2015)
111
- mime-types-data (3.2016.0521)
112
- mini_portile2 (2.3.0)
113
- minitest (5.11.3)
114
- minitest-line (0.6.5)
115
- minitest (~> 5.0)
116
- minitest-proveit (1.0.0)
117
- minitest (> 5, < 7)
118
- multi_json (1.13.1)
119
- net-http-digest_auth (1.4.1)
120
- net-http-persistent (3.0.0)
121
- connection_pool (~> 2.2)
122
- netrc (0.11.0)
123
- nokogiri (1.8.2)
124
- mini_portile2 (~> 2.3.0)
125
- ntlm-http (0.1.1)
126
- opus-ruby (1.0.1)
127
- ffi
128
- phantomjs (2.1.1.0)
129
- pry (0.11.3)
130
- coderay (~> 1.1.0)
131
- method_source (~> 0.9.0)
132
- public_suffix (3.0.2)
133
- rack (2.0.6)
134
- rack-test (1.1.0)
135
- rack (>= 1.0, < 3)
136
- radiator (0.4.3)
137
- awesome_print (~> 1.7, >= 1.7.0)
138
- bitcoin-ruby (~> 0.0, >= 0.0.11)
139
- ffi (~> 1.9, >= 1.9.18)
140
- hashie (~> 3.5, >= 3.5.5)
141
- json (~> 2.0, >= 2.0.2)
142
- logging (~> 2.2, >= 2.2.0)
143
- net-http-persistent (>= 2.5.2)
144
- rails-dom-testing (2.0.3)
145
- activesupport (>= 4.2.0)
146
- nokogiri (>= 1.6)
147
- rails-html-sanitizer (1.0.4)
148
- loofah (~> 2.2, >= 2.2.2)
149
- railties (5.1.6)
150
- actionpack (= 5.1.6)
151
- activesupport (= 5.1.6)
152
- method_source
153
- rake (>= 0.8.7)
154
- thor (>= 0.18.1, < 2.0)
155
- rake (12.3.1)
156
- rbnacl (3.4.0)
157
- ffi
158
- rdiscount (2.2.0.1)
159
- rest-client (2.1.0.rc1)
160
- http-accept (>= 1.7.0, < 2.0)
161
- http-cookie (>= 1.0.2, < 2.0)
162
- mime-types (>= 1.16, < 4.0)
163
- netrc (~> 0.8)
164
- rmagick (2.16.0)
165
- safe_yaml (1.0.4)
166
- simplecov (0.16.1)
167
- docile (~> 1.1)
168
- json (>= 1.8, < 3)
169
- simplecov-html (~> 0.10.0)
170
- simplecov-html (0.10.2)
171
- steem-slap (0.0.4)
172
- steem_api (1.1.1)
173
- activerecord (>= 4, < 6)
174
- activerecord-sqlserver-adapter (>= 4, < 6)
175
- awesome_print (~> 1.7, >= 1.7.0)
176
- nokogiri (~> 1.8)
177
- rest-client (~> 2.0)
178
- tiny_tds (~> 1.3)
179
- thor (0.20.3)
180
- thread_safe (0.3.6)
181
- tiny_tds (1.3.0)
182
- mini_portile2 (~> 2.0)
183
- tzinfo (1.2.5)
184
- thread_safe (~> 0.1)
185
- unf (0.1.4)
186
- unf_ext
187
- unf_ext (0.0.7.5)
188
- vcr (3.0.3)
189
- webmock (3.4.1)
190
- addressable (>= 2.3.6)
191
- crack (>= 0.3.2)
192
- hashdiff
193
- webrobots (0.1.2)
194
- websocket (1.2.8)
195
- websocket-client-simple (0.3.0)
196
- event_emitter
197
- websocket
198
- wolfram-alpha (0.3.1)
199
- nokogiri
200
- yard (0.9.16)
201
-
202
- PLATFORMS
203
- ruby
204
-
205
- DEPENDENCIES
206
- bundler (~> 1.15, >= 1.15.4)
207
- cosgrove!
208
- mechanize
209
- minitest (~> 5.10, >= 5.10.3)
210
- minitest-line (~> 0.6, >= 0.6.4)
211
- minitest-proveit (~> 1.0, >= 1.0.0)
212
- pry
213
- rake (~> 12.1, >= 12.1.0)
214
- simplecov (~> 0.11, >= 0.11.2)
215
- vcr (~> 3.0, >= 3.0.3)
216
- webmock (~> 3.0, >= 3.0.1)
217
- yard (~> 0.9, >= 0.9.16)
218
-
219
- BUNDLED WITH
220
- 1.16.5