mongosteen 0.1.7 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a2ffeeae51d0306d1f73592a7625c8d7aedd5845
4
- data.tar.gz: 01698c266ab659745f276d5f3d0c1b0e76fb3abf
3
+ metadata.gz: 325065f2760805276ab8edd204e936e5432454e3
4
+ data.tar.gz: a403374a18b9d16305e4b5d41afc6c2c637159f8
5
5
  SHA512:
6
- metadata.gz: e0bc8e85b29307e7da8c3525199e8e37165036b5d0eefb95fc50d521c4c1fe7e4a4dfc1fa55f21b3d9e3d454926f9bdc3842fcbd235b61a06108fce73a74636b
7
- data.tar.gz: 75a9eeaf8caad1b54d849e2524466ff85fd8b693fc1235d0eb11af89a8b6b7e326d46a061e8b4a554ce739e13a057c77d0597c77ee07518222a1dd734214d279
6
+ metadata.gz: ef6cb8f0f688f1e03d823ea8916bbad5cbf1f40523805030cc58967fc1eab5ea8d269dd2e6897c7075d68af74c54829a41089fc31ebbc575f2068e66013eb7ae
7
+ data.tar.gz: 1463a325e93a5fb6b398afe82c83b310b76217003d882762ec03e0adbddbaca7a84f7bf1e1a8681e2762345dfce070e7ce152bd9cc5df7ec4dd499978ecbf100
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
1
  test/rails_app/tmp
2
2
  test/rails_app/log
3
3
  log
4
+ pkg/
data/Gemfile CHANGED
@@ -1,11 +1,3 @@
1
1
  source "http://rubygems.org"
2
2
 
3
3
  gemspec
4
-
5
- gem 'rails', '4.2.0'
6
- gem 'coffee-rails', '~> 4.1.0'
7
- gem 'minitest-rails-capybara'
8
- gem 'capybara-webkit'
9
- gem 'mongoid'
10
- gem 'mongoid-history'
11
- gem 'kaminari'
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mongosteen (0.1.6)
4
+ mongosteen (0.1.8)
5
5
  has_scope (> 0.5)
6
6
  inherited_resources (>= 1.6)
7
7
  kaminari (>= 0.16)
@@ -12,53 +12,53 @@ PATH
12
12
  GEM
13
13
  remote: http://rubygems.org/
14
14
  specs:
15
- actionmailer (4.2.0)
16
- actionpack (= 4.2.0)
17
- actionview (= 4.2.0)
18
- activejob (= 4.2.0)
15
+ actionmailer (4.2.4)
16
+ actionpack (= 4.2.4)
17
+ actionview (= 4.2.4)
18
+ activejob (= 4.2.4)
19
19
  mail (~> 2.5, >= 2.5.4)
20
20
  rails-dom-testing (~> 1.0, >= 1.0.5)
21
- actionpack (4.2.0)
22
- actionview (= 4.2.0)
23
- activesupport (= 4.2.0)
24
- rack (~> 1.6.0)
21
+ actionpack (4.2.4)
22
+ actionview (= 4.2.4)
23
+ activesupport (= 4.2.4)
24
+ rack (~> 1.6)
25
25
  rack-test (~> 0.6.2)
26
26
  rails-dom-testing (~> 1.0, >= 1.0.5)
27
- rails-html-sanitizer (~> 1.0, >= 1.0.1)
28
- actionview (4.2.0)
29
- activesupport (= 4.2.0)
27
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
28
+ actionview (4.2.4)
29
+ activesupport (= 4.2.4)
30
30
  builder (~> 3.1)
31
31
  erubis (~> 2.7.0)
32
32
  rails-dom-testing (~> 1.0, >= 1.0.5)
33
- rails-html-sanitizer (~> 1.0, >= 1.0.1)
34
- activejob (4.2.0)
35
- activesupport (= 4.2.0)
33
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
34
+ activejob (4.2.4)
35
+ activesupport (= 4.2.4)
36
36
  globalid (>= 0.3.0)
37
- activemodel (4.2.0)
38
- activesupport (= 4.2.0)
37
+ activemodel (4.2.4)
38
+ activesupport (= 4.2.4)
39
39
  builder (~> 3.1)
