gaffel 0.0.0 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
5
+ .idea
data/.idea/gaffel.iml ADDED
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="RUBY_MODULE" version="4">
3
+ <component name="NewModuleRootManager">
4
+ <content url="file://$MODULE_DIR$" />
5
+ <orderEntry type="inheritedJdk" />
6
+ <orderEntry type="sourceFolder" forTests="false" />
7
+ <orderEntry type="library" scope="PROVIDED" name="active_support (v3.0.0, RVM: ree-1.8.7-2012.01) [gem]" level="application" />
8
+ <orderEntry type="library" scope="PROVIDED" name="activesupport (v3.0.0, RVM: ree-1.8.7-2012.01) [gem]" level="application" />
9
+ <orderEntry type="library" scope="PROVIDED" name="bundler (v1.0.22, RVM: ree-1.8.7-2012.01) [gem]" level="application" />
10
+ </component>
11
+ </module>
12
+
data/.idea/misc.xml ADDED
@@ -0,0 +1,30 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectInspectionProfilesVisibleTreeState">
4
+ <entry key="Project Default">
5
+ <profile-state>
6
+ <expanded-state>
7
+ <State>
8
+ <id />
9
+ </State>
10
+ <State>
11
+ <id>Control flow issuesJavaScript</id>
12
+ </State>
13
+ <State>
14
+ <id>JavaScript</id>
15
+ </State>
16
+ </expanded-state>
17
+ <selected-state>
18
+ <State>
19
+ <id>NestedSwitchStatementJS</id>
20
+ </State>
21
+ </selected-state>
22
+ </profile-state>
23
+ </entry>
24
+ </component>
25
+ <component name="ProjectResources">
26
+ <default-html-doctype>http://www.w3.org/1999/xhtml</default-html-doctype>
27
+ </component>
28
+ <component name="ProjectRootManager" version="2" project-jdk-name="RVM: ree-1.8.7-2012.01" project-jdk-type="RUBY_SDK" />
29
+ </project>
30
+
@@ -0,0 +1,5 @@
1
+ <component name="DependencyValidationManager">
2
+ <state>
3
+ <option name="SKIP_IMPORT_STATEMENTS" value="false" />
4
+ </state>
5
+ </component>
data/.idea/vcs.xml ADDED
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="" vcs="" />
5
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
6
+ </component>
7
+ </project>
8
+
@@ -0,0 +1,534 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ChangeListManager">
4
+ <list default="true" id="a6eb8ab3-4a3f-429d-926c-0a18c72b45d4" name="Default" comment="">
5
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/gaffel.iml" />
6
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/misc.xml" />
7
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/scopes/scope_settings.xml" />
8
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/vcs.xml" />
9
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
10
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/Gemfile" />
11
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/Rakefile" />
12
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/lib/gaffel/version.rb" />
13
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.gitignore" afterPath="$PROJECT_DIR$/.gitignore" />
14
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/gaffel.gemspec" afterPath="$PROJECT_DIR$/gaffel.gemspec" />
15
+ </list>
16
+ <ignored path="gaffel.iws" />
17
+ <ignored path=".idea/workspace.xml" />
18
+ <option name="TRACKING_ENABLED" value="true" />
19
+ <option name="SHOW_DIALOG" value="false" />
20
+ <option name="HIGHLIGHT_CONFLICTS" value="true" />
21
+ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
22
+ <option name="LAST_RESOLUTION" value="IGNORE" />
23
+ </component>
24
+ <component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
25
+ <component name="CreatePatchCommitExecutor">
26
+ <option name="PATCH_PATH" value="" />
27
+ </component>
28
+ <component name="DaemonCodeAnalyzer">
29
+ <disable_hints />
30
+ </component>
31
+ <component name="FileEditorManager">
32
+ <leaf>
33
+ <file leaf-file-name="gaffel.rb" pinned="false" current="false" current-in-tab="false">
34
+ <entry file="file://$PROJECT_DIR$/lib/gaffel.rb">
35
+ <provider selected="true" editor-type-id="text-editor">
36
+ <state line="16" column="65" selection-start="752" selection-end="782" vertical-scroll-proportion="0.0">
37
+ <folding />
38
+ </state>
39
+ </provider>
40
+ </entry>
41
+ </file>
42
+ <file leaf-file-name="gaffel_spec.rb" pinned="false" current="false" current-in-tab="false">
43
+ <entry file="file://$PROJECT_DIR$/integration/gaffel_spec.rb">
44
+ <provider selected="true" editor-type-id="text-editor">
45
+ <state line="25" column="0" selection-start="982" selection-end="982" vertical-scroll-proportion="0.0">
46
+ <folding />
47
+ </state>
48
+ </provider>
49
+ </entry>
50
+ </file>
51
+ <file leaf-file-name="version.rb" pinned="false" current="false" current-in-tab="false">
52
+ <entry file="file://$PROJECT_DIR$/lib/gaffel/version.rb">
53
+ <provider selected="true" editor-type-id="text-editor">
54
+ <state line="2" column="3" selection-start="37" selection-end="37" vertical-scroll-proportion="0.0">
55
+ <folding />
56
+ </state>
57
+ </provider>
58
+ </entry>
59
+ </file>
60
+ <file leaf-file-name="gaffel_spec.rb" pinned="false" current="false" current-in-tab="false">
61
+ <entry file="file://$PROJECT_DIR$/spec/gaffel_spec.rb">
62
+ <provider selected="true" editor-type-id="text-editor">
63
+ <state line="30" column="30" selection-start="1411" selection-end="1452" vertical-scroll-proportion="0.0">
64
+ <folding />
65
+ </state>
66
+ </provider>
67
+ </entry>
68
+ </file>
69
+ <file leaf-file-name=".gitignore" pinned="false" current="false" current-in-tab="false">
70
+ <entry file="file://$PROJECT_DIR$/.gitignore">
71
+ <provider selected="true" editor-type-id="text-editor">
72
+ <state line="5" column="0" selection-start="39" selection-end="39" vertical-scroll-proportion="0.0">
73
+ <folding />
74
+ </state>
75
+ </provider>
76
+ </entry>
77
+ </file>
78
+ <file leaf-file-name="gaffel.gemspec" pinned="false" current="false" current-in-tab="false">
79
+ <entry file="file://$PROJECT_DIR$/gaffel.gemspec">
80
+ <provider selected="true" editor-type-id="text-editor">
81
+ <state line="9" column="0" selection-start="267" selection-end="267" vertical-scroll-proportion="0.0">
82
+ <folding />
83
+ </state>
84
+ </provider>
85
+ </entry>
86
+ </file>
87
+ <file leaf-file-name="Gemfile" pinned="false" current="false" current-in-tab="false">
88
+ <entry file="file://$PROJECT_DIR$/Gemfile">
89
+ <provider selected="true" editor-type-id="text-editor">
90
+ <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
91
+ <folding />
92
+ </state>
93
+ </provider>
94
+ </entry>
95
+ </file>
96
+ <file leaf-file-name="Gemfile.lock" pinned="false" current="false" current-in-tab="false">
97
+ <entry file="file://$PROJECT_DIR$/Gemfile.lock">
98
+ <provider selected="true" editor-type-id="text-editor">
99
+ <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
100
+ <folding />
101
+ </state>
102
+ </provider>
103
+ </entry>
104
+ </file>
105
+ <file leaf-file-name="README.md" pinned="false" current="true" current-in-tab="true">
106
+ <entry file="file://$PROJECT_DIR$/README.md">
107
+ <provider selected="true" editor-type-id="text-editor">
108
+ <state line="3" column="10" selection-start="25" selection-end="25" vertical-scroll-proportion="0.05">
109
+ <folding />
110
+ </state>
111
+ </provider>
112
+ </entry>
113
+ </file>
114
+ </leaf>
115
+ </component>
116
+ <component name="FindManager">
117
+ <FindUsagesManager>
118
+ <setting name="OPEN_NEW_TAB" value="false" />
119
+ </FindUsagesManager>
120
+ </component>
121
+ <component name="Git.Settings">
122
+ <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
123
+ </component>
124
+ <component name="IdeDocumentHistory">
125
+ <option name="changedFiles">
126
+ <list>
127
+ <option value="$PROJECT_DIR$/Gemfile" />
128
+ <option value="$PROJECT_DIR$/lib/gaffel.rb" />
129
+ <option value="$PROJECT_DIR$/spec/spec_helper.rb" />
130
+ <option value="$PROJECT_DIR$/spec/gaffel_spec.rb" />
131
+ <option value="$PROJECT_DIR$/integration/gaffel_spec.rb" />
132
+ <option value="$PROJECT_DIR$/gaffel/lib/gaffel/version.rb" />
133
+ <option value="$PROJECT_DIR$/lib/gaffel/version.rb" />
134
+ <option value="$PROJECT_DIR$/.gitignore" />
135
+ <option value="$PROJECT_DIR$/gaffel.gemspec" />
136
+ </list>
137
+ </option>
138
+ </component>
139
+ <component name="ProjectFrameBounds">
140
+ <option name="y" value="22" />
141
+ <option name="width" value="1680" />
142
+ <option name="height" value="1024" />
143
+ </component>
144
+ <component name="ProjectLevelVcsManager" settingsEditedManually="true">
145
+ <OptionsSetting value="true" id="Add" />
146
+ <OptionsSetting value="true" id="Remove" />
147
+ <OptionsSetting value="true" id="Checkout" />
148
+ <OptionsSetting value="true" id="Update" />
149
+ <OptionsSetting value="true" id="Status" />
150
+ <OptionsSetting value="true" id="Edit" />
151
+ <ConfirmationsSetting value="2" id="Add" />
152
+ <ConfirmationsSetting value="0" id="Remove" />
153
+ </component>
154
+ <component name="ProjectReloadState">
155
+ <option name="STATE" value="0" />
156
+ </component>
157
+ <component name="ProjectView">
158
+ <navigator currentView="ProjectPane" proportions="" version="1" splitterProportion="0.5">
159
+ <flattenPackages />
160
+ <showMembers />
161
+ <showModules />
162
+ <showLibraryContents />
163
+ <hideEmptyPackages />
164
+ <abbreviatePackageNames />
165
+ <autoscrollToSource ProjectPane="true" />
166
+ <autoscrollFromSource ProjectPane="true" />
167
+ <sortByType />
168
+ </navigator>
169
+ <panes>
170
+ <pane id="ProjectPane">
171
+ <subPane>
172
+ <PATH>
173
+ <PATH_ELEMENT>
174
+ <option name="myItemId" value="gaffel" />
175
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
176
+ </PATH_ELEMENT>
177
+ </PATH>
178
+ <PATH>
179
+ <PATH_ELEMENT>
180
+ <option name="myItemId" value="gaffel" />
181
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
182
+ </PATH_ELEMENT>
183
+ <PATH_ELEMENT>
184
+ <option name="myItemId" value="gaffel" />
185
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
186
+ </PATH_ELEMENT>
187
+ </PATH>
188
+ <PATH>
189
+ <PATH_ELEMENT>
190
+ <option name="myItemId" value="gaffel" />
191
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
192
+ </PATH_ELEMENT>
193
+ <PATH_ELEMENT>
194
+ <option name="myItemId" value="gaffel" />
195
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
196
+ </PATH_ELEMENT>
197
+ <PATH_ELEMENT>
198
+ <option name="myItemId" value="spec" />
199
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
200
+ </PATH_ELEMENT>
201
+ </PATH>
202
+ <PATH>
203
+ <PATH_ELEMENT>
204
+ <option name="myItemId" value="gaffel" />
205
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
206
+ </PATH_ELEMENT>
207
+ <PATH_ELEMENT>
208
+ <option name="myItemId" value="gaffel" />
209
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
210
+ </PATH_ELEMENT>
211
+ <PATH_ELEMENT>
212
+ <option name="myItemId" value="lib" />
213
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
214
+ </PATH_ELEMENT>
215
+ </PATH>
216
+ <PATH>
217
+ <PATH_ELEMENT>
218
+ <option name="myItemId" value="gaffel" />
219
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
220
+ </PATH_ELEMENT>
221
+ <PATH_ELEMENT>
222
+ <option name="myItemId" value="gaffel" />
223
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
224
+ </PATH_ELEMENT>
225
+ <PATH_ELEMENT>
226
+ <option name="myItemId" value="lib" />
227
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
228
+ </PATH_ELEMENT>
229
+ <PATH_ELEMENT>
230
+ <option name="myItemId" value="gaffel" />
231
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
232
+ </PATH_ELEMENT>
233
+ </PATH>
234
+ <PATH>
235
+ <PATH_ELEMENT>
236
+ <option name="myItemId" value="gaffel" />
237
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
238
+ </PATH_ELEMENT>
239
+ <PATH_ELEMENT>
240
+ <option name="myItemId" value="gaffel" />
241
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
242
+ </PATH_ELEMENT>
243
+ <PATH_ELEMENT>
244
+ <option name="myItemId" value="integration" />
245
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
246
+ </PATH_ELEMENT>
247
+ </PATH>
248
+ </subPane>
249
+ </pane>
250
+ <pane id="Scope" />
251
+ </panes>
252
+ </component>
253
+ <component name="PropertiesComponent">
254
+ <property name="options.splitter.main.proportions" value="0.3" />
255
+ <property name="WebServerToolWindowFactoryState" value="false" />
256
+ <property name="options.lastSelected" value="project.propVCSSupport.Mappings" />
257
+ <property name="last_opened_file_path" value="$PROJECT_DIR$" />
258
+ <property name="options.splitter.details.proportions" value="0.2" />
259
+ <property name="options.searchVisible" value="true" />
260
+ </component>
261
+ <component name="RunManager">
262
+ <configuration default="true" type="RSpecRunConfigurationType" factoryName="RSpec">
263
+ <predefined_log_file id="RUBY_RSPEC" enabled="true" />
264
+ <module name="" />
265
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
266
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
267
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
268
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
269
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
270
+ <envs />
271
+ <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
272
+ <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
273
+ <COVERAGE_PATTERN ENABLED="true">
274
+ <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
275
+ </COVERAGE_PATTERN>
276
+ </EXTENSION>
277
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
278
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
279
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
280
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
281
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
282
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
283
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
284
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
285
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
286
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
287
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
288
+ <method />
289
+ </configuration>
290
+ <configuration default="true" type="RubyRunConfigurationType" factoryName="Ruby">
291
+ <module name="" />
292
+ <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
293
+ <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="" />
294
+ <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
295
+ <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
296
+ <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
297
+ <envs />
298
+ <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
299
+ <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
300
+ <COVERAGE_PATTERN ENABLED="true">
301
+ <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
302
+ </COVERAGE_PATTERN>
303
+ </EXTENSION>
304
+ <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="" />
305
+ <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
306
+ <method />
307
+ </configuration>
308
+ <configuration default="true" type="TestUnitRunConfigurationType" factoryName="Test::Unit/Shoulda/Minitest">
309
+ <predefined_log_file id="RUBY_TESTUNIT" enabled="true" />
310
+ <module name="" />
311
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
312
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
313
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
314
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
315
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
316
+ <envs />
317
+ <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
318
+ <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
319
+ <COVERAGE_PATTERN ENABLED="true">
320
+ <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
321
+ </COVERAGE_PATTERN>
322
+ </EXTENSION>
323
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
324
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
325
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="" />
326
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_METHOD_NAME" VALUE="" />
327
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
328
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
329
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_OPTIONS" VALUE="" />
330
+ <method />
331
+ </configuration>
332
+ <configuration default="true" type="CucumberRunConfigurationType" factoryName="Cucumber">
333
+ <predefined_log_file id="RUBY_CUCUMBER" enabled="true" />
334
+ <module name="" />
335
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
336
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
337
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
338
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
339
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
340
+ <envs>
341
+ <env name="ANSICON" value="" />
342
+ </envs>
343
+ <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
344
+ <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
345
+ <COVERAGE_PATTERN ENABLED="true">
346
+ <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
347
+ </COVERAGE_PATTERN>
348
+ </EXTENSION>
349
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*.feature" />
350
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
351
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
352
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
353
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_TAGS_FILTER" VALUE="" />
354
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_NAME_FILTER" VALUE="" />
355
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="CUCUMBER_ARGS" VALUE="--color -r features" />
356
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
357
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
358
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="VERBOSE_OPTION" VALUE="false" />
359
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
360
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="CUCUMBER_RUNNER_PATH" VALUE="" />
361
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_RUNNER" VALUE="false" />
362
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SETTINGS_VERSION" VALUE="2" />
363
+ <method />
364
+ </configuration>
365
+ <list size="0" />
366
+ </component>
367
+ <component name="ShelveChangesManager" show_recycled="false" />
368
+ <component name="SvnConfiguration" maxAnnotateRevisions="500" myUseAcceleration="nothing" myAutoUpdateAfterCommit="false" cleanupOnStartRun="false">
369
+ <option name="USER" value="" />
370
+ <option name="PASSWORD" value="" />
371
+ <option name="mySSHConnectionTimeout" value="30000" />
372
+ <option name="mySSHReadTimeout" value="30000" />
373
+ <option name="LAST_MERGED_REVISION" />
374
+ <option name="MERGE_DRY_RUN" value="false" />
375
+ <option name="MERGE_DIFF_USE_ANCESTRY" value="true" />
376
+ <option name="UPDATE_LOCK_ON_DEMAND" value="false" />
377
+ <option name="IGNORE_SPACES_IN_MERGE" value="false" />
378
+ <option name="DETECT_NESTED_COPIES" value="true" />
379
+ <option name="CHECK_NESTED_FOR_QUICK_MERGE" value="false" />
380
+ <option name="IGNORE_SPACES_IN_ANNOTATE" value="true" />
381
+ <option name="SHOW_MERGE_SOURCES_IN_ANNOTATE" value="true" />
382
+ <option name="FORCE_UPDATE" value="false" />
383
+ <option name="IGNORE_EXTERNALS" value="false" />
384
+ <myIsUseDefaultProxy>false</myIsUseDefaultProxy>
385
+ </component>
386
+ <component name="TaskManager">
387
+ <task active="true" id="Default" summary="Default task">
388
+ <created>1344607465681</created>
389
+ <updated>1344607465681</updated>
390
+ </task>
391
+ <servers />
392
+ </component>
393
+ <component name="ToolWindowManager">
394
+ <frame x="0" y="22" width="1680" height="1024" extended-state="6" />
395
+ <editor active="false" />
396
+ <layout>
397
+ <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
398
+ <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
399
+ <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32901832" sideWeight="0.497552" order="1" side_tool="false" content_ui="tabs" />
400
+ <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
401
+ <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="true" content_ui="tabs" />
402
+ <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.124847" sideWeight="0.67098165" order="0" side_tool="false" content_ui="combo" />
403
+ <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
404
+ <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
405
+ <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32901832" sideWeight="0.49816403" order="-1" side_tool="true" content_ui="tabs" />
406
+ <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32901832" sideWeight="0.497552" order="2" side_tool="false" content_ui="tabs" />
407
+ <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
408
+ <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
409
+ <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
410
+ <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
411
+ <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
412
+ <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
413
+ <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
414
+ </layout>
415
+ </component>
416
+ <component name="VcsContentAnnotationSettings">
417
+ <option name="myLimit" value="2678400000" />
418
+ </component>
419
+ <component name="VcsManagerConfiguration">
420
+ <option name="OFFER_MOVE_TO_ANOTHER_CHANGELIST_ON_PARTIAL_COMMIT" value="true" />
421
+ <option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="true" />
422
+ <option name="CHECK_NEW_TODO" value="true" />
423
+ <option name="myTodoPanelSettings">
424
+ <value>
425
+ <are-packages-shown value="false" />
426
+ <are-modules-shown value="false" />
427
+ <flatten-packages value="false" />
428
+ <is-autoscroll-to-source value="false" />
429
+ </value>
430
+ </option>
431
+ <option name="PERFORM_UPDATE_IN_BACKGROUND" value="true" />
432
+ <option name="PERFORM_COMMIT_IN_BACKGROUND" value="true" />
433
+ <option name="PERFORM_EDIT_IN_BACKGROUND" value="true" />
434
+ <option name="PERFORM_CHECKOUT_IN_BACKGROUND" value="true" />
435
+ <option name="PERFORM_ADD_REMOVE_IN_BACKGROUND" value="true" />
436
+ <option name="PERFORM_ROLLBACK_IN_BACKGROUND" value="false" />
437
+ <option name="CHECK_LOCALLY_CHANGED_CONFLICTS_IN_BACKGROUND" value="false" />
438
+ <option name="CHANGED_ON_SERVER_INTERVAL" value="60" />
439
+ <option name="SHOW_ONLY_CHANGED_IN_SELECTION_DIFF" value="true" />
440
+ <option name="CHECK_COMMIT_MESSAGE_SPELLING" value="true" />
441
+ <option name="DEFAULT_PATCH_EXTENSION" value="patch" />
442
+ <option name="SHORT_DIFF_HORISONTALLY" value="true" />
443
+ <option name="SHORT_DIFF_EXTRA_LINES" value="2" />
444
+ <option name="SOFT_WRAPS_IN_SHORT_DIFF" value="true" />
445
+ <option name="INCLUDE_TEXT_INTO_PATCH" value="false" />
446
+ <option name="INCLUDE_TEXT_INTO_SHELF" value="false" />
447
+ <option name="SHOW_FILE_HISTORY_DETAILS" value="true" />
448
+ <option name="SHOW_VCS_ERROR_NOTIFICATIONS" value="true" />
449
+ <option name="FORCE_NON_EMPTY_COMMENT" value="false" />
450
+ <option name="CLEAR_INITIAL_COMMIT_MESSAGE" value="false" />
451
+ <option name="LAST_COMMIT_MESSAGE" />
452
+ <option name="MAKE_NEW_CHANGELIST_ACTIVE" value="false" />
453
+ <option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="false" />
454
+ <option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />
455
+ <option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="false" />
456
+ <option name="REFORMAT_BEFORE_FILE_COMMIT" value="false" />
457
+ <option name="FILE_HISTORY_DIALOG_COMMENTS_SPLITTER_PROPORTION" value="0.8" />
458
+ <option name="FILE_HISTORY_DIALOG_SPLITTER_PROPORTION" value="0.5" />
459
+ <option name="ACTIVE_VCS_NAME" />
460
+ <option name="UPDATE_GROUP_BY_PACKAGES" value="false" />
461
+ <option name="UPDATE_GROUP_BY_CHANGELIST" value="false" />
462
+ <option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />
463
+ <option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
464
+ </component>
465
+ <component name="XDebuggerManager">
466
+ <breakpoint-manager />
467
+ </component>
468
+ <component name="editorHistoryManager">
469
+ <entry file="file://$PROJECT_DIR$/integration/gaffel_spec.rb">
470
+ <provider selected="true" editor-type-id="text-editor">
471
+ <state line="25" column="0" selection-start="982" selection-end="982" vertical-scroll-proportion="0.0">
472
+ <folding />
473
+ </state>
474
+ </provider>
475
+ </entry>
476
+ <entry file="file://$PROJECT_DIR$/lib/gaffel/version.rb">
477
+ <provider selected="true" editor-type-id="text-editor">
478
+ <state line="2" column="3" selection-start="37" selection-end="37" vertical-scroll-proportion="0.0">
479
+ <folding />
480
+ </state>
481
+ </provider>
482
+ </entry>
483
+ <entry file="file://$PROJECT_DIR$/lib/gaffel.rb">
484
+ <provider selected="true" editor-type-id="text-editor">
485
+ <state line="16" column="65" selection-start="752" selection-end="782" vertical-scroll-proportion="0.0">
486
+ <folding />
487
+ </state>
488
+ </provider>
489
+ </entry>
490
+ <entry file="file://$PROJECT_DIR$/spec/gaffel_spec.rb">
491
+ <provider selected="true" editor-type-id="text-editor">
492
+ <state line="30" column="30" selection-start="1411" selection-end="1452" vertical-scroll-proportion="0.0">
493
+ <folding />
494
+ </state>
495
+ </provider>
496
+ </entry>
497
+ <entry file="file://$PROJECT_DIR$/.gitignore">
498
+ <provider selected="true" editor-type-id="text-editor">
499
+ <state line="5" column="0" selection-start="39" selection-end="39" vertical-scroll-proportion="0.0">
500
+ <folding />
501
+ </state>
502
+ </provider>
503
+ </entry>
504
+ <entry file="file://$PROJECT_DIR$/gaffel.gemspec">
505
+ <provider selected="true" editor-type-id="text-editor">
506
+ <state line="9" column="0" selection-start="267" selection-end="267" vertical-scroll-proportion="0.0">
507
+ <folding />
508
+ </state>
509
+ </provider>
510
+ </entry>
511
+ <entry file="file://$PROJECT_DIR$/Gemfile.lock">
512
+ <provider selected="true" editor-type-id="text-editor">
513
+ <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
514
+ <folding />
515
+ </state>
516
+ </provider>
517
+ </entry>
518
+ <entry file="file://$PROJECT_DIR$/Gemfile">
519
+ <provider selected="true" editor-type-id="text-editor">
520
+ <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
521
+ <folding />
522
+ </state>
523
+ </provider>
524
+ </entry>
525
+ <entry file="file://$PROJECT_DIR$/README.md">
526
+ <provider selected="true" editor-type-id="text-editor">
527
+ <state line="3" column="10" selection-start="25" selection-end="25" vertical-scroll-proportion="0.05">
528
+ <folding />
529
+ </state>
530
+ </provider>
531
+ </entry>
532
+ </component>
533
+ </project>
534
+
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in gaffel.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,4 @@
1
+ gaffel
2
+ ======
3
+
4
+ Extract data from Google Analytics (GA) v3.0 API
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
data/gaffel-0.0.0.gem ADDED
Binary file
data/gaffel.gemspec ADDED
@@ -0,0 +1,25 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "gaffel/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "gaffel"
7
+ s.version = Gaffel::VERSION
8
+ s.authors = ["Tilmann Bruckhaus"]
9
+ s.email = 'tilmann@bruckha.us'
10
+ s.homepage = 'http://rubygems.org/gems/gaffel'
11
+ s.summary = %q{Extract data from Google Analytics (GA) v3.0 API}
12
+ s.description = %q{Supports extracting 1 metric for 0 or more dimensions, with start and end dates,
13
+ sorting, and max results requested per Google API call. Provides results record-by-record via an iterator.}
14
+
15
+ s.rubyforge_project = "gaffel"
16
+
17
+ s.files = `git ls-files`.split("\n")
18
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
20
+ s.require_paths = ["lib"]
21
+
22
+ # specify any dependencies here; for example:
23
+ # s.add_development_dependency "rspec"
24
+ # s.add_runtime_dependency "rest-client"
25
+ end
@@ -0,0 +1,33 @@
1
+ require 'gaffel'
2
+
3
+ describe "GoogleAnalyticsApi" do
4
+
5
+ before do
6
+ @google_account = {# --- registration:
7
+ :google_api_key => '***************************************',
8
+ :ga_profile_id => 'ga:12345678',
9
+ :ga_property_id => 'xx-00000-00',
10
+ # --- login:
11
+ :login => 'anonymous@anon.com',
12
+ :password => '********',
13
+ :source => 'gaffel'}
14
+ @data_spec = {:metric => '',
15
+ :dimensions => [],
16
+ :start_date => 20120811,
17
+ :end_date => 20120811}
18
+ @ga_api = Gaffel.new(@google_account, @data_spec)
19
+ @ga_api.instance_variable_set(:@debug, true)
20
+ @ga_api = Gaffel.new(@google_account, @data_spec)
21
+ end
22
+
23
+ describe "http_get_request" do
24
+ it "should generate a valid response" do
25
+ url = @ga_api.send :make_url, 123
26
+ @ga_api.send :get_auth_token
27
+ response = (@ga_api.send :http_get_request, url)
28
+ response.should_not be_nil
29
+ response.code.to_i.should == 200
30
+ end
31
+ end
32
+
33
+ end
@@ -0,0 +1,3 @@
1
+ module Gaffel
2
+ VERSION = "0.0.3"
3
+ end
data/lib/gaffel.rb CHANGED
@@ -1,4 +1,8 @@
1
+ require 'active_support/core_ext/object'
2
+ require 'net/http'
3
+
1
4
  #noinspection RubyStringKeysInHashInspection
