togostanza 2.1.1 → 2.2.2

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
- SHA1:
3
- metadata.gz: 3ed521c80421e670146190ee2dc76f21892a276c
4
- data.tar.gz: ac17011321f4687ce34769ec0326c1409c1fd943
2
+ SHA256:
3
+ metadata.gz: bf722b9085f88b0a7424bcaac13ce4081aaa500bc5dc47d14340bce047f94d5b
4
+ data.tar.gz: 29281c56272fb78bd3890c979059e611469f67521900b396b6ab682b16f6942e
5
5
  SHA512:
6
- metadata.gz: 023bb275b5958afe4d3da43d0774264fc64b7c351f51fd37f88ccf2c59568059c846e6a346bae93a3eade712b938104a50ae36c8fdb966993997061e60d0f1eb
7
- data.tar.gz: 310b33f4d2e9ed33b763d0bd71e81d7eae67f7d1543151df5dd680a3ce9b921709baa59f82f743fb622c5b176aa541371fa44d820fd23203a5a703d41e1a61e8
6
+ metadata.gz: a8be169ab78bf527c6aecfbcf1456071c0813cedcebcdcd971b512300e887d3bd7589f23f0d14d6b42375a6207d0404c7a26f4f57f212044f0562bee9dae4bf0
7
+ data.tar.gz: 4f935735930e994f4c8ecda4e8052d23b3c7e963658726d70c457b7475e06187f952e08f11a724fd6eb95524f191075ba2baf1d3c86eab7a42cd60cb9d75c178
data/.travis.yml CHANGED
@@ -2,14 +2,15 @@ language: ruby
2
2
  cache: bundler
3
3
 
4
4
  rvm:
5
- - 1.9.3
6
- - 2.0.0
7
- - 2.1.0
5
+ - 2.5
6
+ - 2.6
7
+ - 2.7
8
8
 
9
9
  gemfile:
10
- - gemfiles/activesupport_3.x.gemfile
11
- - gemfiles/activesupport_4.x.gemfile
10
+ - gemfiles/activesupport_5.x.gemfile
11
+ - gemfiles/activesupport_6.x.gemfile
12
12
 
13
+ before_install: gem update bundler
13
14
  bundler_args: --without production
14
15
 
15
16
  notifications:
data/Appraisals CHANGED
@@ -1,7 +1,7 @@
1
- appraise 'activesupport-3.x' do
2
- gem 'activesupport', '~> 3.0'
1
+ appraise 'activesupport-5.x' do
2
+ gem 'activesupport', '~> 5.0'
3
3
  end
4
4
 
5
- appraise 'activesupport-4.x' do
6
- gem 'activesupport', '~> 4.0'
5
+ appraise 'activesupport-6.x' do
6
+ gem 'activesupport', '~> 6.0'
7
7
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "activesupport", "~> 3.0"
5
+ gem "activesupport", "~> 5.0"
6
6
 
