comma 3.1.0 → 3.1.1
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.
- checksums.yaml +14 -6
- data/.travis.yml +2 -0
- data/Appraisals +6 -0
- data/Gemfile.lock +4 -4
- data/README.markdown +2 -2
- data/gemfiles/mongoid3.1.4.gemfile +8 -0
- data/gemfiles/mongoid3.1.4.gemfile.lock +58 -0
- data/lib/comma.rb +17 -12
- data/lib/comma/extractors.rb +1 -1
- data/lib/comma/object.rb +13 -4
- data/lib/comma/version.rb +1 -1
- data/spec/comma/rails/active_record_spec.rb +64 -43
- data/spec/comma/rails/mongoid_spec.rb +41 -0
- data/spec/spec_helper.rb +27 -12
- metadata +13 -9
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
Y2Q5ZWFkMjgwMjk0OGYzNTg3MTkyMzE0NmZkYmExNjMyN2RhNzYyNw==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MmYzZWQyMDhhNmFjNzUzZTVlZDJiMTg3YTk3ODg5MWNjZjZlNWY4Nw==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NTE2ZjcwNjA4YjY2YTIzNjFmNDkzOGRiMDkzMjgwMGM5Y2NiZmFmNTE5ZGI3
|
10
|
+
MjljMTExMDk3OGIyZjk3YzI1NDRlNzVhZGUxZDhjMjJjOWMxMjhiZTRlYzBl
|
11
|
+
ODE4N2ZkY2JhZWQ0YjU1MGQ5ZmIxN2IwYzMwODUwMDliMWUwMTA=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
ZWNmYTk1MDgzODBmMGE4ZDk3NjVlYjFjZDdkZGY3NjQ4NGFjNDVjOWU3Mjg0
|
14
|
+
NzkxNmRkYTU5OTk1ZTk2OTQyZTI4ZTk0YzQ3NmU4OTc4ZGJlN2Y3NTE1M2Iy
|
15
|
+
ZTEzYjQxM2ZlNmMzZmViYTRkZDZkMThmODc2MTM3YjBlOGQ2ZWY=
|
data/.travis.yml
CHANGED
data/Appraisals
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,21 +1,21 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
comma (3.1.
|
4
|
+
comma (3.1.1)
|
5
5
|
activesupport (>= 3.0.0)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: http://rubygems.org/
|
9
9
|
specs:
|
10
|
-
activesupport (3.2.
|
11
|
-
i18n (
|
10
|
+
activesupport (3.2.14)
|
11
|
+
i18n (~> 0.6, >= 0.6.4)
|
12
12
|
multi_json (~> 1.0)
|
13
13
|
appraisal (0.4.1)
|
14
14
|
bundler
|
15
15
|
rake
|
16
16
|
diff-lcs (1.1.3)
|
17
17
|
fastercsv (1.5.4)
|
18
|
-
i18n (0.6.
|
18
|
+
i18n (0.6.5)
|
19
19
|
multi_json (1.1.0)
|
20
20
|
rake (0.9.2.2)
|
21
21
|
rspec (2.8.0)
|
data/README.markdown
CHANGED
@@ -12,7 +12,7 @@ The mainline of this project builds gems to the 3.x version series, and is compa
|
|
12
12
|
* RBX 1.8 mode, 1.9 mode
|
13
13
|
* Rails 3.x (all versions, with ActiveRecord and Mongoid support)
|
14
14
|
|
15
|
-
[](https://travis-ci.org/comma-csv/comma)
|
15
|
+
[](https://travis-ci.org/comma-csv/comma) [](https://codeclimate.com/github/comma-csv/comma)
|
16
16
|
|
17
17
|
###LOOKING FOR RAILS 2?
|
18
18
|
* Rails 2 is supported in the 'rails2' branch of this project, and versioned in the 2.x version of this gem. (https://github.com/comma-csv/comma/tree/rails2).
|
@@ -24,7 +24,7 @@ Comma is distributed as a gem, best installed via Bundler.
|
|
24
24
|
Include the gem in your Gemfile:
|
25
25
|
|
26
26
|
```Ruby
|
27
|
-
gem "comma", "~> 3.0
|
27
|
+
gem "comma", "~> 3.1.0"
|
28
28
|
```
|
29
29
|
|
30
30
|
Or, if you want to live life on the edge, you can get master from the main comma repository:
|
@@ -0,0 +1,58 @@
|
|
1
|
+
PATH
|
2
|
+
remote: /Users/tom/src/personal/comma
|
3
|
+
specs:
|
4
|
+
comma (3.1.0)
|
5
|
+
activesupport (>= 3.0.0)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: http://rubygems.org/
|
9
|
+
specs:
|
10
|
+
activemodel (3.2.14)
|
11
|
+
activesupport (= 3.2.14)
|
12
|
+
builder (~> 3.0.0)
|
13
|
+
activesupport (3.2.14)
|
14
|
+
i18n (~> 0.6, >= 0.6.4)
|
15
|
+
multi_json (~> 1.0)
|
16
|
+
appraisal (0.4.1)
|
17
|
+
bundler
|
18
|
+
rake
|
19
|
+
builder (3.0.4)
|
20
|
+
diff-lcs (1.1.3)
|
21
|
+
fastercsv (1.5.5)
|
22
|
+
i18n (0.6.5)
|
23
|
+
mongoid (3.1.4)
|
24
|
+
activemodel (~> 3.2)
|
25
|
+
moped (~> 1.4)
|
26
|
+
origin (~> 1.0)
|
27
|
+
tzinfo (~> 0.3.22)
|
28
|
+
moped (1.5.1)
|
29
|
+
multi_json (1.7.9)
|
30
|
+
origin (1.1.0)
|
31
|
+
rake (0.9.6)
|
32
|
+
rspec (2.8.0)
|
33
|
+
rspec-core (~> 2.8.0)
|
34
|
+
rspec-expectations (~> 2.8.0)
|
35
|
+
rspec-mocks (~> 2.8.0)
|
36
|
+
rspec-core (2.8.0)
|
37
|
+
rspec-expectations (2.8.0)
|
38
|
+
diff-lcs (~> 1.1.2)
|
39
|
+
rspec-mocks (2.8.0)
|
40
|
+
simplecov (0.7.1)
|
41
|
+
multi_json (~> 1.0)
|
42
|
+
simplecov-html (~> 0.7.1)
|
43
|
+
simplecov-html (0.7.1)
|
44
|
+
sqlite3 (1.3.8)
|
45
|
+
tzinfo (0.3.37)
|
46
|
+
|
47
|
+
PLATFORMS
|
48
|
+
ruby
|
49
|
+
|
50
|
+
DEPENDENCIES
|
51
|
+
appraisal (~> 0.4.1)
|
52
|
+
comma!
|
53
|
+
fastercsv
|
54
|
+
mongoid (= 3.1.4)
|
55
|
+
rake (~> 0.9.2)
|
56
|
+
rspec (~> 2.8.0)
|
57
|
+
simplecov
|
58
|
+
sqlite3 (~> 1.3.4)
|
data/lib/comma.rb
CHANGED
@@ -24,10 +24,13 @@ module Comma
|
|
24
24
|
}
|
25
25
|
end
|
26
26
|
|
27
|
-
require 'active_support/
|
28
|
-
|
29
|
-
require 'comma/relation' if defined?(ActiveRecord::Relation)
|
30
|
-
|
27
|
+
require 'active_support/lazy_load_hooks'
|
28
|
+
ActiveSupport.on_load(:active_record) do
|
29
|
+
require 'comma/relation' if defined?(ActiveRecord::Relation)
|
30
|
+
end
|
31
|
+
ActiveSupport.on_load(:mongoid) do
|
32
|
+
require 'comma/mongoid'
|
33
|
+
end
|
31
34
|
|
32
35
|
require 'comma/extractors'
|
33
36
|
require 'comma/generator'
|
@@ -35,13 +38,15 @@ require 'comma/array'
|
|
35
38
|
require 'comma/object'
|
36
39
|
|
37
40
|
#Load into Rails controllers
|
38
|
-
|
39
|
-
ActionController::Renderers.add
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
41
|
+
ActiveSupport.on_load(:action_controller) do
|
42
|
+
if defined?(ActionController::Renderers) && ActionController::Renderers.respond_to?(:add)
|
43
|
+
ActionController::Renderers.add :csv do |obj, options|
|
44
|
+
filename = options[:filename] || 'data'
|
45
|
+
extension = options[:extension] || 'csv'
|
46
|
+
mime_type = options[:mime_type] || Mime::CSV
|
47
|
+
#Capture any CSV optional settings passed to comma or comma specific options
|
48
|
+
csv_options = options.slice(*CSV_HANDLER::DEFAULT_OPTIONS.merge(Comma::DEFAULT_OPTIONS).keys)
|
49
|
+
send_data obj.to_comma(csv_options), :type => mime_type, :disposition => "attachment; filename=#{filename}.#{extension}"
|
50
|
+
end
|
46
51
|
end
|
47
52
|
end
|
data/lib/comma/extractors.rb
CHANGED
data/lib/comma/object.rb
CHANGED
@@ -6,12 +6,21 @@ class Object
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def to_comma(style = :default)
|
9
|
-
|
10
|
-
Comma::DataExtractor.new(self, style, self.class.comma_formats).results
|
9
|
+
extract_with(Comma::DataExtractor, style)
|
11
10
|
end
|
12
11
|
|
13
12
|
def to_comma_headers(style = :default)
|
14
|
-
|
15
|
-
|
13
|
+
extract_with(Comma::HeaderExtractor, style)
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def extract_with(extractor_class, style = :default)
|
19
|
+
raise_unless_style_exists(style)
|
20
|
+
extractor_class.new(self, style, self.class.comma_formats).results
|
21
|
+
end
|
22
|
+
|
23
|
+
def raise_unless_style_exists(style)
|
24
|
+
raise "No comma format for class #{self.class} defined for style #{style}" unless self.comma_formats && self.comma_formats[style]
|
16
25
|
end
|
17
26
|
end
|
data/lib/comma/version.rb
CHANGED
@@ -1,69 +1,90 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
|
-
|
4
|
+
if defined? ActiveRecord
|
5
5
|
|
6
|
-
|
7
|
-
scope :teenagers, lambda { where(:age => 13..19) }
|
6
|
+
describe Comma, 'generating CSV from an ActiveRecord object' do
|
8
7
|
|
9
|
-
|
10
|
-
|
11
|
-
age
|
12
|
-
end
|
8
|
+
class Person < ActiveRecord::Base
|
9
|
+
scope :teenagers, lambda { where(:age => 13..19) }
|
13
10
|
|
14
|
-
|
11
|
+
comma do
|
12
|
+
name
|
13
|
+
age
|
14
|
+
end
|
15
|
+
|
16
|
+
has_one :job
|
15
17
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
comma :issue_75 do
|
19
|
+
job :title
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
class Job < ActiveRecord::Base
|
24
|
+
belongs_to :person
|
21
25
|
end
|
22
|
-
Person.reset_column_information
|
23
|
-
end
|
24
26
|
|
25
|
-
|
26
|
-
|
27
|
+
before(:all) do
|
28
|
+
#Setup AR model in memory
|
29
|
+
ActiveRecord::Base.connection.create_table :people, :force => true do |table|
|
30
|
+
table.column :name, :string
|
31
|
+
table.column :age, :integer
|
32
|
+
end
|
33
|
+
Person.reset_column_information
|
34
|
+
|
35
|
+
ActiveRecord::Base.connection.create_table :jobs, :force => true do |table|
|
36
|
+
table.column :person_id, :integer
|
37
|
+
table.column :title, :string
|
38
|
+
end
|
39
|
+
Job.reset_column_information
|
40
|
+
|
27
41
|
@person = Person.new(:age => 18, :name => 'Junior')
|
28
42
|
@person.save!
|
29
43
|
end
|
30
44
|
|
31
|
-
|
32
|
-
|
33
|
-
|
45
|
+
describe "case" do
|
46
|
+
it 'should extend ActiveRecord::NamedScope::Scope to add a #to_comma method which will return CSV content for objects within the scope' do
|
47
|
+
Person.teenagers.to_comma.should == "Name,Age\nJunior,18\n"
|
48
|
+
end
|
34
49
|
|
35
|
-
|
36
|
-
|
50
|
+
it 'should find in batches' do
|
51
|
+
Person.teenagers.to_comma
|
52
|
+
end
|
37
53
|
end
|
38
|
-
end
|
39
54
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
55
|
+
describe 'with custom value_humanizer' do
|
56
|
+
before do
|
57
|
+
Comma::HeaderExtractor.value_humanizer =
|
58
|
+
lambda do |value, model_class|
|
59
|
+
if model_class.respond_to?(:human_attribute_name)
|
60
|
+
model_class.human_attribute_name(value)
|
61
|
+
else
|
62
|
+
value.is_a?(String) ? value : value.to_s.humanize
|
63
|
+
end
|
48
64
|
end
|
49
|
-
end
|
50
65
|
|
51
|
-
|
52
|
-
|
53
|
-
|
66
|
+
I18n.config.backend.store_translations(:ja, {:activerecord => {:attributes => {:person => {:age => '年齢', :name => '名前'}}}})
|
67
|
+
@original_locale = I18n.locale
|
68
|
+
I18n.locale = :ja
|
69
|
+
end
|
54
70
|
|
55
|
-
|
56
|
-
|
71
|
+
after do
|
72
|
+
I18n.locale = @original_locale
|
57
73
|
|
58
|
-
|
59
|
-
|
74
|
+
Comma::HeaderExtractor.value_humanizer =
|
75
|
+
Comma::HeaderExtractor::DEFAULT_VALUE_HUMANIZER
|
76
|
+
end
|
60
77
|
|
61
|
-
|
62
|
-
|
78
|
+
it 'should i18n-ize header values' do
|
79
|
+
Person.teenagers.to_comma.should match(/^名前,年齢/)
|
80
|
+
end
|
63
81
|
end
|
64
82
|
|
65
|
-
|
66
|
-
|
83
|
+
describe 'github issue 75' do
|
84
|
+
it 'should find association' do
|
85
|
+
lambda { Person.all.to_comma(:issue_75) }.should_not raise_error
|
86
|
+
end
|
67
87
|
end
|
68
88
|
end
|
89
|
+
|
69
90
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
if defined? Mongoid
|
5
|
+
|
6
|
+
describe Comma, 'generating CSV from an Mongoid object' do
|
7
|
+
|
8
|
+
class Person
|
9
|
+
include Mongoid::Document
|
10
|
+
|
11
|
+
field :name, :type => String
|
12
|
+
field :age, :type => Integer
|
13
|
+
|
14
|
+
scope :teenagers, between(:age => 13..19)
|
15
|
+
|
16
|
+
comma do
|
17
|
+
name
|
18
|
+
age
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
after(:all) do
|
23
|
+
Mongoid.purge!
|
24
|
+
end
|
25
|
+
|
26
|
+
describe "case" do
|
27
|
+
before do
|
28
|
+
@person = Person.new(:age => 18, :name => 'Junior')
|
29
|
+
@person.save
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'should extend ActiveRecord::NamedScope::Scope to add a #to_comma method which will return CSV content for objects within the scope' do
|
33
|
+
Person.teenagers.to_comma.should == "Name,Age\nJunior,18\n"
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'should find in batches' do
|
37
|
+
Person.teenagers.to_comma
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,14 +1,23 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
1
2
|
require 'rubygems'
|
2
|
-
|
3
|
-
|
3
|
+
$LOAD_PATH.unshift(File.expand_path(File.join(*%w{.. .. lib}), __FILE__))
|
4
|
+
|
5
|
+
begin
|
6
|
+
require 'rails'
|
7
|
+
rescue LoadError
|
8
|
+
end
|
4
9
|
|
10
|
+
require 'simplecov'
|
5
11
|
SimpleCov.start do
|
6
12
|
add_filter "spec"
|
7
13
|
use_merging true
|
8
14
|
merge_timeout 600
|
9
15
|
end
|
10
16
|
|
11
|
-
|
17
|
+
require 'bundler/setup'
|
18
|
+
Bundler.require
|
19
|
+
|
20
|
+
if defined? Rails
|
12
21
|
#Conditionally load rails app for controller tests if rspec-rails gem is installed
|
13
22
|
require "rails_app/config/environment"
|
14
23
|
require 'rspec/rails'
|
@@ -30,18 +39,24 @@ begin
|
|
30
39
|
config.use_transactional_fixtures = true
|
31
40
|
end
|
32
41
|
|
33
|
-
|
42
|
+
else
|
34
43
|
# Normal tests : Basic active record + support only calls
|
35
44
|
SimpleCov.command_name 'rspec:without_rails'
|
36
45
|
|
37
|
-
|
46
|
+
begin
|
47
|
+
require 'active_record'
|
48
|
+
config = YAML::load(IO.read(File.dirname(__FILE__) + '/rails_app/config/database.yml'))
|
49
|
+
ActiveRecord::Base.establish_connection(config['test'])
|
50
|
+
rescue LoadError
|
51
|
+
end
|
38
52
|
|
39
|
-
|
40
|
-
|
53
|
+
begin
|
54
|
+
require 'mongoid'
|
55
|
+
Mongoid.configure do |mconfig|
|
56
|
+
mconfig.sessions = {:default => {:hosts => ['localhost:27017'], :database => 'comma_test'}}
|
57
|
+
end
|
58
|
+
rescue LoadError
|
59
|
+
end
|
41
60
|
end
|
42
61
|
|
43
|
-
|
44
|
-
|
45
|
-
require 'comma'
|
46
|
-
|
47
|
-
require File.expand_path('../../spec/non_rails_app/ruby_classes' , __FILE__)
|
62
|
+
require File.expand_path('../../spec/non_rails_app/ruby_classes' , __FILE__)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: comma
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.1.
|
4
|
+
version: 3.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marcus Crafter
|
@@ -9,20 +9,20 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-08-
|
12
|
+
date: 2013-08-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - '>='
|
18
|
+
- - ! '>='
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: 3.0.0
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- - '>='
|
25
|
+
- - ! '>='
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: 3.0.0
|
28
28
|
- !ruby/object:Gem::Dependency
|
@@ -85,14 +85,14 @@ dependencies:
|
|
85
85
|
name: simplecov
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- - '>='
|
88
|
+
- - ! '>='
|
89
89
|
- !ruby/object:Gem::Version
|
90
90
|
version: '0'
|
91
91
|
type: :development
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
|
-
- - '>='
|
95
|
+
- - ! '>='
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '0'
|
98
98
|
description: Ruby Comma Seperated Values generation library
|
@@ -122,6 +122,8 @@ files:
|
|
122
122
|
- gemfiles/active3.2.11.gemfile.lock
|
123
123
|
- gemfiles/active4.0.0.gemfile
|
124
124
|
- gemfiles/active4.0.0.gemfile.lock
|
125
|
+
- gemfiles/mongoid3.1.4.gemfile
|
126
|
+
- gemfiles/mongoid3.1.4.gemfile.lock
|
125
127
|
- gemfiles/rails3.0.9.gemfile
|
126
128
|
- gemfiles/rails3.0.9.gemfile.lock
|
127
129
|
- gemfiles/rails3.1.1.gemfile
|
@@ -144,6 +146,7 @@ files:
|
|
144
146
|
- spec/comma/comma_spec.rb
|
145
147
|
- spec/comma/extractors_spec.rb
|
146
148
|
- spec/comma/rails/active_record_spec.rb
|
149
|
+
- spec/comma/rails/mongoid_spec.rb
|
147
150
|
- spec/controllers/users_controller_spec.rb
|
148
151
|
- spec/non_rails_app/ruby_classes.rb
|
149
152
|
- spec/rails_app/Rakefile
|
@@ -185,17 +188,17 @@ require_paths:
|
|
185
188
|
- lib
|
186
189
|
required_ruby_version: !ruby/object:Gem::Requirement
|
187
190
|
requirements:
|
188
|
-
- - '>='
|
191
|
+
- - ! '>='
|
189
192
|
- !ruby/object:Gem::Version
|
190
193
|
version: '0'
|
191
194
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
192
195
|
requirements:
|
193
|
-
- - '>='
|
196
|
+
- - ! '>='
|
194
197
|
- !ruby/object:Gem::Version
|
195
198
|
version: '0'
|
196
199
|
requirements: []
|
197
200
|
rubyforge_project: comma
|
198
|
-
rubygems_version: 2.0.
|
201
|
+
rubygems_version: 2.0.7
|
199
202
|
signing_key:
|
200
203
|
specification_version: 4
|
201
204
|
summary: Ruby Comma Seperated Values generation library
|
@@ -203,6 +206,7 @@ test_files:
|
|
203
206
|
- spec/comma/comma_spec.rb
|
204
207
|
- spec/comma/extractors_spec.rb
|
205
208
|
- spec/comma/rails/active_record_spec.rb
|
209
|
+
- spec/comma/rails/mongoid_spec.rb
|
206
210
|
- spec/controllers/users_controller_spec.rb
|
207
211
|
- spec/non_rails_app/ruby_classes.rb
|
208
212
|
- spec/rails_app/Rakefile
|