40
- activerecord (4.2.0)
41
- activemodel (= 4.2.0)
42
- activesupport (= 4.2.0)
40
+ activerecord (4.2.4)
41
+ activemodel (= 4.2.4)
42
+ activesupport (= 4.2.4)
43
43
  arel (~> 6.0)
44
- activesupport (4.2.0)
44
+ activesupport (4.2.4)
45
45
  i18n (~> 0.7)
46
46
  json (~> 1.7, >= 1.7.7)
47
47
  minitest (~> 5.1)
48
48
  thread_safe (~> 0.3, >= 0.3.4)
49
49
  tzinfo (~> 1.1)
50
50
  ansi (1.5.0)
51
- arel (6.0.0)
52
- bson (2.3.0)
51
+ arel (6.0.3)
52
+ bson (3.2.4)
53
53
  builder (3.2.2)
54
- capybara (2.4.4)
54
+ capybara (2.5.0)
55
55
  mime-types (>= 1.16)
56
56
  nokogiri (>= 1.3.3)
57
57
  rack (>= 1.0.0)
58
58
  rack-test (>= 0.5.4)
59
59
  xpath (~> 2.0)
60
- capybara-webkit (1.4.1)
61
- capybara (>= 2.3.0, < 2.5.0)
60
+ capybara-webkit (1.7.0)
61
+ capybara (>= 2.3.0, < 2.6.0)
62
62
  json
63
63
  coffee-rails (4.1.0)
64
64
  coffee-script (>= 2.2.0)
@@ -68,17 +68,17 @@ GEM
68
68
  execjs
69
69
  coffee-script-source (1.9.1.1)
70
70
  connection_pool (2.2.0)
71
- database_cleaner (1.4.1)
72
- easy_diff (0.0.4)
71
+ database_cleaner (1.0.1)
72
+ easy_diff (0.0.6)
73
73
  erubis (2.7.0)
74
- execjs (2.5.2)
74
+ execjs (2.6.0)
75
75
  factory_girl (4.5.0)
76
76
  activesupport (>= 3.0.0)
77
77
  factory_girl_rails (4.5.0)
78
78
  factory_girl (~> 4.5.0)
79
79
  railties (>= 3.0.0)
80
80
  fast-stemmer (1.0.2)
81
- globalid (0.3.5)
81
+ globalid (0.3.6)
82
82
  activesupport (>= 4.1.0)
83
83
  has_scope (0.6.0)
84
84
  actionpack (>= 3.2, < 5)
@@ -93,18 +93,18 @@ GEM
93
93
  kaminari (0.16.3)
94
94
  actionpack (>= 3.0.0)
95
95
  activesupport (>= 3.0.0)
96
- loofah (2.0.2)
96
+ loofah (2.0.3)
97
97
  nokogiri (>= 1.5.9)
98
98
  mail (2.6.3)
99
99
  mime-types (>= 1.16, < 3)
100
100
  mime-types (2.6.1)
101
101
  mini_portile (0.6.2)
102
- minitest (5.7.0)
103
- minitest-capybara (0.7.1)
102
+ minitest (5.8.0)
103
+ minitest-capybara (0.7.2)
104
104
  capybara (~> 2.2)
105
105
  minitest (~> 5.0)
106
106
  rake
107
- minitest-focus (1.1.1)
107
+ minitest-focus (1.1.2)
108
108
  minitest (>= 4, < 6)
109
109
  minitest-metadata (0.5.3)
110
110
  minitest (>= 4.7, < 6.0)
@@ -116,7 +116,7 @@ GEM
116
116
  minitest-capybara (~> 0.7.0)
117
117
  minitest-metadata (~> 0.5.0)
118
118
  minitest-rails (~> 2.1)
119
- minitest-reporters (1.0.16)
119
+ minitest-reporters (1.0.20)
120
120
  ansi
121
121
  builder
122
122
  minitest (>= 5.0)
@@ -133,48 +133,48 @@ GEM
133
133
  mongoid_search (0.3.2)
134
134
  fast-stemmer (~> 1.0.0)
135
135
  mongoid (>= 3.0.0)