7
- gemspec :path=>"../"
7
+ gemspec path: "../"
@@ -0,0 +1,137 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ togostanza (2.1.3)
5
+ activesupport (>= 5)
6
+ flavour_saver
7
+ haml
8
+ hashie
9
+ parallel
10
+ sinatra
11
+ sinatra-contrib
12
+ sparql-client
13
+ sprockets (~> 3.4)
14
+ thor
15
+
16
+ GEM
17
+ remote: https://rubygems.org/
18
+ specs:
19
+ activesupport (5.2.4.1)
20
+ concurrent-ruby (~> 1.0, >= 1.0.2)
21
+ i18n (>= 0.7, < 2)
22
+ minitest (~> 5.1)
23
+ tzinfo (~> 1.1)
24
+ addressable (2.7.0)
25
+ public_suffix (>= 2.0.2, < 5.0)
26
+ appraisal (2.2.0)
27
+ bundler
28
+ rake
29
+ thor (>= 0.14.0)
30
+ backports (3.15.0)
31
+ capybara (3.30.0)
32
+ addressable
33
+ mini_mime (>= 0.1.3)
34
+ nokogiri (~> 1.8)
35
+ rack (>= 1.6.0)
36
+ rack-test (>= 0.6.3)
37
+ regexp_parser (~> 1.5)
38
+ xpath (~> 3.2)
39
+ concurrent-ruby (1.1.5)
40
+ connection_pool (2.2.2)
41
+ diff-lcs (1.3)
42
+ ffi (1.12.1)
43
+ flavour_saver (0.3.9)
44
+ rltk (~> 2.2.0)
45
+ tilt
46
+ haml (5.1.2)
47
+ temple (>= 0.8.0)
48
+ tilt
49
+ hamster (3.0.0)
50
+ concurrent-ruby (~> 1.0)
51
+ hashie (4.0.0)
52
+ i18n (1.8.2)
53
+ concurrent-ruby (~> 1.0)
54
+ link_header (0.0.8)
55
+ mini_mime (1.0.2)
56
+ mini_portile2 (2.4.0)
57
+ minitest (5.14.0)
58
+ multi_json (1.14.1)
59
+ mustermann (1.1.1)
60
+ ruby2_keywords (~> 0.0.1)
61
+ net-http-persistent (3.1.0)
62
+ connection_pool (~> 2.2)
63
+ nokogiri (1.10.7)
64
+ mini_portile2 (~> 2.4.0)
65
+ parallel (1.19.1)
66
+ public_suffix (4.0.3)
67
+ rack (2.1.1)
68
+ rack-protection (2.0.8.1)
69
+ rack
70
+ rack-test (1.1.0)
71
+ rack (>= 1.0, < 3)
72
+ rake (13.0.1)
73
+ rdf (3.1.1)
74
+ hamster (~> 3.0)
75
+ link_header (~> 0.0, >= 0.0.8)
76
+ regexp_parser (1.6.0)
77
+ rltk (2.2.1)
78
+ ffi (>= 1.0.0)
79
+ rspec (3.9.0)
80
+ rspec-core (~> 3.9.0)
81
+ rspec-expectations (~> 3.9.0)
82
+ rspec-mocks (~> 3.9.0)
83
+ rspec-core (3.9.1)
84
+ rspec-support (~> 3.9.1)
85
+ rspec-expectations (3.9.0)
86
+ diff-lcs (>= 1.2.0, < 2.0)
87
+ rspec-support (~> 3.9.0)
88
+ rspec-its (1.3.0)
89
+ rspec-core (>= 3.0.0)
90
+ rspec-expectations (>= 3.0.0)
91
+ rspec-mocks (3.9.1)
92
+ diff-lcs (>= 1.2.0, < 2.0)
93
+ rspec-support (~> 3.9.0)
94
+ rspec-support (3.9.2)
95
+ ruby2_keywords (0.0.2)
96
+ sinatra (2.0.8.1)
97
+ mustermann (~> 1.0)
98
+ rack (~> 2.0)
99
+ rack-protection (= 2.0.8.1)
100
+ tilt (~> 2.0)
101
+ sinatra-contrib (2.0.8.1)
102
+ backports (>= 2.8.2)
103
+ multi_json
104
+ mustermann (~> 1.0)
105
+ rack-protection (= 2.0.8.1)
106
+ sinatra (= 2.0.8.1)
107
+ tilt (~> 2.0)
108
+ sparql-client (3.1.0)
109
+ net-http-persistent (~> 3.1)
110
+ rdf (~> 3.1)
111
+ sprockets (3.7.2)
112
+ concurrent-ruby (~> 1.0)
113
+ rack (> 1, < 3)
114
+ temple (0.8.2)
115
+ thor (1.0.1)
116
+ thread_safe (0.3.6)
117
+ tilt (2.0.10)
118
+ tzinfo (1.2.6)
119
+ thread_safe (~> 0.1)
120
+ xpath (3.2.0)
121
+ nokogiri (~> 1.8)
122
+
123
+ PLATFORMS
124
+ ruby
125
+
126
+ DEPENDENCIES
127
+ activesupport (~> 5.0)
128
+ appraisal
129
+ bundler
130
+ capybara
131
+ rake
132
+ rspec
133
+ rspec-its
134
+ togostanza!
135
+
136
+ BUNDLED WITH
137
+ 2.1.2
@@ -2,6 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "activesupport", "~> 4.0"
5
+ gem "activesupport", "~> 6.0"
6
6
 