5
+
2
6
  class Gaffel
3
7
  # --- login:
4
8
  CLIENT_LOGIN_URL = 'https://www.google.com/accounts/ClientLogin'
@@ -27,7 +31,7 @@ class Gaffel
27
31
  :Passwd => @account[:password],
28
32
  :source => @account[:source],
29
33
  :accountType => ACCOUNT_TYPE,
30
- :service => SERVICE}.to_query
34
+ :service => SERVICE}.to_param
31
35
  @headers_for_get_request = {"GData-Version" => '2',
32
36
  "Content-Type" => CONTENT_TYPE}
33
37
  @rows_processed = 0
@@ -91,7 +95,7 @@ class Gaffel
91
95
  "end-date" => @data_spec[:end_date],
92
96
  "sort" => @data_spec[:sort],
93
97
  "key" => @account[:google_api_key],
94
- "ids" => @account[:ga_profile_id]}.to_query
98
+ "ids" => @account[:ga_profile_id]}.to_param
95
99
  #debug("query", query)
96
100
  URI GA_CORE_REPORTING_API_URL + '?' + query
97
101
  end
@@ -0,0 +1,42 @@
1
+ require 'gaffel'
2
+
3
+ describe "GoogleAnalyticsApi" do
4
+ before do
5
+ @google_account = {# --- registration:
6
+ :google_api_key => '***************************************',
7
+ :ga_profile_id => 'ga:12345678',
8
+ :ga_property_id => 'xx-00000-00',
9
+ # --- login:
10
+ :login => 'anonymous@anon.org',
11
+ :password => '********',
12
+ :source => 'gaffel'}
13
+ @data_spec = {:metric => '',
14
+ :dimensions => [],
15
+ :start_date => 20120811,
16
+ :end_date => 20120811}
17
+ @ga_api = Gaffel.new(@google_account, @data_spec)
18
+ end
19
+
20
+ it "should initialize request headers with authorization, version, and content type" do
21
+ @ga_api.instance_variable_set(:@debug, true)
22
+ EXPECTED_AUTH = /^GoogleLogin Auth=/
23
+ EXPECTED_TYPE = "application/x-www-form-urlencoded"
24
+ @ga_api.instance_variable_get("@headers_for_get_request").should_not be_nil
25
+ @ga_api.instance_variable_get("@headers_for_get_request")["GData-Version"].should == "2"
26
+ @ga_api.instance_variable_get("@headers_for_get_request")["Content-Type"].should == EXPECTED_TYPE
27
+ end
28
+
29
+ describe "make_url" do
30
+ it "should generate a get request URL for obtaining a number of results, beginning from start index" do
31
+ url = @ga_api.send :make_url, 1234
32
+ url.should_not be_nil
33
+ url = url.to_s
34
+ url.should match /https:\/\//
35
+ url.should match /end-date=/
36
+ url.should match /start-date=/
37
+ url.should match /max-results=/
38
+ url.should match /start-index=/
39
+ end
40
+ end
41
+
42
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gaffel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,17 +9,31 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-10 00:00:00.000000000Z
12
+ date: 2012-08-11 00:00:00.000000000Z
13
13
  dependencies: []
