cosgrove 0.0.4.0pre2 → 0.0.4.0pre3

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
  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