slacker 1.0.1 → 1.0.2

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.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- slacker (1.0.1)
4
+ slacker (1.0.2)
5
5
  bundler (~> 1.0.15)
6
6
  rspec (~> 2.5.0)
7
7
  ruby-odbc (= 0.99994)
data/README.markdown CHANGED
@@ -34,7 +34,7 @@ If all is good, you should see something like this:
34
34
  .....
35
35
 
36
36
  Finished in 0.05222 seconds
37
- 7 examples, 0 failures
37
+ 5 examples, 0 failures
38
38
 
39
39
  Next, check out sample file `my_project\spec\sample_1.rb` to see the BDD specification you just executed.
40
40
 
@@ -1,3 +1,3 @@
1
1
  module Slacker
2
- VERSION = "1.0.1"
2
+ VERSION = "1.0.2"
3
3
  end
@@ -1,3 +1,3 @@
1
1
  "p","s"
2
- "10","42"
3
- "34","66"
2
+ 2,34
3
+ 12,44
@@ -4,8 +4,7 @@ describe 'My database' do
4
4
  it 'contains system tables' do
5
5
  # Select all system objects in the database.
6
6
  # We should have at least one of those.
7
- query_result = query("select * from sysobjects where xtype = 'S';")
8
- query_result.count.should > 0
7
+ query("select * from sysobjects where xtype = 'S';").count.should > 0
9
8
  end
10
9
 
11
10
  # The same query, this time using a SQL template.
@@ -18,9 +17,7 @@ describe 'My database' do
18
17
  # For example, the file sysobjects.sql.erb is located in "sql/sample_1/",
19
18
  # so it is accessible like this:
20
19
  # sql.sample_1.sysobjects
21
-
22
- query_result = sql.sample_1.sysobjects
23
- query_result.count.should > 0
20
+ sql.sample_1.sysobjects.count.should > 0
24
21
  end
25
22
 
26
23
  # This time we'll use a parameterized template.
@@ -28,22 +25,7 @@ describe 'My database' do
28
25
  it 'contains system tables (take three)' do
29
26
  # You can pass a hash to any SQL template - this hash becomes available to the
30
27
  # template through the "options" object - see file sql/sample_1/sysobject_with_params.sql.erb as an example.
31
- query_result = sql.sample_1.sysobjects_with_params(:xtype => 'S')
32
- query_result.count.should > 0
33
- end
34
-
35
- # Let's create a table and count our user objects which match this table name.
36
- # Every "it" (example) is executed in a transaction which is rolled back once the example is complete.
37
- # This ensures that every example starts at the same state of the database as any other example in the spec.
38
- # No example can ever interfere witht the results of another example.
39
- it 'contains a user table when one is created' do
40
- # Use inline query to create the table
41
- query('create table MyTable(id int, name varchar(100));')
42
-
43
- # Now lookup the table by type and name using a more elaborate dynamic SQL template.
44
- # See template sql/sample_1/sysobject_with_params_2.sql.erb
45
- query_result = sql.sample_1.sysobjects_with_params_2(:xtype => 'U', :name => 'MyTable')
46
- query_result.count.should == 1
28
+ sql.sample_1.sysobjects_with_params(:xtype => 'S').count.should > 0
47
29
  end
48
30
 
49
31
  # SQL Templates can contain multiple statements and can return multiple resultsets.
@@ -53,37 +35,29 @@ describe 'My database' do
53
35
  # from within the block through the "results" object.
54
36
  sql.sample_1.play_with_numbers(:x => 2, :y => 12) do |results|
55
37
  # The results object contains an array of all the resultsets generated by the query script.
56
- first_resultset = results[0]
57
-
58
38
  # A resultset contains an array of records.
59
39
  # Each record is a hash of field => value pairs.
60
- first_resultset[0][:product].should == 24
40
+ results[0][0][:product].should == 24
61
41
 
62
42
  # A resultset can be matched directly against an array of hashes using the "match" method.
63
- second_resultset = results[1]
64
- second_resultset.should match([{:x => 2, :y => 12, :sum => 14}])
65
-
66
- # Of course this works too:
67
43
  results[1].should match([{:x => 2, :y => 12, :sum => 14}])
68
44
 
45
+ # Or against a CSV file stored in the data folder (see file data/sample_1/numbers_expected_output.csv)
46
+ results[2].should match('sample_1/numbers_expected_output.csv')
47
+
69
48
  # Or a resultset's values can be matched one-by-one.
70
49
  # Note that the third resultset contains two records:
71
- third_resultset = results[2]
72
- third_resultset[0][:p].should == 2
73
- third_resultset[0][:s].should == 34
74
- third_resultset[1][:p].should == 12
75
- third_resultset[1][:s].should == 44
76
- end
77
- end
78
-
79
- # The results of a query can also be compared against the contents
80
- # of a CSV file located in the data folder - see file data/sample_1/numbers_expected_output.csv
81
- it 'can play with numbers (take two)' do
82
- sql.sample_1.play_with_numbers(:x => 10, :y => 34) do |results|
83
- results[2].should match('sample_1/numbers_expected_output.csv')
50
+ results[2][0][:p].should == 2
51
+ results[2][0][:s].should == 34
52
+ results[2][1][:p].should == 12
53
+ results[2][1][:s].should == 44
84
54
  end
85
55
  end
86
56
 
57
+ # Every "it" (example) is executed in a transaction which is rolled back once the example is complete.
58
+ # This ensures that every example starts at the same state of the database as any other example in the spec.
59
+ # No example can ever interfere witht the results of another example.
60
+ #
87
61
  # CSV files can be used to load data directly into a table.
88
62
  # In this example, we will create a table, populate it with data,
89
63
  # calculate the exponentiation of one column based on another column
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: slacker
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.0.1
5
+ version: 1.0.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Vassil Kovatchev
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-06-29 00:00:00 Z
13
+ date: 2011-07-01 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -81,7 +81,6 @@ files:
81
81
  - lib/slacker_new/project/debug/failed_examples/example_001.sql
82
82
  - lib/slacker_new/project/debug/passed_examples/example_001.sql
83
83
  - lib/slacker_new/project/sql/sample_1/my_table_on_power.sql.erb
84
- - lib/slacker_new/project/sql/sample_1/sysobjects_with_params_2.sql.erb
85
84
  - lib/slacker_new/project/sql/sample_1/play_with_numbers.sql.erb
86
85
  - lib/slacker_new/project/sql/sample_1/sysobjects_with_params.sql.erb
87
86
  - lib/slacker_new/project/sql/sample_1/create_my_table.sql.erb
@@ -1,5 +0,0 @@
1
- <%# Query sysobjects by a dynamic criteria depending on the presence of parameters %>
2
- select * from sysobjects
3
- where 1 = 1
4
- <%= options[:xtype].nil? ? '' : " and xtype = '#{options[:xtype]}'" %>
5
- <%= options[:name].nil? ? '' : " and name = '#{options[:name]}'" %>;