storexplore 0.2.1 → 0.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4cb24de391c52ca88ee68c6cfd3115a987ca7a49
4
- data.tar.gz: a913ff3660f8dd1b1a8cff1b953b2711351b1a80
3
+ metadata.gz: 62ed201012136d3411fcb8d36033e956cbd257ee
4
+ data.tar.gz: 5cabaaaf2165ec4513fa74114114328ac219b019
5
5
  SHA512:
6
- metadata.gz: b18f30d0fdbfdbdff89709ecc99494129a62dbd86939e4dbc7ab91015c9f1639d07103d3957158552af04a0798ddf40b7f36a6e4dc1edca705814b06e29d9f9a
7
- data.tar.gz: a01ee0a7c52ac52e3c006ccb6f4bcaa0c90e254c9fae06cba36cd8c92350845b7f9a7c1c909bd4aaf8d52dc3c5ce4c7019c954106f17d481c7b1b4c3623d91b3
6
+ metadata.gz: bc4456ffb7df629729938ddd041491682758f8d14c1d31f396e7d5a4971da9c9d989c0a8d9d84bd8069b7a8a0b29c9acbc9c99cd8b97ec1935adfbaa216f9536
7
+ data.tar.gz: b0cf18167eb27abee8ff815dae79e10f82904c085dec9ceb4ca1e3b99a42f01226f0c84f638b364bfac2588f077ae7fb9f29a9a6d702052279493225ed3cd71d
checksums.yaml.gz.sig CHANGED
@@ -1,2 +1,2 @@
1
- Am@NV�+���$7�D�L���,�|rx����`�@�=)��+b�@J�b��-e�+h_��7n����v���]. ��z��ۻ8RHx*MB+`�1FQ����V�c��
2
- O���;���;gÜ�Q�5�\?���W��� ZQ!��� q`0��� �� �`%�L^|�&���_@{1S���5%�1N�˵�X������"gF�Ea��t���%�vQ���VzQ#�3���������)�?f�*Y
1
+ g�`��[����o}�r�e��&�<�zX����XiZ����\}L�K������R����e��O,oR��%��ag ���ϸy(��ߏ �>c����z�
2
+ i���R���h@ I��d.��O��k^��Zo6ʚ ���ի�
data/.travis.yml CHANGED
@@ -1,8 +1,9 @@
1
1
  language: ruby
2
2
  rvm:
3
+ - 2.1.1
3
4
  - 2.0.0
4
- # no lazy for enumerators in jruby 2.0
5
- # - jruby-20mode
6
- # no rubynius working at the moment
7
- # - rbx-20mode
8
- script: bundle exec rake
5
+ script: bundle exec rake
6
+
7
+ addons:
8
+ code_climate:
9
+ repo_token: ca5035ef4dc8a3a37fd5968a9845b8713cd84b01638035625fa0acffaa238c84
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ [![Build Status](https://travis-ci.org/philou/storexplore.svg?branch=master)](https://travis-ci.org/philou/storexplore) [![Test Coverage](https://codeclimate.com/github/philou/storexplore/badges/coverage.svg)](https://codeclimate.com/github/philou/storexplore) [![Code Climate](https://codeclimate.com/github/philou/storexplore/badges/gpa.svg)](https://codeclimate.com/github/philou/storexplore)
2
+
1
3
  # Storexplore
2
4
 
3
5
  A declarative scrapping DSL that lets one define directory like apis to an online store
@@ -19,18 +19,22 @@
19
19
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
20
  # MA 02110-1301 USA
21
21
 
22
+ require 'timeout'
23
+
22
24
  module Storexplore
23
25
  module Testing
24
26
 
25
27
  shared_context "a scrapped store" do
26
28
 
27
29
  before :all do
28
- @range = 0..1
30
+ Timeout::timeout(Testing.config.explore_store_items_timeout) do
31
+ @range = 0..1
29
32
 
30
- expect(self).to(respond_to(:generate_store), "You should implement generate_store to include the scrapped store shared context")
33
+ expect(self).to(respond_to(:generate_store), "You should implement generate_store to include the scrapped store shared context")
31
34
 
32
- self.store = generate_store
33
- explore_store
35
+ self.store = generate_store
36
+ explore_store
37
+ end
34
38
  end
35
39
 
36
40
  def explore_store
@@ -51,8 +55,10 @@ module Storexplore
51
55
 
52
56
  def dig_deep(categories)
53
57
  all_categories = [categories]
58
+ items = []
54
59
 
55
- while (items = dig(categories, :items)).empty?
60
+ while not categories.empty? and items.empty?
61
+ items = dig(categories, :items)
56
62
  categories = dig(categories, :categories)
57
63
  all_categories << categories
58
64
  end
@@ -39,6 +39,7 @@ module Storexplore
39
39
  def initialize
40
40
  @logger = Logger.new(STDOUT)
41
41
  @logger.level = Logger::INFO
42
+ @explore_store_items_timeout = 5*60
42
43
  end
43
44
 
44
45
  # Sets the generation directory where the dummy stores will be generated.
@@ -61,6 +62,10 @@ module Storexplore
61
62
  # info level.
62
63
  attr_accessor :logger
63
64
 
65
+ # Timeout for a the initial test exploration of the items of a store. By default,
66
+ # 5 minutes
67
+ attr_accessor :explore_store_items_timeout
68
+
64
69
  end
65
70
  end
66
71
  end
@@ -20,5 +20,5 @@
20
20
  # MA 02110-1301 USA
21
21
 
22
22
  module Storexplore
23
- VERSION = "0.2.1"
23
+ VERSION = "0.3.0"
24
24
  end
data/spec/spec_helper.rb CHANGED
@@ -19,7 +19,11 @@
19
19
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
20
  # MA 02110-1301 USA
21
21
 
22
+ require 'codeclimate-test-reporter'
23
+ CodeClimate::TestReporter.start
24
+
22
25
  require 'fakeweb'
26
+ require 'rspec/collection_matchers'
23
27
  require 'spec_combos'
24
28
  require 'storexplore'
25
29
  require 'storexplore/testing'
@@ -30,9 +34,12 @@ Storexplore::Testing.config do |config|
30
34
  end
31
35
 
32
36
  # Clean up fakeweb registry after every test
33
- FakeWeb.allow_net_connect = false
34
37
  RSpec.configure do |config|
38
+ config.before :each do
39
+ FakeWeb.allow_net_connect = false
40
+ end
35
41
  config.after(:each) do
36
42
  FakeWeb.clean_registry
43
+ FakeWeb.allow_net_connect = true
37
44
  end
38
45
  end
data/storexplore.gemspec CHANGED
@@ -20,9 +20,11 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_dependency "mechanize", "~> 2.0"
22
22
 
23
- spec.add_development_dependency "bundler", "~> 1.3"
24
- spec.add_development_dependency "rake", "~> 10.1"
25
- spec.add_development_dependency "guard-rspec", "~> 4.0"
26
- spec.add_development_dependency "spec_combos", "~> 0.2"
27
- spec.add_development_dependency "fakeweb", "~> 1.3"
23
+ spec.add_development_dependency "bundler"
24
+ spec.add_development_dependency "rake"
25
+ spec.add_development_dependency "guard-rspec"
26
+ spec.add_development_dependency "spec_combos"
27
+ spec.add_development_dependency "fakeweb"
28
+ spec.add_development_dependency "rspec-collection_matchers"
29
+ spec.add_development_dependency "codeclimate-test-reporter"
28
30
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: storexplore
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Philou
@@ -10,9 +10,9 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDkjCCAnqgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMRkwFwYDVQQDDBBwaGls
13
+ MIIDQjCCAiqgAwIBAgIBAjANBgkqhkiG9w0BAQUFADBHMRkwFwYDVQQDDBBwaGls
14
14
  aXBwZS5ib3VyZ2F1MRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJk/Is
15
- ZAEZFgNjb20wHhcNMTMwOTIzMTEwOTA3WhcNMTQwOTIzMTEwOTA3WjBHMRkwFwYD
15
+ ZAEZFgNjb20wHhcNMTQxMTA0MDUwNTA4WhcNMTUxMTA0MDUwNTA4WjBHMRkwFwYD
16
16
  VQQDDBBwaGlsaXBwZS5ib3VyZ2F1MRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzAR
17
17
  BgoJkiaJk/IsZAEZFgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
18
18
  AQC8CpoqZwEbzXr55EUxdSplgn0MYZ9xPGO/XmRa8bD63n+JYWF0AS+mj452ZY18
@@ -20,18 +20,16 @@ cert_chain:
20
20
  qGp0Jw1HfPNUMVa+3pXZyAGCecN6rTnsZJIuW6KNaJUq6lEMVXanoTHgAKrH5aHd
21
21
  Y6ofwQL86d6LDkC1S4p86iMUWvF34w8h5ItVo+JKlPRR22rzsK/ZKgNH3lfjbS6i
22
22
  JWqPva70rL2xz5kCVn6DL7XhNZtqnAO4kvCQyQeWezvcoGXEnbHacKky7B+/WKec
23
- OIWEwedl6j+X0OD5OYki3QaTAgMBAAGjgYgwgYUwCQYDVR0TBAIwADALBgNVHQ8E
24
- BAMCBLAwHQYDVR0OBBYEFJnLz40Onu/dfpLSipU5FgTy6WLmMCUGA1UdEQQeMByB
25
- GnBoaWxpcHBlLmJvdXJnYXVAZ21haWwuY29tMCUGA1UdEgQeMByBGnBoaWxpcHBl
26
- LmJvdXJnYXVAZ21haWwuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQBGoH72KWYACGZl
27
- cMHMJ9d/DRU7rynJ8c4xuuM4c3Ri8bGPqI/a1BAp4QPJApS4+ANXXJ220hslrekP
28
- 9/ExEKFiqiywh1clih9ttuN4cHqJzCP6QHqJznQrvaYToZLxGARDf3Mwz4mFSh4W
29
- snSep53DZ1vrY2Gzmig/4PuBF4q3nhwPgxV6H3SH4/Py7QF5COZPQlCdBwPYczqW
30
- XxIbXhRVXcgjBHT0w2HsXkOwmmYvBzbrfqtTx5NswwHcIeQZB/NID7berIf9awx3
31
- yLcl1cmm5ALtJ/+Bkkmp0i4amXeTDMvq9r8PBsVsQwxYOYJBP+Umxz3PX6HjFHrQ
32
- XdkXx3oZ
23
+ OIWEwedl6j+X0OD5OYki3QaTAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQD
24
+ AgSwMB0GA1UdDgQWBBSZy8+NDp7v3X6S0oqVORYE8uli5jANBgkqhkiG9w0BAQUF
25
+ AAOCAQEAjTpuKjUclY0kNioKIcwD9nEkAwxeGiMNrY2zc7FfabSVhNKa0GafjHiz
26
+ 6STN4S4j03wgmD8YMnA6uqQBSCgb3mcySr9sfglxub4sC9c3Ma+A3G7JEE+KPeLE
27
+ gcVYqRPSgVV5naFYaFu4HK0o8ZY8smY30BM3uFmW3cQ9cTKNtaqgUQ177fMmXuYa
28
+ QOTMg5o5t1YFdpg/RwQNoUX5DyAC8gWJY8vlVJbiIKvvB0z4+o7d5nEuuE3jvKQr
29
+ LKjGZUoe+A3/FKYHWLPZAArCXrXLhpjAfopLBNmOAju0e30ObcjPQDWcj7z5jfJl
30
+ ILiFgo6hdHrp/tFaDv14PiMRm6sZaQ==
33
31
  -----END CERTIFICATE-----
34
- date: 2014-01-23 00:00:00.000000000 Z
32
+ date: 2014-11-04 00:00:00.000000000 Z
35
33
  dependencies:
36
34
  - !ruby/object:Gem::Dependency
37
35
  name: mechanize
@@ -51,72 +49,100 @@ dependencies:
51
49
  name: bundler
52
50
  requirement: !ruby/object:Gem::Requirement
53
51
  requirements:
54
- - - ~>
52
+ - - '>='
55
53
  - !ruby/object:Gem::Version
56
- version: '1.3'
54
+ version: '0'
57
55
  type: :development
58
56
  prerelease: false
59
57
  version_requirements: !ruby/object:Gem::Requirement
60
58
  requirements:
61
- - - ~>
59
+ - - '>='
62
60
  - !ruby/object:Gem::Version
63
- version: '1.3'
61
+ version: '0'
64
62
  - !ruby/object:Gem::Dependency
65
63
  name: rake
66
64
  requirement: !ruby/object:Gem::Requirement
67
65
  requirements:
68
- - - ~>
66
+ - - '>='
69
67
  - !ruby/object:Gem::Version
70
- version: '10.1'
68
+ version: '0'
71
69
  type: :development
72
70
  prerelease: false
73
71
  version_requirements: !ruby/object:Gem::Requirement
74
72
  requirements:
75
- - - ~>
73
+ - - '>='
76
74
  - !ruby/object:Gem::Version
77
- version: '10.1'
75
+ version: '0'
78
76
  - !ruby/object:Gem::Dependency
79
77
  name: guard-rspec
80
78
  requirement: !ruby/object:Gem::Requirement
81
79
  requirements:
82
- - - ~>
80
+ - - '>='
83
81
  - !ruby/object:Gem::Version
84
- version: '4.0'
82
+ version: '0'
85
83
  type: :development
86
84
  prerelease: false
87
85
  version_requirements: !ruby/object:Gem::Requirement
88
86
  requirements:
89
- - - ~>
87
+ - - '>='
90
88
  - !ruby/object:Gem::Version
91
- version: '4.0'
89
+ version: '0'
92
90
  - !ruby/object:Gem::Dependency
93
91
  name: spec_combos
94
92
  requirement: !ruby/object:Gem::Requirement
95
93
  requirements:
96
- - - ~>
94
+ - - '>='
97
95
  - !ruby/object:Gem::Version
98
- version: '0.2'
96
+ version: '0'
99
97
  type: :development
100
98
  prerelease: false
101
99
  version_requirements: !ruby/object:Gem::Requirement
102
100
  requirements:
103
- - - ~>
101
+ - - '>='
104
102
  - !ruby/object:Gem::Version
105
- version: '0.2'
103
+ version: '0'
106
104
  - !ruby/object:Gem::Dependency
107
105
  name: fakeweb
108
106
  requirement: !ruby/object:Gem::Requirement
109
107
  requirements:
110
- - - ~>
108
+ - - '>='
111
109
  - !ruby/object:Gem::Version
112
- version: '1.3'
110
+ version: '0'
113
111
  type: :development
114
112
  prerelease: false
115
113
  version_requirements: !ruby/object:Gem::Requirement
116
114
  requirements:
117
- - - ~>
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ - !ruby/object:Gem::Dependency
119
+ name: rspec-collection_matchers
120
+ requirement: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ type: :development
126
+ prerelease: false
127
+ version_requirements: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ - !ruby/object:Gem::Dependency
133
+ name: codeclimate-test-reporter
134
+ requirement: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ type: :development
140
+ prerelease: false
141
+ version_requirements: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '>='
118
144
  - !ruby/object:Gem::Version
119
- version: '1.3'
145
+ version: '0'
120
146
  description: A declarative scrapping DSL that lets one define directory like apis
121
147
  to an online store
122
148
  email:
metadata.gz.sig CHANGED
Binary file