slacker 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
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]}'" %>;