7
- gemspec :path=>"../"
7
+ gemspec path: "../"
@@ -0,0 +1,139 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ togostanza (2.1.3)
5
+ activesupport (>= 5)
6
+ flavour_saver
7
+ haml
8
+ hashie
9
+ parallel
10
+ sinatra
11
+ sinatra-contrib
12
+ sparql-client
13
+ sprockets (~> 3.4)
14
+ thor
15
+
16
+ GEM
17
+ remote: https://rubygems.org/
18
+ specs:
19
+ activesupport (6.0.2.1)
20
+ concurrent-ruby (~> 1.0, >= 1.0.2)
21
+ i18n (>= 0.7, < 2)
22
+ minitest (~> 5.1)
23
+ tzinfo (~> 1.1)
24
+ zeitwerk (~> 2.2)
25
+ addressable (2.7.0)
26
+ public_suffix (>= 2.0.2, < 5.0)
27
+ appraisal (2.2.0)
28
+ bundler
29
+ rake
30
+ thor (>= 0.14.0)
31
+ backports (3.15.0)
32
+ capybara (3.30.0)
33
+ addressable
34
+ mini_mime (>= 0.1.3)
35
+ nokogiri (~> 1.8)
36
+ rack (>= 1.6.0)
37
+ rack-test (>= 0.6.3)
38
+ regexp_parser (~> 1.5)
39
+ xpath (~> 3.2)
40
+ concurrent-ruby (1.1.5)
41
+ connection_pool (2.2.2)
42
+ diff-lcs (1.3)
43
+ ffi (1.12.1)
44
+ flavour_saver (0.3.9)
45
+ rltk (~> 2.2.0)
46
+ tilt
47
+ haml (5.1.2)
48
+ temple (>= 0.8.0)
49
+ tilt
50
+ hamster (3.0.0)
51
+ concurrent-ruby (~> 1.0)
52
+ hashie (4.0.0)
53
+ i18n (1.8.2)
54
+ concurrent-ruby (~> 1.0)
55
+ link_header (0.0.8)
56
+ mini_mime (1.0.2)
57
+ mini_portile2 (2.4.0)
58
+ minitest (5.14.0)
59
+ multi_json (1.14.1)
60
+ mustermann (1.1.1)
61
+ ruby2_keywords (~> 0.0.1)
62
+ net-http-persistent (3.1.0)
63
+ connection_pool (~> 2.2)
64
+ nokogiri (1.10.7)
65
+ mini_portile2 (~> 2.4.0)
66
+ parallel (1.19.1)
67
+ public_suffix (4.0.3)
68
+ rack (2.1.1)
69
+ rack-protection (2.0.8.1)
70
+ rack
71
+ rack-test (1.1.0)
72
+ rack (>= 1.0, < 3)
73
+ rake (13.0.1)
74
+ rdf (3.1.1)
75
+ hamster (~> 3.0)
76
+ link_header (~> 0.0, >= 0.0.8)
77
+ regexp_parser (1.6.0)
78
+ rltk (2.2.1)
79
+ ffi (>= 1.0.0)
80
+ rspec (3.9.0)
81
+ rspec-core (~> 3.9.0)
82
+ rspec-expectations (~> 3.9.0)
83
+ rspec-mocks (~> 3.9.0)
84
+ rspec-core (3.9.1)
85
+ rspec-support (~> 3.9.1)
86
+ rspec-expectations (3.9.0)
87
+ diff-lcs (>= 1.2.0, < 2.0)
88
+ rspec-support (~> 3.9.0)
89
+ rspec-its (1.3.0)
90
+ rspec-core (>= 3.0.0)
91
+ rspec-expectations (>= 3.0.0)
92
+ rspec-mocks (3.9.1)
93
+ diff-lcs (>= 1.2.0, < 2.0)
94
+ rspec-support (~> 3.9.0)
95
+ rspec-support (3.9.2)
96
+ ruby2_keywords (0.0.2)
97
+ sinatra (2.0.8.1)
98
+ mustermann (~> 1.0)
99
+ rack (~> 2.0)
100
+ rack-protection (= 2.0.8.1)
101
+ tilt (~> 2.0)
102
+ sinatra-contrib (2.0.8.1)
103
+ backports (>= 2.8.2)
104
+ multi_json
105
+ mustermann (~> 1.0)
106
+ rack-protection (= 2.0.8.1)
107
+ sinatra (= 2.0.8.1)
108
+ tilt (~> 2.0)
109
+ sparql-client (3.1.0)
110
+ net-http-persistent (~> 3.1)
111
+ rdf (~> 3.1)
112
+ sprockets (3.7.2)
113
+ concurrent-ruby (~> 1.0)
114
+ rack (> 1, < 3)
115
+ temple (0.8.2)
116
+ thor (1.0.1)
117
+ thread_safe (0.3.6)
118
+ tilt (2.0.10)
119
+ tzinfo (1.2.6)
120
+ thread_safe (~> 0.1)
121
+ xpath (3.2.0)
122
+ nokogiri (~> 1.8)
123
+ zeitwerk (2.2.2)
124
+
125
+ PLATFORMS
126
+ ruby
127
+
128
+ DEPENDENCIES
129
+ activesupport (~> 6.0)
130
+ appraisal
131
+ bundler
132
+ capybara
133
+ rake
134
+ rspec
135
+ rspec-its
136
+ togostanza!
137
+
138
+ BUNDLED WITH
139
+ 2.1.2
@@ -140,7 +140,6 @@ module TogoStanza
140
140
  def replace_description
141
141
  name1_chopped = chop_slash(name1)
142
142
  name2_chopped = chop_slash(name2)
143
-
144
143
  gsub_file("#{files_name(name1_chopped)}/#{files_name(name1_chopped)}.gemspec", files_name(name1_chopped), files_name(name2_chopped))
145
144
  gsub_file("#{files_name(name1_chopped)}/lib/#{files_name(name1_chopped)}.rb", classes_name(name1_chopped), classes_name(name2_chopped))
146
145
 
@@ -198,6 +197,59 @@ module TogoStanza
198
197
  end
199
198
  end
200
199
 
200
+ class GenspecUpdater < Thor::Group
201
+ include Thor::Actions
202
+ include Thor::Shell
203
+
204
+ argument :name, type: :string
205
+
206
+ def self.source_root
207
+ File.expand_path('../../../templates/stanza', __FILE__)
208
+ end
209
+
210
+ def check_exist
211
+ unless File.exist?("#{file_name}")
212
+ say("This provider doesn't have #{file_name}")
213
+ exit
214
+ end
215
+ unless File.exist?("#{file_name}/metadata.json")
216
+ template 'metadata.json.erb', "#{file_name}/metadata.json"
217
+ say("metadata.json has just made.")
218
+ end
219
+ end
220
+
221
+ def replace_description
222
+ unless File.read("#{file_name}/#{file_name}.gemspec").include?("require\s'json'")
223
+ insert_into_file("#{file_name}/#{file_name}.gemspec", "\nrequire\s'json'\n", :after=>"$LOAD_PATH.unshift(lib)\sunless\s$LOAD_PATH.include?(lib)\n")
224
+ insert_into_file("#{file_name}/#{file_name}.gemspec", "metadata\s=\sopen('./metadata.json')\sdo\s|io|\n", :after=>"\nrequire\s'json'\n")
225
+ insert_into_file("#{file_name}/#{file_name}.gemspec", "\s\sJSON.load\(io\)\nend\n", :after=>"metadata\s=\sopen('./metadata.json')\sdo\s|io|\n")
226
+ end
227
+ gsub_file("#{file_name}/#{file_name}.gemspec", /spec\.authors.*\n/, "spec.authors = Array(metadata['author'])\n")
228
+ gsub_file("#{file_name}/#{file_name}.gemspec", /spec\.email.*\n/, "spec.email = Array(metadata['address'])\n")
229
+ gsub_file("#{file_name}/#{file_name}.gemspec", /spec\.summary.*\n/, "spec.summary = metadata['label']\n")
230
+ gsub_file("#{file_name}/#{file_name}.gemspec", /spec\.description.*\n/, "spec.description = metadata['definition']\n")
231
+ gsub_file("#{file_name}/#{file_name}.gemspec", /spec\.license.*\n/, "spec.license = metadata['license']\n")
232
+ end
233
+
234
+ private
235
+
236
+ def chop_slash
237
+ if name[-1] == '/'
238
+ name.chop
239
+ else
240
+ name
241
+ end
242
+ end
243
+
244
+ def stanza_id
245
+ chop_slash.underscore.sub(/_stanza$/, '')
246
+ end
247
+
248
+ def file_name
249
+ stanza_id + '_stanza'
250
+ end
251
+ end
252
+
201
253
  class NameRegister < Thor::Group