14
- description: Supports extracting 1 metric for 0 or more dimensions, with start and
15
- end dates, sorting, and max results requested per Google API call. Provides results
16
- record-by-record via an iterator.
14
+ description: ! "Supports extracting 1 metric for 0 or more dimensions, with start
15
+ and end dates,\n sorting, and max results requested per Google API call. Provides
16
+ results record-by-record via an iterator."
17
17
  email: tilmann@bruckha.us
18
18
  executables: []
19
19
  extensions: []
20
20
  extra_rdoc_files: []
21
21
  files:
22
+ - .gitignore
23
+ - .idea/gaffel.iml
24
+ - .idea/misc.xml
25
+ - .idea/scopes/scope_settings.xml
26
+ - .idea/vcs.xml
27
+ - .idea/workspace.xml
28
+ - Gemfile
29
+ - README.md
30
+ - Rakefile
31
+ - gaffel-0.0.0.gem
32
+ - gaffel.gemspec
33
+ - integration/gaffel_spec.rb
22
34
  - lib/gaffel.rb
35
+ - lib/gaffel/version.rb
36
+ - spec/gaffel_spec.rb
23
37
  homepage: http://rubygems.org/gems/gaffel
24
38
  licenses: []
25
39
  post_install_message:
@@ -39,9 +53,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
39
53
  - !ruby/object:Gem::Version
40
54
  version: '0'
41
55
  requirements: []
42
- rubyforge_project:
56
+ rubyforge_project: gaffel
43
57
  rubygems_version: 1.8.15
44
58
  signing_key:
45
59
  specification_version: 3
46
- summary: Extract data from Google Analytics (GA) v3.0 API!
47
- test_files: []
60
+ summary: Extract data from Google Analytics (GA) v3.0 API
61
+ test_files:
62
+ - spec/gaffel_spec.rb