mdquery 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.
@@ -0,0 +1,25 @@
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+ require 'mdquery/util'
3
+
4
+ describe MDQuery::Util do
5
+ describe "assign_attributes" do
6
+ it "should assign attributes" do
7
+ attrs = {:foo=>100, :bar=>"hi"}
8
+ instance = Object.new
9
+
10
+ mock(instance).instance_variable_set("@foo",100)
11
+ mock(instance).instance_variable_set("@bar", "hi")
12
+
13
+ MDQuery::Util.assign_attributes(instance, attrs)
14
+ end
15
+
16
+ it "should raise an exception if an unknown attribute is passed" do
17
+ attrs = {:foo=>100, :bar=>"hi"}
18
+ instance = Object.new
19
+
20
+ lambda {
21
+ MDQuery::Util.assign_attributes(instance, attrs, [:foo])
22
+ }.should raise_error(/unknown keys: \["bar"\]/)
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,35 @@
1
+ require File.expand_path('../spec_helper', __FILE__)
2
+ require 'mdquery'
3
+
4
+ describe "MDQuery" do
5
+ it "should use the DSL to define a Dataset" do
6
+ source = Object.new
7
+
8
+ ds = MDQuery.dataset do
9
+ source source
10
+
11
+ dimension :foo do
12
+ segment :foo_a do
13
+ fix_dimension :foo_a_value
14
+ end
15
+ end
16
+
17
+ dimension :bar do
18
+ segment :bar_a do
19
+ fix_dimension :bar_a_value
20
+ end
21
+ end
22
+
23
+ measure :count, "count(*)"
24
+ measure :avg, "avg(foo)"
25
+ end
26
+
27
+ ds.source.should == source
28
+ ds.dimension_models.count.should == 2
29
+ ds.dimension_models[0].key.should == :foo
30
+ ds.dimension_models[1].key.should == :bar
31
+ ds.measure_models.count.should == 2
32
+ ds.measure_models[0].key.should == :count
33
+ ds.measure_models[1].key.should == :avg
34
+ end
35
+ end
@@ -0,0 +1,11 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ require 'rspec'
4
+
5
+ # Requires supporting files with custom matchers and macros, etc,
6
+ # in ./support/ and its subdirectories.
7
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
8
+
9
+ RSpec.configure do |config|
10
+ config.mock_with :rr
11
+ end
metadata ADDED
@@ -0,0 +1,149 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mdquery
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - mccraigmccraig
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-03-27 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: activerecord
16
+ requirement: &70208027819040 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 3.1.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70208027819040
25
+ - !ruby/object:Gem::Dependency
26
+ name: rake
27
+ requirement: &70208027817820 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 0.9.2
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70208027817820
36
+ - !ruby/object:Gem::Dependency
37
+ name: rspec
38
+ requirement: &70208027816300 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: 2.8.0
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70208027816300
47
+ - !ruby/object:Gem::Dependency
48
+ name: rdoc
49
+ requirement: &70208027860280 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '3.12'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70208027860280
58
+ - !ruby/object:Gem::Dependency
59
+ name: bundler
60
+ requirement: &70208027859700 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ~>
64
+ - !ruby/object:Gem::Version
65
+ version: 1.1.0
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70208027859700
69
+ - !ruby/object:Gem::Dependency
70
+ name: jeweler
71
+ requirement: &70208027859060 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ version: 1.8.3
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *70208027859060
80
+ - !ruby/object:Gem::Dependency
81
+ name: rr
82
+ requirement: &70208027858460 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: 1.0.4
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *70208027858460
91
+ description: provides a DSL for simply specifying and executing segmented multi-dimensional
92
+ queries on your active-record-3 models
93
+ email: mccraigmccraig@gmail.com
94
+ executables: []
95
+ extensions: []
96
+ extra_rdoc_files:
97
+ - LICENSE.txt
98
+ - README.rdoc
99
+ files:
100
+ - .document
101
+ - .rspec
102
+ - .travis.yml
103
+ - Gemfile
104
+ - Gemfile.lock
105
+ - LICENSE.txt
106
+ - README.rdoc
107
+ - Rakefile
108
+ - VERSION
109
+ - lib/mdquery.rb
110
+ - lib/mdquery/dataset.rb
111
+ - lib/mdquery/dsl.rb
112
+ - lib/mdquery/model.rb
113
+ - lib/mdquery/util.rb
114
+ - mdquery.gemspec
115
+ - spec/mdquery/dataset_spec.rb
116
+ - spec/mdquery/dsl_spec.rb
117
+ - spec/mdquery/model_spec.rb
118
+ - spec/mdquery/util_spec.rb
119
+ - spec/mdquery_spec.rb
120
+ - spec/spec_helper.rb
121
+ homepage: http://github.com/mccraigmccraig/mdquery
122
+ licenses:
123
+ - MIT
124
+ post_install_message:
125
+ rdoc_options: []
126
+ require_paths:
127
+ - lib
128
+ required_ruby_version: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ segments:
135
+ - 0
136
+ hash: 1325470352222488064
137
+ required_rubygems_version: !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ requirements: []
144
+ rubyforge_project:
145
+ rubygems_version: 1.8.10
146
+ signing_key:
147
+ specification_version: 3
148
+ summary: simple multi-dimensional queries on top of active-record-3
149
+ test_files: []