136
- moped (2.0.4)
137
- bson (~> 2.2)
136
+ moped (2.0.7)
137
+ bson (~> 3.0)
138
138
  connection_pool (~> 2.0)
139
139
  optionable (~> 0.2.0)
140
140
  nokogiri (1.6.6.2)
141
141
  mini_portile (~> 0.6.0)
142
142
  optionable (0.2.0)
143
143
  origin (2.1.1)
144
- rack (1.6.1)
144
+ rack (1.6.4)
145
145
  rack-test (0.6.3)
146
146
  rack (>= 1.0)
147
- rails (4.2.0)
148
- actionmailer (= 4.2.0)
149
- actionpack (= 4.2.0)
150
- actionview (= 4.2.0)
151
- activejob (= 4.2.0)
152
- activemodel (= 4.2.0)
153
- activerecord (= 4.2.0)
154
- activesupport (= 4.2.0)
147
+ rails (4.2.4)
148
+ actionmailer (= 4.2.4)
149
+ actionpack (= 4.2.4)
150
+ actionview (= 4.2.4)
151
+ activejob (= 4.2.4)
152
+ activemodel (= 4.2.4)
153
+ activerecord (= 4.2.4)
154
+ activesupport (= 4.2.4)
155
155
  bundler (>= 1.3.0, < 2.0)
156
- railties (= 4.2.0)
156
+ railties (= 4.2.4)
157
157
  sprockets-rails
158
158
  rails-deprecated_sanitizer (1.0.3)
159
159
  activesupport (>= 4.2.0.alpha)
160
- rails-dom-testing (1.0.6)
160
+ rails-dom-testing (1.0.7)
161
161
  activesupport (>= 4.2.0.beta, < 5.0)
162
162
  nokogiri (~> 1.6.0)
163
163
  rails-deprecated_sanitizer (>= 1.0.1)
164
164
  rails-html-sanitizer (1.0.2)
165
165
  loofah (~> 2.0)
166
- railties (4.2.0)
167
- actionpack (= 4.2.0)
168
- activesupport (= 4.2.0)
166
+ railties (4.2.4)
167
+ actionpack (= 4.2.4)
168
+ activesupport (= 4.2.4)
169
169
  rake (>= 0.8.7)
170
170
  thor (>= 0.18.1, < 2.0)
171
171
  rake (10.4.2)
172
172
  responders (2.1.0)
173
173
  railties (>= 4.2.0, < 5)
174
174
  ruby-progressbar (1.7.5)
175
- sprockets (3.2.0)
175
+ sprockets (3.3.4)
176
176
  rack (~> 1.0)
177
- sprockets-rails (2.3.1)
177
+ sprockets-rails (2.3.2)
178
178
  actionpack (>= 3.0)
179
179
  activesupport (>= 3.0)
180
180
  sprockets (>= 2.8, < 4.0)
@@ -189,16 +189,17 @@ PLATFORMS
189
189
  ruby
190
190
 
191
191
  DEPENDENCIES
192
+ bundler (~> 1.9)
192
193
  capybara-webkit
193
194
  coffee-rails (~> 4.1.0)
194
- database_cleaner
195
+ database_cleaner (= 1.0.1)
195
196
  factory_girl_rails
196
- kaminari
197
197
  minitest-focus
198
198
  minitest-rails-capybara
199
199
  minitest-reporters
200
- mongoid
201
- mongoid-history
202
200
  mongosteen!
203
- rails (= 4.2.0)
204
- rake (>= 0.8.7)
201
+ rails (~> 4.2.3)
202
+ rake (~> 10.0)
203
+
204
+ BUNDLED WITH
205
+ 1.10.6
data/Rakefile CHANGED
@@ -1,5 +1,4 @@
1
1
  # encoding: utf-8
2
- require 'rubygems'
3
2
  require 'bundler/gem_tasks'
4
3
  require 'rake/testtask'
5
4
  require 'rdoc/task'
@@ -2,11 +2,14 @@
2
2
 
3
3
 
4
4
  require 'inherited_resources'
5
+ require 'mongoid'
5
6
  require 'mongoid_search'
6
7
  require 'mongoid-history'