202
254
  include Thor::Actions
203
255
 
@@ -238,6 +290,10 @@ module TogoStanza
238
290
  register StanzaRemover, 'remove', 'remove NAME', 'Remove the stanza'
239
291
  end
240
292
 
293
+ class Stanza < Thor
294
+ register GenspecUpdater, 'genspec_update', 'genspec_update NAME', 'Update genspec format for togostanza ver 2.0.0'
295
+ end
296
+
241
297
  class Root < Thor
242
298
  register NameRegister, 'name' , 'name NAME' , 'register your name'
243
299
  end
@@ -15,7 +15,7 @@ FS.register_helper :download_csv do
15
15
  <<-HTML.strip_heredoc.html_safe
16
16
  <script>$(function() {
17
17
  #{init_download_script}
18
- $("div#stanza_buttons").append("<a id='download_csv' href='#'><i class='fa fa-file-o'></i> CSV</a>");
18
+ $("div#stanza_buttons").append("<a id='download_csv' download='stanza.csv' href='#'><i class='fa fa-file-o'></i> CSV</a>");
19
19
 
20
20
  var csv = '';
21
21
  var tables = $('body > table');
@@ -51,10 +51,9 @@ FS.register_helper :download_csv do
51
51
  }
52
52
  }
53
53
 
54
- $("#download_csv").on("click",function(){
55
- window.open('data:text/plain;' + (window.btoa?'base64,'+btoa(csv):csv));
54
+ document.querySelector('#download_csv').addEventListener('click', (e) => {
55
+ e.target.href = 'data:text/plain;charset=UTF-8' + (window.btoa ? ';base64,' + btoa(csv) : ',' + csv);
56
56
  });
57
-
58
57
  });
59
58
  </script>
60
59
  HTML
@@ -66,11 +65,11 @@ FS.register_helper :download_json do
66
65
  <<-HTML.strip_heredoc.html_safe
