rest-gw2 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGES.md +30 -0
  3. data/README.md +7 -3
  4. data/Rakefile +1 -0
  5. data/TODO.md +26 -0
  6. data/config.ru +6 -0
  7. data/lib/rest-gw2.rb +1 -0
  8. data/lib/rest-gw2/client.rb +249 -110
  9. data/lib/rest-gw2/client/item_detail.rb +80 -0
  10. data/lib/rest-gw2/server.rb +5 -583
  11. data/lib/rest-gw2/server/action.rb +283 -0
  12. data/lib/rest-gw2/server/cache.rb +14 -4
  13. data/lib/rest-gw2/server/imp.rb +270 -0
  14. data/lib/rest-gw2/server/runner.rb +1 -0
  15. data/lib/rest-gw2/server/view.rb +309 -0
  16. data/lib/rest-gw2/{view → server/view}/characters.erb +10 -6
  17. data/lib/rest-gw2/server/view/check_list.erb +10 -0
  18. data/lib/rest-gw2/server/view/check_percentage.erb +9 -0
  19. data/lib/rest-gw2/server/view/commerce.erb +24 -0
  20. data/lib/rest-gw2/{view → server/view}/dyes.erb +7 -7
  21. data/lib/rest-gw2/server/view/error.erb +1 -0
  22. data/lib/rest-gw2/server/view/exchange.erb +29 -0
  23. data/lib/rest-gw2/server/view/guild_info.erb +37 -0
  24. data/lib/rest-gw2/{view → server/view}/index.erb +0 -0
  25. data/lib/rest-gw2/{view → server/view}/info.erb +1 -1
  26. data/lib/rest-gw2/{view → server/view}/item_list.erb +0 -0
  27. data/lib/rest-gw2/{view/items.erb → server/view/item_section.erb} +0 -0
  28. data/lib/rest-gw2/{view → server/view}/item_show.erb +7 -1
  29. data/lib/rest-gw2/server/view/items.erb +8 -0
  30. data/lib/rest-gw2/server/view/items_from.erb +35 -0
  31. data/lib/rest-gw2/{view → server/view}/layout.erb +14 -4
  32. data/lib/rest-gw2/server/view/members.erb +23 -0
  33. data/lib/rest-gw2/server/view/menu.erb +13 -0
  34. data/lib/rest-gw2/server/view/menu_armors.erb +17 -0
  35. data/lib/rest-gw2/server/view/menu_commerce.erb +7 -0
  36. data/lib/rest-gw2/server/view/menu_guild.erb +11 -0
  37. data/lib/rest-gw2/server/view/menu_unlocks.erb +11 -0
  38. data/lib/rest-gw2/{view → server/view}/menu_weapons.erb +2 -1
  39. data/lib/rest-gw2/{view → server/view}/pages.erb +2 -2
  40. data/lib/rest-gw2/{view → server/view}/profile.erb +7 -7
  41. data/lib/rest-gw2/server/view/skins.erb +15 -0
  42. data/lib/rest-gw2/server/view/stash.erb +10 -0
  43. data/lib/rest-gw2/server/view/titles.erb +5 -0
  44. data/lib/rest-gw2/server/view/unlock_percentage.erb +1 -0
  45. data/lib/rest-gw2/server/view/unlocks_items.erb +5 -0
  46. data/lib/rest-gw2/server/view/unlocks_list.erb +3 -0
  47. data/lib/rest-gw2/{view → server/view}/wallet.erb +1 -1
  48. data/lib/rest-gw2/server/view/wip.erb +1 -0
  49. data/lib/rest-gw2/version.rb +2 -1
  50. data/rest-gw2.gemspec +43 -25
  51. data/task/README.md +8 -8
  52. data/task/gemgem.rb +29 -7
  53. metadata +42 -25
  54. data/lib/rest-gw2/view/error.erb +0 -1
  55. data/lib/rest-gw2/view/guild.erb +0 -14
  56. data/lib/rest-gw2/view/items_from.erb +0 -30
  57. data/lib/rest-gw2/view/menu.erb +0 -16
  58. data/lib/rest-gw2/view/menu_armors.erb +0 -11
  59. data/lib/rest-gw2/view/skins.erb +0 -14
  60. data/lib/rest-gw2/view/transactions.erb +0 -28
  61. data/lib/rest-gw2/view/wip.erb +0 -1