7
8
  require 'kaminari'
8
9
  require 'has_scope'
9
10
 
11
+ require 'mongosteen/csv_renderer'
12
+
10
13
 
11
14
  module Mongosteen
12
15
  autoload :Actions, 'mongosteen/actions'
@@ -30,10 +33,13 @@ class ActionController::Base
30
33
  inherit_resources
31
34
 
32
35
  respond_to :json
36
+ respond_to :csv, :only => :index
33
37
 
34
38
  class_attribute :as_json_config
35
39
  class_attribute :json_default_methods
36
40
 
41
+ class_attribute :as_csv_config
42
+
37
43
  extend Mongosteen::ClassMethods
38
44
  include Mongosteen::BaseHelpers
39
45
  include Mongosteen::Actions
@@ -46,10 +52,11 @@ class ActionController::Base
46
52
  private "#{ instance_name }_params"
47
53
 
48
54
  # support for character default list item attributes
49
- chr_default_methods = %w( _list_item_title _list_item_subtitle _list_item_thumbnail )
55
+ chr_default_methods = %w( _list_item_title _list_item_subtitle _list_item_thumbnail _document_versions )
50
56
  self.json_default_methods = chr_default_methods.select { |m| self.resource_class.method_defined? m }
51
57
 
52
58
  json_config()
59
+ csv_config()
53
60
 
54
61
  end
55
62
  end
@@ -5,6 +5,7 @@ module Mongosteen
5
5
  def index(options={}, &block)
6
6
  super do |success, failure|
7
7
  success.json { render json: get_collection_ivar.as_json(as_json_config) }
8
+ success.csv { render csv: get_collection_ivar }
8
9
  end
9
10
  end
10
11
 
@@ -38,6 +39,3 @@ module Mongosteen
38
39
  end
39
40
  end
40
41
 
41
-
42
-
43
-
@@ -7,5 +7,10 @@ module Mongosteen
7
7
  self.as_json_config = config_hash
8
8
  end
9
9
 
10
+
11
+ def csv_config(config_hash={})
12
+ self.as_csv_config = config_hash
13
+ end
14
+
10
15
  end
11
16
  end
@@ -0,0 +1,36 @@
1
+ require 'csv'
2
+ require 'action_controller/metal/renderers'
3
+
4
+
5
+ ActionController::Renderers.add :csv do |objects, options|
6
+
7
+ return '' unless objects.first
8
+
9
+ object_klass = objects.first.class
10
+
11
+ return '' unless object_klass.respond_to? :fields
12
+
13
+ filename = object_klass.to_s.underscore.pluralize
14
+ columns = object_klass.fields.keys
15
+ csv_options = self.class.as_csv_config
16
+
17
+ if csv_options
18
+ filename = csv_options.fetch(:filename, filename)
19
+
20
+ columns &= csv_options[:only].map(&:to_s) if csv_options[:only]
21
+ columns -= csv_options[:except].map(&:to_s) if csv_options[:except]
22
+ columns += csv_options[:add_methods].map(&:to_s) if csv_options[:add_methods]
23
+ end
24
+
25
+ str = CSV.generate do |row|
26
+ row << columns
27
+
28
+ objects.each do |obj|
29
+ row << columns.map { |c| obj.send(c) }
30
+ end
31
+ end
32
+
33
+ return str
34
+
35
+ end
36
+
@@ -1,3 +1,3 @@
1
1
  module Mongosteen
2
- VERSION = "0.1.7"
2
+ VERSION = "0.1.8"
3
3
  end
@@ -29,16 +29,15 @@ json config.
29
29
  s.add_dependency('kaminari', '>= 0.16') # pagination
30
30
  s.add_dependency('has_scope', '> 0.5') # scopes
31
31
 
32
- s.add_development_dependency('rake', [ '>= 0.8.7' ])
33
-
34
32
  # automated tests
35
- s.add_development_dependency 'rails', '~> 4.1.2'
36
- s.add_development_dependency 'database_cleaner'
33
+ s.add_development_dependency 'bundler', '~> 1.9'
34
+ s.add_development_dependency 'rake', '~> 10.0'
35
+ s.add_development_dependency 'rails', '~> 4.2.3'
36
+ s.add_development_dependency 'coffee-rails', '~> 4.1.0'
37
+ s.add_development_dependency 'database_cleaner', '1.0.1'
37
38
  s.add_development_dependency 'factory_girl_rails'
