daily 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.mdown +46 -0
  3. data/Rakefile +7 -0
  4. data/app/assets/images/rails.png +0 -0
  5. data/app/assets/javascripts/application.js +9 -0
  6. data/app/assets/stylesheets/application.css +16 -0
  7. data/app/assets/stylesheets/bootstrap.css +2467 -0
  8. data/app/controllers/application_controller.rb +14 -0
  9. data/app/controllers/files_controller.rb +5 -0
  10. data/app/controllers/main_controller.rb +5 -0
  11. data/app/controllers/reports_controller.rb +35 -0
  12. data/app/controllers/tables_controller.rb +20 -0
  13. data/app/controllers/users_controller.rb +28 -0
  14. data/app/formatters/html_formatter.rb +65 -0
  15. data/app/formatters/json_formatter.rb +81 -0
  16. data/app/helpers/application_helper.rb +85 -0
  17. data/app/jobs/generate_report_job.rb +13 -0
  18. data/app/models/report.rb +112 -0
  19. data/app/models/table.rb +65 -0
  20. data/app/models/user.rb +20 -0
  21. data/app/transforms/column_filter.rb +7 -0
  22. data/app/transforms/moving_average.rb +119 -0
  23. data/app/transforms/transform.rb +32 -0
  24. data/app/views/devise/sessions/new.erb +15 -0
  25. data/app/views/layouts/application.html.erb +40 -0
  26. data/app/views/main/home.erb +4 -0
  27. data/app/views/reports/_form.erb +14 -0
  28. data/app/views/reports/_list.erb +9 -0
  29. data/app/views/reports/edit.erb +2 -0
  30. data/app/views/reports/index.erb +3 -0
  31. data/app/views/reports/new.erb +2 -0
  32. data/app/views/reports/show.erb +23 -0
  33. data/app/views/tables/_form.erb +8 -0
  34. data/app/views/tables/_list.erb +9 -0
  35. data/app/views/tables/edit.erb +2 -0
  36. data/app/views/tables/index.erb +3 -0
  37. data/app/views/tables/new.erb +2 -0
  38. data/app/views/tables/show.erb +35 -0
  39. data/app/views/users/_form.erb +5 -0
  40. data/app/views/users/_items.erb +8 -0
  41. data/app/views/users/_list.erb +9 -0
  42. data/app/views/users/edit.erb +2 -0
  43. data/app/views/users/index.erb +3 -0
  44. data/app/views/users/new.erb +2 -0
  45. data/app/views/users/show.erb +4 -0
  46. data/config/application.rb +52 -0
  47. data/config/authorization_rules.rb +49 -0
  48. data/config/boot.rb +6 -0
  49. data/config/daily.example.yml +19 -0
  50. data/config/daily.yml +27 -0
  51. data/config/database.yml +25 -0
  52. data/config/environment.rb +5 -0
  53. data/config/environments/development.rb +32 -0
  54. data/config/environments/production.rb +63 -0
  55. data/config/environments/test.rb +39 -0
  56. data/config/initializers/backtrace_silencers.rb +7 -0
  57. data/config/initializers/devise.rb +212 -0
  58. data/config/initializers/inflections.rb +10 -0
  59. data/config/initializers/mime_types.rb +5 -0
  60. data/config/initializers/ruport.rb +5 -0
  61. data/config/initializers/secret_token.rb +7 -0
  62. data/config/initializers/session_store.rb +8 -0
  63. data/config/initializers/simple_form.rb +113 -0
  64. data/config/initializers/wrap_parameters.rb +14 -0
  65. data/config/locales/devise.en.yml +58 -0
  66. data/config/locales/en.yml +5 -0
  67. data/config/locales/simple_form.en.yml +24 -0
  68. data/config/routes.rb +29 -0
  69. data/db/development.sqlite3 +0 -0
  70. data/db/migrate/20111109081414_devise_create_users.rb +28 -0
  71. data/db/migrate/20111111165640_create_tables.rb +14 -0
  72. data/db/migrate/20111112022333_add_name_to_tables.rb +9 -0
  73. data/db/migrate/20111112170802_add_reports.rb +15 -0
  74. data/db/migrate/20111113000026_add_guid_to_tables.rb +9 -0
  75. data/db/migrate/20111113073326_add_times_to_reports.rb +11 -0
  76. data/db/migrate/20111113075747_add_times_to_tables.rb +9 -0
  77. data/db/migrate/20111114041729_create_delayed_jobs.rb +21 -0
  78. data/db/migrate/20111114053016_add_report_to_delayed_jobs.rb +11 -0
  79. data/db/migrate/20111115014959_add_admin_to_users.rb +9 -0
  80. data/db/migrate/20111127065357_add_column_names_to_table.rb +9 -0
  81. data/db/migrate/20111203020425_add_transform_to_table.rb +16 -0
  82. data/db/migrate/20111214020029_add_formatter_data_to_reports.rb +8 -0
  83. data/db/schema.rb +80 -0
  84. data/db/seeds.rb +7 -0
  85. data/db/test.sqlite3 +0 -0
  86. data/lib/daily.rb +9 -0
  87. data/lib/daily/daily_config.rb +51 -0
  88. data/lib/daily/engine.rb +4 -0
  89. data/lib/daily/has_data.rb +52 -0
  90. data/lib/daily/shared_behaviors.rb +65 -0
  91. data/lib/daily/version.rb +3 -0
  92. data/lib/tasks/user.rake +24 -0
  93. metadata +454 -0
@@ -0,0 +1,9 @@
1
+ class AddColumnNamesToTable < ActiveRecord::Migration
2
+ def up
3
+ add_column :tables, :column_names, :text
4
+ end
5
+
6
+ def down
7
+ remove_column :tables, :column_names
8
+ end
9
+ end
@@ -0,0 +1,16 @@
1
+ class AddTransformToTable < ActiveRecord::Migration
2
+ def up
3
+ add_column :tables, :transform, :string
4
+ add_column :tables, :transform_data, :text
5
+
6
+ add_column :reports, :transform, :string
7
+ add_column :reports, :transform_data, :text
8
+ end
9
+ def down
10
+ remove_column :tables, :transform
11
+ remove_column :tables, :transform_data
12
+
13
+ remove_column :reports, :transform
14
+ remove_column :reports, :transform_data
15
+ end
16
+ end
@@ -0,0 +1,8 @@
1
+ class AddFormatterDataToReports < ActiveRecord::Migration
2
+ def up
3
+ add_column :reports, :formatter_data, :text
4
+ end
5
+ def down
6
+ remove_column :reports, :formatter_data
7
+ end
8
+ end
@@ -0,0 +1,80 @@
1
+ # This file is auto-generated from the current state of the database. Instead
2
+ # of editing this file, please use the migrations feature of Active Record to
3
+ # incrementally modify your database, and then regenerate this schema definition.
4
+ #
5
+ # Note that this schema.rb definition is the authoritative source for your
6
+ # database schema. If you need to create the application database on another
7
+ # system, you should be using db:schema:load, not running all the migrations
8
+ # from scratch. The latter is a flawed and unsustainable approach (the more migrations
9
+ # you'll amass, the slower it'll run and the greater likelihood for issues).
10
+ #
11
+ # It's strongly recommended to check this file into your version control system.
12
+
13
+ ActiveRecord::Schema.define(:version => 20111214020029) do
14
+
15
+ create_table "delayed_jobs", :force => true do |t|
16
+ t.integer "priority", :default => 0
17
+ t.integer "attempts", :default => 0
18
+ t.text "handler"
19
+ t.text "last_error"
20
+ t.datetime "run_at"
21
+ t.datetime "locked_at"
22
+ t.datetime "failed_at"
23
+ t.string "locked_by"
24
+ t.datetime "created_at"
25
+ t.datetime "updated_at"
26
+ t.integer "report_id"
27
+ end
28
+
29
+ add_index "delayed_jobs", ["priority", "run_at"], :name => "delayed_jobs_priority"
30
+ add_index "delayed_jobs", ["report_id"], :name => "index_delayed_jobs_on_report_id"
31
+
32
+ create_table "reports", :force => true do |t|
33
+ t.string "name"
34
+ t.string "filename"
35
+ t.integer "table_id"
36
+ t.integer "user_id"
37
+ t.string "formatter"
38
+ t.datetime "created_at"
39
+ t.datetime "updated_at"
40
+ t.datetime "generate_started_at"
41
+ t.datetime "generate_ended_at"
42
+ t.string "transform"
43
+ t.text "transform_data"
44
+ t.text "formatter_data"
45
+ end
46
+
47
+ create_table "tables", :force => true do |t|
48
+ t.integer "user_id"
49
+ t.text "data"
50
+ t.string "data_type"
51
+ t.datetime "created_at"
52
+ t.datetime "updated_at"
53
+ t.string "name"
54
+ t.string "guid"
55
+ t.integer "fetch_time_in_seconds"
56
+ t.text "column_names"
57
+ t.string "transform"
58
+ t.text "transform_data"
59
+ end
60
+
61
+ create_table "users", :force => true do |t|
62
+ t.string "email", :default => "", :null => false
63
+ t.string "encrypted_password", :limit => 128, :default => "", :null => false
64
+ t.string "reset_password_token"
65
+ t.datetime "reset_password_sent_at"
66
+ t.datetime "remember_created_at"
67
+ t.integer "sign_in_count", :default => 0
68
+ t.datetime "current_sign_in_at"
69
+ t.datetime "last_sign_in_at"
70
+ t.string "current_sign_in_ip"
71
+ t.string "last_sign_in_ip"
72
+ t.datetime "created_at"
73
+ t.datetime "updated_at"
74
+ t.boolean "admin"
75
+ end
76
+
77
+ add_index "users", ["email"], :name => "index_users_on_email", :unique => true
78
+ add_index "users", ["reset_password_token"], :name => "index_users_on_reset_password_token", :unique => true
79
+
80
+ end
@@ -0,0 +1,7 @@
1
+ # This file should contain all the record creation needed to seed the database with its default values.
2
+ # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
3
+ #
4
+ # Examples:
5
+ #
6
+ # cities = City.create([{ :name => 'Chicago' }, { :name => 'Copenhagen' }])
7
+ # Mayor.create(:name => 'Emanuel', :city => cities.first)
Binary file
@@ -0,0 +1,9 @@
1
+ require "daily/engine"
2
+ require "daily/daily_config"
3
+ require "daily/shared_behaviors"
4
+ require "daily/has_data"
5
+
6
+ Authorization::AUTH_DSL_FILES = [Pathname.new(Daily::Engine.root || '').join("config", "authorization_rules.rb").to_s]
7
+
8
+ module Daily
9
+ end
@@ -0,0 +1,51 @@
1
+ module DailyConfig
2
+ extend self
3
+
4
+ def set_root(root)
5
+ puts "here it is.........."
6
+ puts root
7
+ @root = root
8
+ end
9
+ def set_env(env)
10
+ @env = env
11
+ end
12
+
13
+ def rails_root
14
+ return @root if @root
15
+ Rails.root
16
+ end
17
+
18
+ def rails_env
19
+ return @env if @env
20
+ Rails.env
21
+ end
22
+
23
+ def hash
24
+ @hash ||= (YAML.load_file("#{rails_root}/config/daily.yml") || {})
25
+ end
26
+
27
+ def env_hash
28
+ @env_hash ||= (hash[rails_env] || {})
29
+ end
30
+
31
+ def subdirectory
32
+ return "" if rails_env == "test"
33
+ hash['subdirectory'] || env_hash['subdirectory'] || ""
34
+ end
35
+
36
+ def database_init
37
+ db = env_hash['database']
38
+ return if db.empty?
39
+ Ruport::Query.add_source :default,
40
+ :dsn => "dbi:#{db['adapter'].camelize}:database=#{db['database']};host=#{db['host']}",
41
+ :user => "#{db['username']}",
42
+ :password => "#{db['password']}"
43
+ end
44
+
45
+ def config_init(config)
46
+ if !subdirectory.blank?
47
+ config.assets.prefix = "/#{subdirectory}/assets"
48
+ end
49
+ end
50
+
51
+ end
@@ -0,0 +1,4 @@
1
+ module Daily
2
+ class Engine < Rails::Engine
3
+ end
4
+ end
@@ -0,0 +1,52 @@
1
+ module HasData
2
+ def self.included(model)
3
+ model.send :include, InstanceMethods
4
+ model.send :extend, ClassMethods
5
+ end
6
+
7
+
8
+ module InstanceMethods
9
+
10
+ end
11
+
12
+ module ClassMethods
13
+ def has_data field
14
+ attribute = "#{field}_data"
15
+ method = "#{field}_json"
16
+ valid = "#{field}_json_check"
17
+
18
+ serialize attribute, Hash
19
+
20
+ define_method method do
21
+ val = instance_variable_get("@#{method}")
22
+ return val if val
23
+ data = send(attribute)
24
+ return nil if data.blank?
25
+ JSON.pretty_generate(data)
26
+ end
27
+ define_method "#{method}=" do |val|
28
+ instance_variable_set("@#{method}", val)
29
+ send("#{attribute}=", nil)
30
+ return if val.blank?
31
+ begin
32
+ send("#{attribute}=", JSON.parse(val))
33
+ rescue
34
+
35
+ end
36
+ end
37
+
38
+ define_method valid do
39
+ val = instance_variable_get("@#{method}")
40
+ return if val.blank?
41
+ begin
42
+ JSON.parse(val)
43
+ rescue => ex
44
+ self.errors.add(method.to_sym, ex.message)
45
+ end
46
+ end
47
+ validate valid
48
+ end
49
+ end
50
+
51
+ end
52
+
@@ -0,0 +1,65 @@
1
+ module SharedBehaviors
2
+ def self.included(model)
3
+ model.send :include, HasData
4
+ model.send :has_data, :transform
5
+
6
+ model.send :include, InstanceMethods
7
+ model.send :extend, ClassMethods
8
+ end
9
+
10
+
11
+ module InstanceMethods
12
+ def guid_generate
13
+ key = "#{Time.now.to_i}::#{rand(999999999)}::#{attributes.values.join("::")}"
14
+ Digest::MD5.hexdigest(key)
15
+ end
16
+
17
+ def apply_transform(table)
18
+ return table if transform.blank?
19
+ t = transform.constantize.new(table, transform_data)
20
+ t.result
21
+ end
22
+
23
+ protected
24
+
25
+ def settable_guid
26
+ prepend = respond_to?(:guid_prepend) ? guid_prepend : ""
27
+ append = respond_to?(:guid_append) ? guid_append : ""
28
+ "#{prepend}#{guid_generate}#{append}"
29
+ end
30
+
31
+ def generate_guid_if_needed
32
+ return true unless new_record?
33
+ val = send(self.class.guid_field)
34
+ return true unless val.blank?
35
+ send("#{self.class.guid_field}=", settable_guid)
36
+ end
37
+ end
38
+
39
+ module ClassMethods
40
+ def generate_guid(field)
41
+ @guid_field = field.to_sym
42
+ validates_presence_of @guid_field
43
+ before_validation :generate_guid_if_needed
44
+ end
45
+ def guid_field
46
+ @guid_field
47
+ end
48
+
49
+ def validates_stripped_presence_of(field)
50
+ validates_presence_of field
51
+ method = "strip_before_validation_#{field}"
52
+ define_method method do
53
+ return true if send(field).nil?
54
+ send("#{field}=", send(field).strip)
55
+ end
56
+ before_validation method
57
+ end
58
+
59
+ def validates_unique_presence_of(field)
60
+ validates_stripped_presence_of field
61
+ validates_uniqueness_of field, :case_sensitive => false
62
+ end
63
+ end
64
+
65
+ end
@@ -0,0 +1,3 @@
1
+ module Daily
2
+ VERSION = "0.0.2"
3
+ end
@@ -0,0 +1,24 @@
1
+ namespace :user do
2
+ desc "Create a user given email and password"
3
+ task :create, [:email, :password] => :environment do |t, args|
4
+ user = User.new(:email => args[:email], :password => args[:password])
5
+ if user.save
6
+ puts "User #{user.email} created!"
7
+ else
8
+ puts "Error: #{user.errors.full_messages.join(", ")}"
9
+ end
10
+ end
11
+ task :admin, [:email, :password] => [:environment, :create] do |t, args|
12
+ user = User.find_by_email(args[:email])
13
+ if user
14
+ user.admin = true
15
+ if user.save
16
+ puts "User made admin."
17
+ else
18
+ puts "User NOT saved as admin."
19
+ end
20
+ else
21
+ put "User not found."
22
+ end
23
+ end
24
+ end
metadata ADDED
@@ -0,0 +1,454 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: daily
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 2
10
+ version: 0.0.2
11
+ platform: ruby
12
+ authors:
13
+ - Brian Leonard
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2012-01-09 00:00:00 -08:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: rails
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ hash: 1
30
+ segments:
31
+ - 3
32
+ - 1
33
+ - 1
34
+ version: 3.1.1
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: json
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 3
46
+ segments:
47
+ - 0
48
+ version: "0"
49
+ type: :runtime
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ name: jquery-rails
53
+ prerelease: false
54
+ requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ hash: 3
60
+ segments:
61
+ - 0
62
+ version: "0"
63
+ type: :runtime
64
+ version_requirements: *id003
65
+ - !ruby/object:Gem::Dependency
66
+ name: devise
67
+ prerelease: false
68
+ requirement: &id004 !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ hash: 3
74
+ segments:
75
+ - 0
76
+ version: "0"
77
+ type: :runtime
78
+ version_requirements: *id004
79
+ - !ruby/object:Gem::Dependency
80
+ name: declarative_authorization
81
+ prerelease: false
82
+ requirement: &id005 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ hash: 3
88
+ segments:
89
+ - 0
90
+ version: "0"
91
+ type: :runtime
92
+ version_requirements: *id005
93
+ - !ruby/object:Gem::Dependency
94
+ name: inherited_resources
95
+ prerelease: false
96
+ requirement: &id006 !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ hash: 3
102
+ segments:
103
+ - 0
104
+ version: "0"
105
+ type: :runtime
106
+ version_requirements: *id006
107
+ - !ruby/object:Gem::Dependency
108
+ name: simple_form
109
+ prerelease: false
110
+ requirement: &id007 !ruby/object:Gem::Requirement
111
+ none: false
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ hash: 3
116
+ segments:
117
+ - 0
118
+ version: "0"
119
+ type: :runtime
120
+ version_requirements: *id007
121
+ - !ruby/object:Gem::Dependency
122
+ name: delayed_job
123
+ prerelease: false
124
+ requirement: &id008 !ruby/object:Gem::Requirement
125
+ none: false
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ hash: 3
130
+ segments:
131
+ - 0
132
+ version: "0"
133
+ type: :runtime
134
+ version_requirements: *id008
135
+ - !ruby/object:Gem::Dependency
136
+ name: ruport
137
+ prerelease: false
138
+ requirement: &id009 !ruby/object:Gem::Requirement
139
+ none: false
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ hash: 3
144
+ segments:
145
+ - 0
146
+ version: "0"
147
+ type: :runtime
148
+ version_requirements: *id009
149
+ - !ruby/object:Gem::Dependency
150
+ name: ruport-util
151
+ prerelease: false
152
+ requirement: &id010 !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ hash: 3
158
+ segments:
159
+ - 0
160
+ version: "0"
161
+ type: :runtime
162
+ version_requirements: *id010
163
+ - !ruby/object:Gem::Dependency
164
+ name: dbi
165
+ prerelease: false
166
+ requirement: &id011 !ruby/object:Gem::Requirement
167
+ none: false
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ hash: 3
172
+ segments:
173
+ - 0
174
+ version: "0"
175
+ type: :runtime
176
+ version_requirements: *id011
177
+ - !ruby/object:Gem::Dependency
178
+ name: dbd-mysql
179
+ prerelease: false
180
+ requirement: &id012 !ruby/object:Gem::Requirement
181
+ none: false
182
+ requirements:
183
+ - - ">="
184
+ - !ruby/object:Gem::Version
185
+ hash: 3
186
+ segments:
187
+ - 0
188
+ version: "0"
189
+ type: :runtime
190
+ version_requirements: *id012
191
+ - !ruby/object:Gem::Dependency
192
+ name: database_cleaner
193
+ prerelease: false
194
+ requirement: &id013 !ruby/object:Gem::Requirement
195
+ none: false
196
+ requirements:
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ hash: 3
200
+ segments:
201
+ - 0
202
+ version: "0"
203
+ type: :development
204
+ version_requirements: *id013
205
+ - !ruby/object:Gem::Dependency
206
+ name: mocha
207
+ prerelease: false
208
+ requirement: &id014 !ruby/object:Gem::Requirement
209
+ none: false
210
+ requirements:
211
+ - - ">="
212
+ - !ruby/object:Gem::Version
213
+ hash: 3
214
+ segments:
215
+ - 0
216
+ version: "0"
217
+ type: :development
218
+ version_requirements: *id014
219
+ - !ruby/object:Gem::Dependency
220
+ name: shoulda
221
+ prerelease: false
222
+ requirement: &id015 !ruby/object:Gem::Requirement
223
+ none: false
224
+ requirements:
225
+ - - ">="
226
+ - !ruby/object:Gem::Version
227
+ hash: 3
228
+ segments:
229
+ - 0
230
+ version: "0"
231
+ type: :development
232
+ version_requirements: *id015
233
+ - !ruby/object:Gem::Dependency
234
+ name: factory_girl_rails
235
+ prerelease: false
236
+ requirement: &id016 !ruby/object:Gem::Requirement
237
+ none: false
238
+ requirements:
239
+ - - ">="
240
+ - !ruby/object:Gem::Version
241
+ hash: 3
242
+ segments:
243
+ - 0
244
+ version: "0"
245
+ type: :development
246
+ version_requirements: *id016
247
+ - !ruby/object:Gem::Dependency
248
+ name: capybara
249
+ prerelease: false
250
+ requirement: &id017 !ruby/object:Gem::Requirement
251
+ none: false
252
+ requirements:
253
+ - - ">="
254
+ - !ruby/object:Gem::Version
255
+ hash: 3
256
+ segments:
257
+ - 0
258
+ version: "0"
259
+ type: :development
260
+ version_requirements: *id017
261
+ - !ruby/object:Gem::Dependency
262
+ name: launchy
263
+ prerelease: false
264
+ requirement: &id018 !ruby/object:Gem::Requirement
265
+ none: false
266
+ requirements:
267
+ - - ">="
268
+ - !ruby/object:Gem::Version
269
+ hash: 3
270
+ segments:
271
+ - 0
272
+ version: "0"
273
+ type: :development
274
+ version_requirements: *id018
275
+ - !ruby/object:Gem::Dependency
276
+ name: timecop
277
+ prerelease: false
278
+ requirement: &id019 !ruby/object:Gem::Requirement
279
+ none: false
280
+ requirements:
281
+ - - ">="
282
+ - !ruby/object:Gem::Version
283
+ hash: 3
284
+ segments:
285
+ - 0
286
+ version: "0"
287
+ type: :development
288
+ version_requirements: *id019
289
+ - !ruby/object:Gem::Dependency
290
+ name: rspec-rails
291
+ prerelease: false
292
+ requirement: &id020 !ruby/object:Gem::Requirement
293
+ none: false
294
+ requirements:
295
+ - - ">="
296
+ - !ruby/object:Gem::Version
297
+ hash: 3
298
+ segments:
299
+ - 0
300
+ version: "0"
301
+ type: :development
302
+ version_requirements: *id020
303
+ - !ruby/object:Gem::Dependency
304
+ name: sqlite3
305
+ prerelease: false
306
+ requirement: &id021 !ruby/object:Gem::Requirement
307
+ none: false
308
+ requirements:
309
+ - - ">="
310
+ - !ruby/object:Gem::Version
311
+ hash: 3
312
+ segments:
313
+ - 0
314
+ version: "0"
315
+ type: :development
316
+ version_requirements: *id021
317
+ description: Reporting application
318
+ email:
319
+ - brian@bleonard.com
320
+ executables: []
321
+
322
+ extensions: []
323
+
324
+ extra_rdoc_files: []
325
+
326
+ files:
327
+ - app/assets/images/rails.png
328
+ - app/assets/javascripts/application.js
329
+ - app/assets/stylesheets/application.css
330
+ - app/assets/stylesheets/bootstrap.css
331
+ - app/controllers/application_controller.rb
332
+ - app/controllers/files_controller.rb
333
+ - app/controllers/main_controller.rb
334
+ - app/controllers/reports_controller.rb
335
+ - app/controllers/tables_controller.rb
336
+ - app/controllers/users_controller.rb
337
+ - app/formatters/html_formatter.rb
338
+ - app/formatters/json_formatter.rb
339
+ - app/helpers/application_helper.rb
340
+ - app/jobs/generate_report_job.rb
341
+ - app/models/report.rb
342
+ - app/models/table.rb
343
+ - app/models/user.rb
344
+ - app/transforms/column_filter.rb
345
+ - app/transforms/moving_average.rb
346
+ - app/transforms/transform.rb
347
+ - app/views/devise/sessions/new.erb
348
+ - app/views/layouts/application.html.erb
349
+ - app/views/main/home.erb
350
+ - app/views/reports/_form.erb
351
+ - app/views/reports/_list.erb
352
+ - app/views/reports/edit.erb
353
+ - app/views/reports/index.erb
354
+ - app/views/reports/new.erb
355
+ - app/views/reports/show.erb
356
+ - app/views/tables/_form.erb
357
+ - app/views/tables/_list.erb
358
+ - app/views/tables/edit.erb
359
+ - app/views/tables/index.erb
360
+ - app/views/tables/new.erb
361
+ - app/views/tables/show.erb
362
+ - app/views/users/_form.erb
363
+ - app/views/users/_items.erb
364
+ - app/views/users/_list.erb
365
+ - app/views/users/edit.erb
366
+ - app/views/users/index.erb
367
+ - app/views/users/new.erb
368
+ - app/views/users/show.erb
369
+ - config/application.rb
370
+ - config/authorization_rules.rb
371
+ - config/boot.rb
372
+ - config/daily.example.yml
373
+ - config/daily.yml
374
+ - config/database.yml
375
+ - config/environment.rb
376
+ - config/environments/development.rb
377
+ - config/environments/production.rb
378
+ - config/environments/test.rb
379
+ - config/initializers/backtrace_silencers.rb
380
+ - config/initializers/devise.rb
381
+ - config/initializers/inflections.rb
382
+ - config/initializers/mime_types.rb
383
+ - config/initializers/ruport.rb
384
+ - config/initializers/secret_token.rb
385
+ - config/initializers/session_store.rb
386
+ - config/initializers/simple_form.rb
387
+ - config/initializers/wrap_parameters.rb
388
+ - config/locales/devise.en.yml
389
+ - config/locales/en.yml
390
+ - config/locales/simple_form.en.yml
391
+ - config/routes.rb
392
+ - db/development.sqlite3
393
+ - db/migrate/20111109081414_devise_create_users.rb
394
+ - db/migrate/20111111165640_create_tables.rb
395
+ - db/migrate/20111112022333_add_name_to_tables.rb
396
+ - db/migrate/20111112170802_add_reports.rb
397
+ - db/migrate/20111113000026_add_guid_to_tables.rb
398
+ - db/migrate/20111113073326_add_times_to_reports.rb
399
+ - db/migrate/20111113075747_add_times_to_tables.rb
400
+ - db/migrate/20111114041729_create_delayed_jobs.rb
401
+ - db/migrate/20111114053016_add_report_to_delayed_jobs.rb
402
+ - db/migrate/20111115014959_add_admin_to_users.rb
403
+ - db/migrate/20111127065357_add_column_names_to_table.rb
404
+ - db/migrate/20111203020425_add_transform_to_table.rb
405
+ - db/migrate/20111214020029_add_formatter_data_to_reports.rb
406
+ - db/schema.rb
407
+ - db/seeds.rb
408
+ - db/test.sqlite3
409
+ - lib/daily/daily_config.rb
410
+ - lib/daily/engine.rb
411
+ - lib/daily/has_data.rb
412
+ - lib/daily/shared_behaviors.rb
413
+ - lib/daily/version.rb
414
+ - lib/daily.rb
415
+ - lib/tasks/user.rake
416
+ - MIT-LICENSE
417
+ - Rakefile
418
+ - README.mdown
419
+ has_rdoc: true
420
+ homepage: https://github.com/bleonard/daily
421
+ licenses: []
422
+
423
+ post_install_message:
424
+ rdoc_options: []
425
+
426
+ require_paths:
427
+ - lib
428
+ required_ruby_version: !ruby/object:Gem::Requirement
429
+ none: false
430
+ requirements:
431
+ - - ">="
432
+ - !ruby/object:Gem::Version
433
+ hash: 3
434
+ segments:
435
+ - 0
436
+ version: "0"
437
+ required_rubygems_version: !ruby/object:Gem::Requirement
438
+ none: false
439
+ requirements:
440
+ - - ">="
441
+ - !ruby/object:Gem::Version
442
+ hash: 3
443
+ segments:
444
+ - 0
445
+ version: "0"
446
+ requirements: []
447
+
448
+ rubyforge_project:
449
+ rubygems_version: 1.5.0
450
+ signing_key:
451
+ specification_version: 3
452
+ summary: Reporting application
453
+ test_files: []
454
+