@@ -4,16 +4,16 @@
4
4
 
5
5
  Provided tasks:
6
6
 
7
- rake clean # Remove ignored files
7
+ rake clean # Trash ignored files
8
8
  rake gem:build # Build gem
9
9
  rake gem:install # Install gem
10
10
  rake gem:release # Release gem
11
11
  rake gem:spec # Generate gemspec
12
- rake test # Run tests in memory
12
+ rake test # Run tests
13
13
 
14
14
  ## REQUIREMENTS:
15
15
 
16
- * Tested with MRI (official CRuby) 1.9.3, 2.0.0, Rubinius and JRuby.
16
+ * Tested with MRI (official CRuby) and JRuby.
17
17
 
18
18
  ## INSTALLATION:
19
19
 
@@ -23,13 +23,13 @@ And in Rakefile:
23
23
 
24
24
  ``` ruby
25
25
  begin
26
- require "#{dir = File.dirname(__FILE__)}/task/gemgem"
26
+ require "#{__dir__}/task/gemgem"
27
27
  rescue LoadError
28
- sh 'git submodule update --init'
28
+ sh 'git submodule update --init --recursive'
29
29
  exec Gem.ruby, '-S', $PROGRAM_NAME, *ARGV
30
30
  end
31
31
 
32
- Gemgem.init(dir) do |s|
32
+ Gemgem.init(__dir__, :submodules => %w[your-dep]) do |s|
33
33
  s.name = 'your-gem'
34
34
  s.version = '0.1.0'
35
35
  end
@@ -37,9 +37,9 @@ end
37
37
 
38
38
  ## LICENSE:
39
39
 
40
- Apache License 2.0
40
+ Apache License 2.0 (Apache-2.0)
41
41
 
42
- Copyright (c) 2011-2013, Lin Jen-Shin (godfat)
42
+ Copyright (c) 2011-2019, Lin Jen-Shin (godfat)
43
43
 
44
44
  Licensed under the Apache License, Version 2.0 (the "License");
45
45
  you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
 
2
2
  module Gemgem
3
3
  class << self
4
- attr_accessor :dir, :spec, :spec_create
4
+ attr_accessor :dir, :spec, :submodules, :spec_create
5
5
  end
6
6
 
7
7
  module_function
@@ -11,12 +11,14 @@ module Gemgem
11
11
  def pkg_dir ; "#{dir}/pkg" ; end
12
12
  def escaped_dir; @escaped_dir ||= Regexp.escape(dir); end
13
13
 
14
- def init dir, &block
14
+ def init dir, options={}, &block
15
15
  self.dir = dir
16
- $LOAD_PATH.unshift("#{dir}/lib")
17
16
  ENV['RUBYLIB'] = "#{dir}/lib:#{ENV['RUBYLIB']}"
18
17
  ENV['PATH'] = "#{dir}/bin:#{ENV['PATH']}"
18
+ self.submodules = options[:submodules] || []
19
19
  self.spec_create = block
20
+
21
+ $LOAD_PATH.unshift("#{dir}/lib", *submodules_libs)
20
22
  end
21
23
 
22
24
  def create
@@ -26,7 +28,7 @@ module Gemgem
26
28
 
27
29
  s.description = description.join
28
30
  s.summary = description.first
29
- s.license = readme['LICENSE'].sub(/.+\n\n/, '').lines.first.strip
31
+ s.license = license
30
32
 
31
33
  s.date = Time.now.strftime('%Y-%m-%d')
32
34
  s.files = gem_files
@@ -115,6 +117,7 @@ module Gemgem
115
117
  SimpleCov.start do
116
118
  add_filter('test/')
117
119
  add_filter('test.rb')
120
+ submodules_libs.each(&method(:add_filter))
118
121
  end
119
122
  end
120
123
 
@@ -159,11 +162,15 @@ module Gemgem
159
162
  end
160
163
 
161
164
  def strip_home_path path
162
- path.sub(ENV['HOME'], '~')
165
+ path.sub(/\A#{Regexp.escape(ENV['HOME'])}\//, '~/')
163
166
  end
164
167
 
165
168
  def strip_cwd_path path
166
- path.sub(Dir.pwd, '.')
169
+ path.sub(/\A#{Regexp.escape(Dir.pwd)}\//, '')
170
+ end
171
+
172
+ def submodules_libs
173
+ submodules.map{ |path| "#{dir}/#{path}/lib" }
167
174
  end
168
175
 
169
176
  def git *args
@@ -201,6 +208,11 @@ module Gemgem
201
208
  @description ||= (readme['DESCRIPTION']||'').sub(/.+\n\n/, '').lines.to_a
202
209
  end
203
210
 
211
+ def license
212
+ readme['LICENSE'].sub(/.+\n\n/, '').lines.first.
213
+ split(/[()]/).map(&:strip).reject(&:empty?).last
214
+ end
215
+
204
216
  def all_files
205
217
  @all_files ||= fold_files(glob).sort
206
218
  end
@@ -221,7 +233,8 @@ module Gemgem
221
233
 
222
234
  def gem_files
223
235
  @gem_files ||= all_files.reject{ |f|
224
- f =~ ignored_pattern && !git_files.include?(f)
236
+ f =~ submodules_pattern ||
237
+ (f =~ ignored_pattern && !git_files.include?(f))
225
238
  }
226
239
  end
227
240
 
@@ -253,6 +266,15 @@ module Gemgem
253
266
  end
254
267
  end
255
268
 
269
+ def submodules_pattern
270
+ @submodules_pattern ||= if submodules.empty?
271
+ /^$/
272
+ else
273
+ Regexp.new(submodules.map{ |path|
274
+ "^#{Regexp.escape(path)}/" }.join('|'))
275
+ end
276
+ end
277
+
256
278
  def expand_patterns pathes
257
279
  # http://git-scm.com/docs/gitignore
258
280
  pathes.flat_map{ |path|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rest-gw2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lin Jen-Shin (godfat)
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-05 00:00:00.000000000 Z
11
+ date: 2018-12-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-core
@@ -99,7 +99,7 @@ description: |-
99
99
  client built with [rest-core](https://github.com/godfat/rest-core).
100
100
 
101
101
  There's also a bundled web application showing your items, serving as an
102
- example using the client.
102
+ example using the client. There's also a [demo site](https://gw2.godfat.org/)
103
103
  email:
104
104
  - godfat (XD) godfat.org
105
105
  executables:
@@ -113,34 +113,52 @@ files:
113
113
  - LICENSE
114
114
  - README.md
115
115
  - Rakefile
116
+ - TODO.md
116
117
  - bin/rest-gw2
117
118
  - config.ru
118
119
  - lib/rest-gw2.rb
119
120
  - lib/rest-gw2/client.rb
121
+ - lib/rest-gw2/client/item_detail.rb
120
122
  - lib/rest-gw2/server.rb
123
+ - lib/rest-gw2/server/action.rb
121
124
  - lib/rest-gw2/server/cache.rb
125
+ - lib/rest-gw2/server/imp.rb
122
126
  - lib/rest-gw2/server/runner.rb
127
+ - lib/rest-gw2/server/view.rb
128
+ - lib/rest-gw2/server/view/characters.erb
129
+ - lib/rest-gw2/server/view/check_list.erb
130
+ - lib/rest-gw2/server/view/check_percentage.erb
131
+ - lib/rest-gw2/server/view/commerce.erb
132
+ - lib/rest-gw2/server/view/dyes.erb
133
+ - lib/rest-gw2/server/view/error.erb
134
+ - lib/rest-gw2/server/view/exchange.erb
135
+ - lib/rest-gw2/server/view/guild_info.erb
136
+ - lib/rest-gw2/server/view/index.erb
137
+ - lib/rest-gw2/server/view/info.erb
138
+ - lib/rest-gw2/server/view/item_list.erb
139
+ - lib/rest-gw2/server/view/item_section.erb
140
+ - lib/rest-gw2/server/view/item_show.erb
141
+ - lib/rest-gw2/server/view/items.erb
142
+ - lib/rest-gw2/server/view/items_from.erb
143
+ - lib/rest-gw2/server/view/layout.erb
144
+ - lib/rest-gw2/server/view/members.erb
145
+ - lib/rest-gw2/server/view/menu.erb
146
+ - lib/rest-gw2/server/view/menu_armors.erb
147
+ - lib/rest-gw2/server/view/menu_commerce.erb
148
+ - lib/rest-gw2/server/view/menu_guild.erb
149
+ - lib/rest-gw2/server/view/menu_unlocks.erb
150
+ - lib/rest-gw2/server/view/menu_weapons.erb
151
+ - lib/rest-gw2/server/view/pages.erb
152
+ - lib/rest-gw2/server/view/profile.erb
153
+ - lib/rest-gw2/server/view/skins.erb
154
+ - lib/rest-gw2/server/view/stash.erb
155
+ - lib/rest-gw2/server/view/titles.erb
156
+ - lib/rest-gw2/server/view/unlock_percentage.erb
157
+ - lib/rest-gw2/server/view/unlocks_items.erb
158
+ - lib/rest-gw2/server/view/unlocks_list.erb
159
+ - lib/rest-gw2/server/view/wallet.erb
160
+ - lib/rest-gw2/server/view/wip.erb
123
161
  - lib/rest-gw2/version.rb
124
- - lib/rest-gw2/view/characters.erb
125
- - lib/rest-gw2/view/dyes.erb
126
- - lib/rest-gw2/view/error.erb
127
- - lib/rest-gw2/view/guild.erb
128
- - lib/rest-gw2/view/index.erb
129
- - lib/rest-gw2/view/info.erb
130
- - lib/rest-gw2/view/item_list.erb
131
- - lib/rest-gw2/view/item_show.erb
132
- - lib/rest-gw2/view/items.erb
133
- - lib/rest-gw2/view/items_from.erb
134
- - lib/rest-gw2/view/layout.erb
135
- - lib/rest-gw2/view/menu.erb
136
- - lib/rest-gw2/view/menu_armors.erb
137
- - lib/rest-gw2/view/menu_weapons.erb
138
- - lib/rest-gw2/view/pages.erb
139
- - lib/rest-gw2/view/profile.erb
140
- - lib/rest-gw2/view/skins.erb
141
- - lib/rest-gw2/view/transactions.erb
142
- - lib/rest-gw2/view/wallet.erb
143
- - lib/rest-gw2/view/wip.erb
144
162
  - rest-gw2.gemspec
145
163
  - task/README.md
146
164
  - task/gemgem.rb
@@ -163,8 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
163
181
  - !ruby/object:Gem::Version
164
182
  version: '0'
165
183
  requirements: []
166
- rubyforge_project:
167
- rubygems_version: 2.5.2
184
+ rubygems_version: 3.0.1
168
185
  signing_key:
169
186
  specification_version: 4
170
187
  summary: A very simple [Guild Wars 2 API](https://wiki.guildwars2.com/wiki/API:Main)
@@ -1 +0,0 @@
1
- <div class="error">Error: <%= h @error %></div>
@@ -1,14 +0,0 @@
1
- <ul class="menu">
2
- <% @guilds.each do |guild| %>
3
- <li><%= show_guild(guild) %></li>
4
- <% end %>
5
- </ul>
6
-
7
- <% @stash.each do |upgrade| %>
8
- <h2><%= upgrade['name'] %> (<%= price(upgrade['coins'] || 0) %>)</h2>
9
- <%= item_wiki(upgrade) %>
10
- <%= erb :items, upgrade['inventory'] %>
11
- <% end %>
12
-
13
- <h2>Treasury</h2>
14
- <%= erb :items, @treasury %>
@@ -1,30 +0,0 @@
1
- <% if @buy > 0 || @sell > 0 %>
2
- Total: <%= price(@buy) %> / <%= price(@sell) %>
3
- <% end %>
4
-
5
- <div>
6
- <% if @bank.any? %>
7
- <h2><%= menu('/bank', 'Bank') %></h2>
8
- <%= erb :item_list, @bank %>
9
- <% end %>
10
-
11
- <% if @materials.any? %>
12
- <h2><%= menu('/materials', 'Materials') %></h2>
13
- <%= erb :item_list, @materials %>
14
- <% end %>
15
-
16
- <% @chars.each do |name, (equipments, bags)| %>
17
- <% equipments.each do |eq| %>
18
- <h2><%= menu_char(name) %> <%= eq['slot'] %></h2>
19
- <%= erb :item_show, eq %>
20
- <% end %>
21
-
22
- <% if bags.any? %>
23
- <h2><%= menu_char(name) %> Bags</h2>
24
- <% bags.each do |b| %>
25
- <%= erb :item_show, b %>
26
- <%= erb :item_list, b['inventory'] %>
27
- <% end %>
28
- <% end %>
29
- <% end %>
30
- </div>
@@ -1,16 +0,0 @@
1
- <ul class="menu">
2
- <li><%= menu('/', 'Home') %></li>
3
- <li><%= menu('/account', 'Account') %></li>
4
- <li><%= menu('/characters', 'Characters') %></li>
5
- <li><%= menu('/dyes', 'Dyes') %></li>
6
- <li><%= menu_skin('/backpacks', 'Skins') %></li>
7
- <li><%= menu('/minis', 'Minis') %></li>
8
- <li><%= menu('/achievements', 'Achievements') %></li>
9
- <li><%= menu('/bank', 'Bank') %></li>
10
- <li><%= menu('/materials', 'Materials') %></li>
11
- <li><%= menu('/wallet', 'Wallet') %></li>
12
- <li><%= menu('/items', 'All Items (very slow)') %></li>
13
- <li><%= menu_trans('/buying', 'Transactions') %></li>
14
- <li><%= menu('/tokeninfo', 'Info') %></li>
15
- <li><a href="<%= refresh_path %>">Refresh</a></li>
16
- </ul>
@@ -1,11 +0,0 @@
1
- <ul class="menu">
2
- <% jellyfish.class.armors.each do |armor| %>
3
- <li><%= menu_skin("/armors/#{armor.downcase}/#{@weight}", armor) %></li>
4
- <% end %>
5
- </ul>
6
-
7
- <ul class="menu">
8
- <% jellyfish.class.armors_weight.each do |weight| %>
9
- <li><%= menu_skin("/armors/#{@subtype}/#{weight.downcase}", weight) %></li>
10
- <% end %>
11
- </ul>
@@ -1,14 +0,0 @@
1
- <ul class="menu">
2
- <li><%= menu_skin('/backpacks', 'Backpacks') %></li>
3
- <li><%= menu_skin('/weapons/greatsword', 'Weapons') %></li>
4
- <li><%= menu_skin('/armors/helm/light', 'Armors') %></li>
5
- </ul>
6
-
7
- <%= erb @skin_submenu if @skin_submenu %>
8
-
9
- <% if @items.size > 0 %>
10
- Unlocked: <%= @unlocked %> / <%= @items.size %>
11
- (<%= ((@unlocked.to_f/@items.size)*100).to_i %>%)
12
- <% end %>
13
- <br/>
14
- <%= erb :items, @items %>
@@ -1,28 +0,0 @@
1
- <ul class="menu">
2
- <li><%= menu_trans('/buying', 'Buying') %></li>
3
- <li><%= menu_trans('/selling', 'Selling') %></li>
4
- <li><%= menu_trans('/bought', 'Bought') %></li>
5
- <li><%= menu_trans('/sold', 'Sold') %></li>
6
- </ul>
7
-
8
- <%= erb :pages %>
9
-
10
- Total: <%= price(@total) %>
11
- <ul class="item">
12
- <% @trans.each do |trans| %>
13
- <li>
14
- <%= item_wiki(trans) %>
15
- <span class="description">
16
- <%= item_link(trans) %>
17
- <%= h item_count(trans) %>
18
- <br/>
19
- <%= price(trans['price']) %>
20
- <%= abbr_time_ago(trans['purchased'] || trans['created']) %>
21
- <br/>
22
- <%= item_price(trans) %>
23
- </span>
24
- </li>
25
- <% end %>
26
- </ul>
27
-
28
- <%= erb :pages %>
@@ -1 +0,0 @@
1
- <%= @message || 'Under construction...' %>