39
+ s.add_development_dependency 'capybara-webkit'
38
40
  s.add_development_dependency 'minitest-reporters'
39
41
  s.add_development_dependency 'minitest-focus'
42
+ s.add_development_dependency 'minitest-rails-capybara'
40
43
  end
41
-
42
-
43
-
44
-
@@ -1,13 +1,17 @@
1
1
  ENV['RAILS_ENV'] ||= 'test'
2
2
  $:.unshift File.dirname(__FILE__)
3
+
3
4
  require 'rails_app/config/environment'
4
5
  require 'rails/test_help'
5
6
  require 'database_cleaner'
6
7
  require 'minitest/rails/capybara'
7
- require 'mongosteen'
8
8
 
9
+ # Capybara
9
10
  Capybara.javascript_driver = :webkit
10
- DatabaseCleaner[:mongoid].strategy = :truncation
11
+
12
+ # DatabaseCleaner
13
+ DatabaseCleaner.strategy = :truncation
14
+ DatabaseCleaner.clean_with(:truncation)
11
15
 
12
16
  class ActiveSupport::TestCase
13
17
  def setup
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongosteen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Kravets
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-14 00:00:00.000000000 Z
11
+ date: 2015-09-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inherited_resources
@@ -94,36 +94,78 @@ dependencies:
94
94
  - - ">"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0.5'
97
+ - !ruby/object:Gem::Dependency
98
+ name: bundler
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.9'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.9'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: rake
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
- - - ">="
115
+ - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: 0.8.7
117
+ version: '10.0'
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
- - - ">="
122
+ - - "~>"
109
123
  - !ruby/object:Gem::Version
110
- version: 0.8.7
124
+ version: '10.0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: rails
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
129
  - - "~>"
116
130
  - !ruby/object:Gem::Version
117
- version: 4.1.2
131
+ version: 4.2.3
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 4.2.3
139
+ - !ruby/object:Gem::Dependency
140
+ name: coffee-rails
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 4.1.0
118
146
  type: :development
119
147
  prerelease: false
120
148
  version_requirements: !ruby/object:Gem::Requirement
121
149
  requirements:
122
150
  - - "~>"
123
151
  - !ruby/object:Gem::Version
124
- version: 4.1.2
152
+ version: 4.1.0
125
153
  - !ruby/object:Gem::Dependency
126
154
  name: database_cleaner
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - '='
158
+ - !ruby/object:Gem::Version
159
+ version: 1.0.1
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '='
165
+ - !ruby/object:Gem::Version
166
+ version: 1.0.1
167
+ - !ruby/object:Gem::Dependency
168
+ name: factory_girl_rails
127
169
  requirement: !ruby/object:Gem::Requirement
128
170
  requirements:
129
171
  - - ">="
@@ -137,7 +179,7 @@ dependencies:
137
179
  - !ruby/object:Gem::Version
138
180
  version: '0'
139
181
  - !ruby/object:Gem::Dependency
140
- name: factory_girl_rails
182
+ name: capybara-webkit
141
183
  requirement: !ruby/object:Gem::Requirement
142
184
  requirements:
143
185
  - - ">="
@@ -178,6 +220,20 @@ dependencies:
178
220
  - - ">="
179
221
  - !ruby/object:Gem::Version
180
222
  version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: minitest-rails-capybara
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
181
237
  description: |
182
238
  Mongosteen is a library that helps to easily add RESTful actions to
183
239
  mongoid models with support of search, pagination, scopes, history,
@@ -198,6 +254,7 @@ files:
198
254
  - lib/mongosteen/actions.rb
199
255
  - lib/mongosteen/base_helpers.rb
200
256
  - lib/mongosteen/class_methods.rb
257
+ - lib/mongosteen/csv_renderer.rb
201
258
  - lib/mongosteen/permitted_params.rb
202
259
  - lib/mongosteen/version.rb
203
260
  - mongosteen.gemspec