67
66
  <script>$(function() {
68
67
  #{init_download_script}
69
- $("div#stanza_buttons").append("<a id='download_json' href='#'><i class='fa fa-file-o'></i> JSON</a>");
70
- var json_str = JSON.stringify(#{json}, "", "\t");
68
+ $("div#stanza_buttons").append("<a id='download_json' download='stanza.json' href='#'><i class='fa fa-file-o'></i> JSON</a>");
69
+ var json_str = JSON.stringify(#{json}, null, '\t');
71
70
 
72
- $("#download_json").on("click",function(){
73
- window.open('data:application/json;' + (window.btoa?'base64,'+btoa(json_str):json_str));
71
+ document.querySelector('#download_json').addEventListener('click', (e) => {
72
+ e.target.href = 'data:application/json;charset=UTF-8' + (window.btoa ? ';base64,' + btoa(json_str) : ',' + json_str);
74
73
  });
75
74
  });
76
75
  </script>
@@ -81,9 +80,9 @@ FS.register_helper :download_svg do
81
80
  <<-HTML.strip_heredoc.html_safe
82
81
  <script>$(function() {
83
82
  #{init_download_script}
84
- $("div#stanza_buttons").append("<a id='download_svg' href='#'><i class='fa fa-file-o'></i> SVG</a>");
83
+ $("div#stanza_buttons").append("<a id='download_svg' download='stanza.svg' href='#'><i class='fa fa-file-o'></i> SVG</a>");
85
84
 
86
- $("#download_svg").on("click",function(){
85
+ document.querySelector('#download_svg').addEventListener('click', (e) => {
87
86
  var svg = $("svg");
88
87
  if (svg[0]) {
89
88
  if (!svg.attr("xmlns")) {
@@ -94,13 +93,12 @@ FS.register_helper :download_svg do
94
93
  }
95
94
 
96
95
  var svgText = svg.wrap('<div>').parent().html();
97
- window.open('data:image/svg+xml;' + (window.btoa?'base64,'+btoa(svgText):svgText));
96
+ e.target.href = 'data:image/svg+xml' + (window.btoa ? ';base64,' + btoa(svgText) : ',' + svgText);
98
97
  } else {
99
98
  // TODO...
100
99
  console.log("Can't open svg file");
101
100
  }
102
101
  });
103
-
104
102
  });
105
103
  </script>
106
104
  HTML
@@ -116,30 +114,29 @@ FS.register_helper :download_image do
116
114
 
117
115
  <script>$(function() {
118
116
  #{init_download_script}
119
- $("div#stanza_buttons").append("<a id='download_image' href='#'><i class='fa fa-file-o'></i> IMAGE</a>");
117
+ $("div#stanza_buttons").append("<a id='download_image' download='stanza.png' href='#'><i class='fa fa-file-o'></i> IMAGE</a>");
120
118
 
121
119
  $("body").append("<div style='display: none;'><canvas id='drawarea'></canvas></div>");
122
120
 
123
- $("#download_image").on("click",function(){
121
+ document.querySelector('#download_image').addEventListener('click', (e) => {
124
122
  var svg = $("svg");
125
123
  if (svg[0]) {
126
124
  var svgText = svg.wrap('<div>').parent().html();
127
- canvg('drawarea', svgText, {renderCallback: function(){
125
+ canvg('drawarea', svgText, {
126
+ renderCallback: function() {
128
127
  var canvas = $("#drawarea")[0];
129
128
 
130
129
  canvas.toBlob(function(blob) {
131
130
  var blob_url = window.URL.createObjectURL(blob);
132
- window.open(blob_url);
131
+ e.target.href = blob_url;
133
132
  }, "image/png");
134
133
  }
135
134
  });
136
-
137
135
  } else {
138
136
  // TODO...
139
137
  console.log("Can't open image file");
140
138
  }
141
139
  });
142
-
143
140
  });
144
141
  </script>
145
142
  HTML
@@ -158,13 +155,6 @@ module TogoStanza::Stanza
158
155
  autoload :Grouping, 'togostanza/stanza/grouping'
159
156
  autoload :Querying, 'togostanza/stanza/querying'
160
157
 
161
- class Context < Hashie::Mash
162
- def respond_to_missing?(*)
163
- # XXX It looks ugly, but we need use not pre-defined properties
164
- true
165
- end
166
- end
167
-
168
158
  class Base
169
159
  extend ExpressionMap::Macro
170
160
  include Querying
@@ -200,7 +190,7 @@ module TogoStanza::Stanza
200
190
  attr_reader :params
201
191
 
202
192
  def context
203
- Context.new(properties.resolve_all_in_parallel(self, params))
193
+ Hashie::Mash.new(properties.resolve_all_in_parallel(self, params))
204
194
  end
205
195
 
206
196
  def resource(name)
@@ -221,6 +211,9 @@ module TogoStanza::Stanza
221
211
  stanza_uri = "#{server_url}/#{orig['id']}"
222
212
 
223
213
  usage_attrs = orig['parameter'].map {|hash|
214
+ unless hash['key'].start_with?("data-stanza-") then
215
+ hash['key'] = "data-stanza-" << hash['key']
216
+ end
224
217
  "#{hash['key']}=\"#{hash['example']}\""
225
218
  }.push("data-stanza=\"#{stanza_uri}\"").join(' ')
226
219
 
@@ -7,7 +7,7 @@ module TogoStanza::Stanza
7
7
  togogenome: 'http://togogenome.org/sparql'
8
8
  }
9
9
 
10
- def query(endpoint, text_or_filename)
10
+ def query(endpoint, text_or_filename, **options)
11
11
  path = File.join(root, 'sparql', text_or_filename)
12
12
 
13
13
  if File.exist?(path)
@@ -15,15 +15,15 @@ module TogoStanza::Stanza
15
15
  text_or_filename = Tilt.new(path).render(data)
16
16
  end
17
17
 
18
- client = SPARQL::Client.new(MAPPINGS[endpoint] || endpoint, :method => "get")
18
+ client = SPARQL::Client.new(MAPPINGS[endpoint] || endpoint, method: 'get')
19
19
 
20
- #Rails.logger.debug "SPARQL QUERY: \n#{sparql}"
21
-
22
- client.query(text_or_filename).map {|binding|
20
+ result = client.query(text_or_filename, **{content_type: 'application/sparql-results+json'}.merge(options)).map {|binding|
23
21
  binding.each_with_object({}) {|(name, term), hash|
24
22
  hash[name] = term.to_s
25
23
  }
26
24
  }
25
+ client.close
26
+ result
27
27
  end
28
28
  end
29
29
  end
@@ -1,3 +1,3 @@
1
1
  module TogoStanza
2
- VERSION = '2.1.1'
2
+ VERSION = '2.2.2'
3
3
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe 'API' do
3
+ describe 'API', type: :feature do
4
4
  it 'should return properties as JSON' do
5
5
  visit '/foo.json?name=nsgc'
6
6
 
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe 'Help' do
3
+ describe 'Help', type: :feature do
4
4
  it 'should display FooStanza help' do
5
5
  visit '/foo/help'
6
6
  page.should have_css('h1', text: 'Foo')
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe 'Listing' do
3
+ describe 'Listing', type: :feature do
4
4
  before do
5
5
  visit '/'
6
6
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe 'Metadata' do
3
+ describe 'Metadata', type: :feature do
4
4
  describe '/metadata.json' do
5
5
  before do
6
6
  # 実行順により base_spec で作られた Classオブジェクトが返って来て意図通りのテストにならないため
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe 'Rendering' do
3
+ describe 'Rendering', type: :feature do
4
4
  it 'should render FooStanza correctly' do
5
5
  visit '/foo'
6
6
  page.should have_content('hello from foo')
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe 'Resource' do
3
+ describe 'Resource', type: :feature do
4
4
  before do
5
5
  visit '/foo/resources/foo_resource'
6
6
  end
data/spec/spec_helper.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  ENV['RACK_ENV'] ||= 'test'
2
2
 
3
3
  require 'rspec/its'
4
- require 'capybara'
4
+ require 'capybara/rspec'
5
5
 
6
6
  require_relative 'dummy/app'
7
7
 
@@ -14,8 +14,6 @@ RSpec.configure do |config|
14
14
  config.filter_run :focus
15
15
 
16
16
  config.order = 'random'
17
-
18
- config.include Capybara::DSL
19
17
  end
20
18
 
21
19
  Capybara.app = DummyApp
@@ -9,12 +9,12 @@ end
9
9
  Gem::Specification.new do |spec|
10
10
  spec.name = '<%= file_name %>'
11
11
  spec.version = '0.0.1'
12
- spec.authors = Array(metadata["stanza:author"])
13
- spec.email = Array(metadata["stanza:address"])
14
- spec.summary = metadata["stanza:label"]
15
- spec.description = metadata["stanza:definition"]
12
+ spec.authors = Array(metadata["author"])
13
+ spec.email = Array(metadata["address"])
14
+ spec.summary = metadata["label"]
15
+ spec.description = metadata["definition"]
16
16
  spec.homepage = ''
17
- spec.license = metadata["stanza:license"]
17
+ spec.license = metadata["license"]
18
18
 
19
19
  spec.files = Dir.glob('**/*')
20
20
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
data/togostanza.gemspec CHANGED
@@ -16,23 +16,23 @@ Gem::Specification.new do |spec|
16
16
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
17
17
  spec.require_paths = ['lib']
18
18
 
19
- spec.add_runtime_dependency 'activesupport', '~> 4.2'
20
- spec.add_runtime_dependency 'flavour_saver', '~> 0.3'
21
- spec.add_runtime_dependency 'haml', '~> 4.0'
22
- spec.add_runtime_dependency 'hashie', '~> 3.4'
23
- spec.add_runtime_dependency 'parallel', '~> 1.6'
24
- spec.add_runtime_dependency 'sinatra', '~> 1.4'
25
- spec.add_runtime_dependency 'sinatra-contrib', '~> 1.4'
26
- spec.add_runtime_dependency 'sparql-client', '~> 1.1'
19
+ spec.add_runtime_dependency 'activesupport', '>= 5'
20
+ spec.add_runtime_dependency 'flavour_saver'
21
+ spec.add_runtime_dependency 'haml'
22
+ spec.add_runtime_dependency 'hashie'
23
+ spec.add_runtime_dependency 'parallel'
24
+ spec.add_runtime_dependency 'sinatra'
25
+ spec.add_runtime_dependency 'sinatra-contrib'
26
+ spec.add_runtime_dependency 'sparql-client'
27
27
  spec.add_runtime_dependency 'sprockets', '~> 3.4'
28
- spec.add_runtime_dependency 'thor', '~> 0.19'
28
+ spec.add_runtime_dependency 'thor'
29
29
 
30
- spec.add_development_dependency 'appraisal', '~> 0.5'
31
- spec.add_development_dependency 'bundler', '~> 1.10'
32
- spec.add_development_dependency 'capybara', '~> 2.2'
33
- spec.add_development_dependency 'rake', '~> 0.9'
34
- spec.add_development_dependency 'rspec', '~> 3.3'
35
- spec.add_development_dependency 'rspec-its', '~> 1.2'
30
+ spec.add_development_dependency 'appraisal'
31
+ spec.add_development_dependency 'bundler'
32
+ spec.add_development_dependency 'capybara'
33
+ spec.add_development_dependency 'rake'
34
+ spec.add_development_dependency 'rspec'
35
+ spec.add_development_dependency 'rspec-its'
36
36
 
37
- spec.required_ruby_version = '>= 1.9.3'
37
+ spec.required_ruby_version = '>= 2.5.0'
38
38
  end
metadata CHANGED
@@ -1,127 +1,127 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: togostanza
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Keita Urashima
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-16 00:00:00.000000000 Z
11
+ date: 2021-02-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '4.2'
19
+ version: '5'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '4.2'
26
+ version: '5'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: flavour_saver
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '0.3'
33
+ version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '0.3'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: haml
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '4.0'
47
+ version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '4.0'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: hashie
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '3.4'
61
+ version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '3.4'
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: parallel
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '1.6'
75
+ version: '0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: '1.6'
82
+ version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: sinatra
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '1.4'
89
+ version: '0'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: '1.4'
96
+ version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: sinatra-contrib
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "~>"
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: '1.4'
103
+ version: '0'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - "~>"
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: '1.4'
110
+ version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: sparql-client
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - "~>"
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: '1.1'
117
+ version: '0'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - "~>"
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
- version: '1.1'
124
+ version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: sprockets
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -140,100 +140,100 @@ dependencies:
140
140
  name: thor
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - "~>"
143
+ - - ">="
144
144
  - !ruby/object:Gem::Version
145
- version: '0.19'
145
+ version: '0'
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - "~>"
150
+ - - ">="
151
151
  - !ruby/object:Gem::Version
152
- version: '0.19'
152
+ version: '0'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: appraisal
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - "~>"
157
+ - - ">="
158
158
  - !ruby/object:Gem::Version
159
- version: '0.5'
159
+ version: '0'
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - "~>"
164
+ - - ">="
165
165
  - !ruby/object:Gem::Version
166
- version: '0.5'
166
+ version: '0'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: bundler
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - "~>"
171
+ - - ">="
172
172
  - !ruby/object:Gem::Version
173
- version: '1.10'
173
+ version: '0'
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - "~>"
178
+ - - ">="
179
179
  - !ruby/object:Gem::Version
180
- version: '1.10'
180
+ version: '0'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: capybara
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
- - - "~>"
185
+ - - ">="
186
186
  - !ruby/object:Gem::Version
187
- version: '2.2'
187
+ version: '0'
188
188
  type: :development
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
- - - "~>"
192
+ - - ">="
193
193
  - !ruby/object:Gem::Version
194
- version: '2.2'
194
+ version: '0'
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: rake
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
- - - "~>"
199
+ - - ">="
200
200
  - !ruby/object:Gem::Version
201
- version: '0.9'
201
+ version: '0'
202
202
  type: :development
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
- - - "~>"
206
+ - - ">="
207
207
  - !ruby/object:Gem::Version
208
- version: '0.9'
208
+ version: '0'
209
209
  - !ruby/object:Gem::Dependency
210
210
  name: rspec
211
211
  requirement: !ruby/object:Gem::Requirement
212
212
  requirements:
213
- - - "~>"
213
+ - - ">="
214
214
  - !ruby/object:Gem::Version
215
- version: '3.3'
215
+ version: '0'
216
216
  type: :development
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
- - - "~>"
220
+ - - ">="
221
221
  - !ruby/object:Gem::Version
222
- version: '3.3'
222
+ version: '0'
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: rspec-its
225
225
  requirement: !ruby/object:Gem::Requirement
226
226
  requirements:
227
- - - "~>"
227
+ - - ">="
228
228
  - !ruby/object:Gem::Version
229
- version: '1.2'
229
+ version: '0'
230
230
  type: :development
231
231
  prerelease: false
232
232
  version_requirements: !ruby/object:Gem::Requirement
233
233
  requirements:
234
- - - "~>"
234
+ - - ">="
235
235
  - !ruby/object:Gem::Version
236
- version: '1.2'
236
+ version: '0'
237
237
  description:
238
238
  email:
239
239
  - ursm@esm.co.jp
@@ -258,10 +258,10 @@ files:
258
258
  - assets/stanza.css
259
259
  - assets/stanza.js
260
260
  - bin/togostanza
261
- - gemfiles/activesupport_3.x.gemfile
262
- - gemfiles/activesupport_3.x.gemfile.lock
263
- - gemfiles/activesupport_4.x.gemfile
264
- - gemfiles/activesupport_4.x.gemfile.lock
261
+ - gemfiles/activesupport_5.x.gemfile
262
+ - gemfiles/activesupport_5.x.gemfile.lock
263
+ - gemfiles/activesupport_6.x.gemfile
264
+ - gemfiles/activesupport_6.x.gemfile.lock
265
265
  - lib/togostanza.rb
266
266
  - lib/togostanza/application.rb
267
267
  - lib/togostanza/cli.rb
@@ -318,15 +318,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
318
318
  requirements:
319
319
  - - ">="
320
320
  - !ruby/object:Gem::Version
321
- version: 1.9.3
321
+ version: 2.5.0
322
322
  required_rubygems_version: !ruby/object:Gem::Requirement
323
323
  requirements:
324
324
  - - ">="
325
325
  - !ruby/object:Gem::Version
326
326
  version: '0'
327
327
  requirements: []
328
- rubyforge_project:
329
- rubygems_version: 2.5.1
328
+ rubygems_version: 3.1.2
330
329
  signing_key:
331
330
  specification_version: 4
332
331
  summary: Development tools of TogoStanza
@@ -351,4 +350,3 @@ test_files:
351
350
  - spec/lib/togostanza/stanza/base_spec.rb
352
351
  - spec/lib/togostanza/stanza/grouping_spec.rb
353
352
  - spec/spec_helper.rb
354
- has_rdoc:
@@ -1,104 +0,0 @@
1
- PATH
2
- remote: ../
3
- specs:
4
- togostanza (1.0.3)
5
- activesupport
6
- flavour_saver
7
- haml
8
- hashie
9
- parallel
10
- redcarpet
11
- sinatra
12
- sinatra-contrib
13
- sparql-client
14
- sprockets
15
- thor
16
-
17
- GEM
18
- remote: https://rubygems.org/
19
- specs:
20
- activesupport (3.2.13)
21
- i18n (= 0.6.1)
22
- multi_json (~> 1.0)
23
- appraisal (0.5.2)
24
- bundler
25
- rake
26
- backports (3.6.0)
27
- capybara (2.1.0)
28
- mime-types (>= 1.16)
29
- nokogiri (>= 1.3.3)
30
- rack (>= 1.0.0)
31
- rack-test (>= 0.5.4)
32
- xpath (~> 2.0)
33
- diff-lcs (1.2.4)
34
- ffi (1.9.3)
35
- flavour_saver (0.3.1)
36
- rltk (~> 2.2.0)
37
- tilt
38
- haml (4.0.5)
39
- tilt
40
- hashie (2.0.5)
41
- hike (1.2.3)
42
- i18n (0.6.1)
43
- json (1.8.1)
44
- mime-types (1.25)
45
- mini_portile (0.5.1)
46
- multi_json (1.7.7)
47
- net-http-persistent (2.9.4)
48
- nokogiri (1.6.0)
49
- mini_portile (~> 0.5.0)
50
- parallel (0.9.2)
51
- rack (1.5.2)
52
- rack-protection (1.5.2)
53
- rack
54
- rack-test (0.6.2)
55
- rack (>= 1.0)
56
- rake (10.1.0)
57
- rdf (1.1.2.1)
58
- redcarpet (3.1.0)
59
- rltk (2.2.1)
60
- ffi (>= 1.0.0)
61
- rspec (2.14.1)
62
- rspec-core (~> 2.14.0)
63
- rspec-expectations (~> 2.14.0)
64
- rspec-mocks (~> 2.14.0)
65
- rspec-core (2.14.4)
66
- rspec-expectations (2.14.0)
67
- diff-lcs (>= 1.1.3, < 2.0)
68
- rspec-mocks (2.14.1)
69
- sinatra (1.4.4)
70
- rack (~> 1.4)
71
- rack-protection (~> 1.4)
72
- tilt (~> 1.3, >= 1.3.4)
73
- sinatra-contrib (1.4.2)
74
- backports (>= 2.0)
75
- multi_json
76
- rack-protection
77
- rack-test
78
- sinatra (~> 1.4.0)
79
- tilt (~> 1.3)
80
- sparql-client (1.1.1)
81
- json (>= 1.8)
82
- net-http-persistent (>= 1.4)
83
- rdf (>= 1.1)
84
- sprockets (2.10.1)
85
- hike (~> 1.2)
86
- multi_json (~> 1.0)
87
- rack (~> 1.0)
88
- tilt (~> 1.1, != 1.3.0)
89
- thor (0.18.1)
90
- tilt (1.4.1)
91
- xpath (2.0.0)
92
- nokogiri (~> 1.3)
93
-
94
- PLATFORMS
95
- ruby
96
-
97
- DEPENDENCIES
98
- activesupport (~> 3.0)
99
- appraisal
100
- bundler
101
- capybara
102
- rake
103
- rspec
104
- togostanza!
@@ -1,112 +0,0 @@
1
- PATH
2
- remote: ../
3
- specs:
4
- togostanza (1.0.3)
5
- activesupport
6
- flavour_saver
7
- haml
8
- hashie
9
- parallel
10
- redcarpet
11
- sinatra
12
- sinatra-contrib
13
- sparql-client
14
- sprockets
15
- thor
16
-
17
- GEM
18
- remote: https://rubygems.org/
19
- specs:
20
- activesupport (4.0.0)
21
- i18n (~> 0.6, >= 0.6.4)
22
- minitest (~> 4.2)
23
- multi_json (~> 1.3)
24
- thread_safe (~> 0.1)
25
- tzinfo (~> 0.3.37)
26
- appraisal (0.5.2)
27
- bundler
28
- rake
29
- atomic (1.1.10)
30
- backports (3.6.0)
31
- capybara (2.1.0)
32
- mime-types (>= 1.16)
33
- nokogiri (>= 1.3.3)
34
- rack (>= 1.0.0)
35
- rack-test (>= 0.5.4)
36
- xpath (~> 2.0)
37
- diff-lcs (1.2.4)
38
- ffi (1.9.3)
39
- flavour_saver (0.3.1)
40
- rltk (~> 2.2.0)
41
- tilt
42
- haml (4.0.5)
43
- tilt
44
- hashie (2.0.5)
45
- hike (1.2.3)
46
- i18n (0.6.4)
47
- json (1.8.1)
48
- mime-types (1.25)
49
- mini_portile (0.5.1)
50
- minitest (4.7.5)
51
- multi_json (1.7.7)
52
- net-http-persistent (2.9.4)
53
- nokogiri (1.6.0)
54
- mini_portile (~> 0.5.0)
55
- parallel (0.9.2)
56
- rack (1.5.2)
57
- rack-protection (1.5.2)
58
- rack
59
- rack-test (0.6.2)
60
- rack (>= 1.0)
61
- rake (10.1.0)
62
- rdf (1.1.2.1)
63
- redcarpet (3.1.0)
64
- rltk (2.2.1)
65
- ffi (>= 1.0.0)
66
- rspec (2.14.1)
67
- rspec-core (~> 2.14.0)
68
- rspec-expectations (~> 2.14.0)
69
- rspec-mocks (~> 2.14.0)
70
- rspec-core (2.14.4)
71
- rspec-expectations (2.14.0)
72
- diff-lcs (>= 1.1.3, < 2.0)
73
- rspec-mocks (2.14.1)
74
- sinatra (1.4.4)
75
- rack (~> 1.4)
76
- rack-protection (~> 1.4)
77
- tilt (~> 1.3, >= 1.3.4)
78
- sinatra-contrib (1.4.2)
79
- backports (>= 2.0)
80
- multi_json
81
- rack-protection
82
- rack-test
83
- sinatra (~> 1.4.0)
84
- tilt (~> 1.3)
85
- sparql-client (1.1.1)
86
- json (>= 1.8)
87
- net-http-persistent (>= 1.4)
88
- rdf (>= 1.1)
89
- sprockets (2.10.1)
90
- hike (~> 1.2)
91
- multi_json (~> 1.0)
92
- rack (~> 1.0)
93
- tilt (~> 1.1, != 1.3.0)
94
- thor (0.18.1)
95
- thread_safe (0.1.2)
96
- atomic
97
- tilt (1.4.1)
98
- tzinfo (0.3.37)
99
- xpath (2.0.0)
100
- nokogiri (~> 1.3)
101
-
102
- PLATFORMS
103
- ruby
104
-
105
- DEPENDENCIES
106
- activesupport (~> 4.0)
107
- appraisal
108
- bundler
109
- capybara
110
- rake
111
- rspec
112
- togostanza!