rest-gw2 0.4.0 → 0.5.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.
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...' %>