scb 0.0.1

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.
@@ -0,0 +1,53 @@
1
+ # encoding: utf-8
2
+
3
+ require_relative '../spec_helper'
4
+
5
+ describe SCB::DB do
6
+ subject { SCB::DB }
7
+
8
+ let(:db) { subject.new(api) }
9
+ let(:api) { api_with_test_config(SCB::API.new) }
10
+ let(:data) { parsed_fixture('sv/ssd') }
11
+ let(:table) { db.table('baz') }
12
+ let(:level) { db.level('foo', 'bar') }
13
+
14
+ let(:expected_uri) {
15
+ URI.parse "http://api.test/name/v0/lang/db/"
16
+ }
17
+
18
+ describe "levels" do
19
+ it "returns the top levels for the database" do
20
+ db.stub(:data, data) do
21
+ db.levels[4].text.
22
+ must_equal "Jord- och skogsbruk, fiske"
23
+ end
24
+ end
25
+ end
26
+
27
+ describe "level" do
28
+ it "returns a level" do
29
+ level.class.must_equal subject::Level
30
+ end
31
+
32
+ it "has the correct name and text" do
33
+ level.name.must_equal "foo"
34
+ level.text.must_equal "bar"
35
+ end
36
+ end
37
+
38
+ describe "table" do
39
+ it "returns a table" do
40
+ table.class.must_equal subject::Table
41
+ end
42
+
43
+ it "has the correct name" do
44
+ table.name.must_equal "baz"
45
+ end
46
+ end
47
+
48
+ describe "uri" do
49
+ it "returns the correct uri of the database" do
50
+ db.uri.must_equal expected_uri
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,20 @@
1
+ # encoding: utf-8
2
+
3
+ require_relative '../spec_helper'
4
+
5
+ describe SCB::HTTP do
6
+ subject { SCB::HTTP }
7
+
8
+ describe "headers" do
9
+ it "must set a custom user-agent" do
10
+ expected_ua = "RubyGem: scb (#{SCB::VERSION})"
11
+ subject::HEADERS['User-Agent'].must_equal expected_ua
12
+ end
13
+ end
14
+
15
+ describe "Exception" do
16
+ it "must be a RuntimeError" do
17
+ subject::Exception.new.must_be_kind_of RuntimeError
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,11 @@
1
+ # encoding: utf-8
2
+
3
+ require_relative '../spec_helper'
4
+
5
+ describe SCB::VERSION do
6
+ subject { SCB::VERSION }
7
+
8
+ it "returns a version string" do
9
+ subject.must_match(/^\d+\.\d+\.\d+$/)
10
+ end
11
+ end
@@ -0,0 +1,59 @@
1
+ # encoding: utf-8
2
+
3
+ require_relative 'spec_helper'
4
+
5
+ describe SCB do
6
+ subject { SCB }
7
+
8
+ let(:api) { api_with_test_config(SCB::API.new) }
9
+ let(:level) { subject.level('foo', 'bar', api) }
10
+ let(:table) { subject.table('baz', api) }
11
+
12
+ describe "api" do
13
+ it "returns a configured api client" do
14
+ api.config.api_host.must_equal "api.test"
15
+ end
16
+
17
+ it "does not memoize the api client" do
18
+ subject.api.object_id.wont_equal subject.api.object_id
19
+ end
20
+
21
+ it "can configure the api" do
22
+ api.config.database.must_equal 'db'
23
+
24
+ configured_api = subject.api { |c| c.database = 'foo' }
25
+ configured_api.config.database.must_equal 'foo'
26
+ end
27
+ end
28
+
29
+ describe "db" do
30
+ it "returns a db instance" do
31
+ subject.db.class.must_equal subject::DB
32
+ end
33
+
34
+ it "memoizes the db" do
35
+ subject.db.object_id.must_equal subject.db.object_id
36
+ end
37
+ end
38
+
39
+ describe "level" do
40
+ it "returns a level" do
41
+ level.class.must_equal subject::DB::Level
42
+ end
43
+
44
+ it "has the correct name and text" do
45
+ level.name.must_equal "foo"
46
+ level.text.must_equal "bar"
47
+ end
48
+ end
49
+
50
+ describe "table" do
51
+ it "returns a table" do
52
+ table.class.must_equal subject::DB::Table
53
+ end
54
+
55
+ it "has the correct name" do
56
+ table.name.must_equal "baz"
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,52 @@
1
+ # encoding: utf-8
2
+
3
+ require "minitest/spec"
4
+ require "minitest/pride"
5
+ require "minitest/autorun"
6
+
7
+ require_relative "../lib/scb"
8
+
9
+ $loaded_fixtures = {}
10
+ $parsed_fixtures = {}
11
+
12
+ def s(*args)
13
+ subject.new(*args)
14
+ end
15
+
16
+ def fixture(name)
17
+ $loaded_fixtures[name] ||= IO.read("spec/fixtures/#{name}.json")
18
+ end
19
+
20
+ def parsed_fixture(name)
21
+ $parsed_fixtures[name] ||= JSON.parse(fixture(name))
22
+ end
23
+
24
+ def api_with_test_config(api)
25
+ test_configuration!(api.config)
26
+
27
+ api
28
+ end
29
+
30
+ def test_configuration!(c)
31
+ c.api_host = 'api.test'
32
+ c.api_name = 'name'
33
+ c.api_version = 'v0'
34
+ c.language = 'lang'
35
+ c.database = 'db'
36
+ end
37
+
38
+ class SCB::HTTP::FakeResponse
39
+ attr_reader :body
40
+
41
+ def initialize(body = nil)
42
+ @body = body
43
+ end
44
+ end
45
+
46
+ def fake_response(body)
47
+ SCB::HTTP::FakeResponse.new(body)
48
+ end
49
+
50
+ def fixture_response(name)
51
+ fake_response(fixture(name))
52
+ end
metadata ADDED
@@ -0,0 +1,147 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: scb
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Peter Hellberg
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-04-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: minitest
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '4.7'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '4.7'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description:
70
+ email:
71
+ - peter@c7.se
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - .gitignore
77
+ - .travis.yml
78
+ - Gemfile
79
+ - LICENSE.txt
80
+ - README.md
81
+ - Rakefile
82
+ - lib/scb.rb
83
+ - lib/scb/api.rb
84
+ - lib/scb/api/config.rb
85
+ - lib/scb/db.rb
86
+ - lib/scb/db/level.rb
87
+ - lib/scb/db/table.rb
88
+ - lib/scb/db/variable.rb
89
+ - lib/scb/http.rb
90
+ - lib/scb/version.rb
91
+ - scb.gemspec
92
+ - spec/fixtures/sv.json
93
+ - spec/fixtures/sv/ssd.json
94
+ - spec/fixtures/sv/ssd/BO.json
95
+ - spec/fixtures/sv/ssd/BO/BO0102.json
96
+ - spec/fixtures/sv/ssd/BO/BO0102/LagenhetOmbAkBpAtAr.json
97
+ - spec/scb/api/config_spec.rb
98
+ - spec/scb/api_spec.rb
99
+ - spec/scb/db/level_spec.rb
100
+ - spec/scb/db/table_spec.rb
101
+ - spec/scb/db/variable_spec.rb
102
+ - spec/scb/db_spec.rb
103
+ - spec/scb/http_spec.rb
104
+ - spec/scb/version_spec.rb
105
+ - spec/scb_spec.rb
106
+ - spec/spec_helper.rb
107
+ homepage: https://github.com/peterhellberg/scb
108
+ licenses:
109
+ - MIT
110
+ metadata: {}
111
+ post_install_message:
112
+ rdoc_options: []
113
+ require_paths:
114
+ - lib
115
+ required_ruby_version: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - '>='
118
+ - !ruby/object:Gem::Version
119
+ version: 1.9.3
120
+ required_rubygems_version: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ requirements: []
126
+ rubyforge_project:
127
+ rubygems_version: 2.0.3
128
+ signing_key:
129
+ specification_version: 4
130
+ summary: A small API client for the SCB API.
131
+ test_files:
132
+ - spec/fixtures/sv.json
133
+ - spec/fixtures/sv/ssd.json
134
+ - spec/fixtures/sv/ssd/BO.json
135
+ - spec/fixtures/sv/ssd/BO/BO0102.json
136
+ - spec/fixtures/sv/ssd/BO/BO0102/LagenhetOmbAkBpAtAr.json
137
+ - spec/scb/api/config_spec.rb
138
+ - spec/scb/api_spec.rb
139
+ - spec/scb/db/level_spec.rb
140
+ - spec/scb/db/table_spec.rb
141
+ - spec/scb/db/variable_spec.rb
142
+ - spec/scb/db_spec.rb
143
+ - spec/scb/http_spec.rb
144
+ - spec/scb/version_spec.rb
145
+ - spec/scb_spec.rb
146
+ - spec/spec_helper.rb
147
+ has_rdoc: