daily 0.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.
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
+