kitestrings 1.0.1 → 1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: daa3e59792293fcd2042a36493bb20e8aa9748da
4
- data.tar.gz: 41b5a9186fc1b3dd85ff851982b1771431b12849
3
+ metadata.gz: 9f8cfadafb753d3b207291378f33d28c54544695
4
+ data.tar.gz: 353789de7071c765b2a09134199761d43b1b2220
5
5
  SHA512:
6
- metadata.gz: cbe0ce5547d89aa19a7039307fb700f8f33dbae58c7620a0086d6049d4e542bfd18b528d5c411dbcf0746f5f4818525f70276589453ae4368cf051cb5fcbe0b8
7
- data.tar.gz: b079c4f4322f18b345050dddcf4e262196de8001e28e6e3180b59b80c6a08f10ce5b4c631d516ed33fa0e0fe8c933219cfcc379d11200c18ff59af18e0fe685b
6
+ metadata.gz: 8954419b577c34c1e9cf80930521ee623e01a6cd58aec11e7fd87c3b488e5da53ac8555342b1c52ec0f4a329cd14cb726df826201ed9383240451eec757ba1ce
7
+ data.tar.gz: a9f4038bc92af401e244105262d79bb6b138881c08090612eb542db17fb07363d2017ad86ee0c5dd7d5bcecb713521816188b05a56f27917ed483238a8d3253a
data/CHANGELOG.md ADDED
@@ -0,0 +1,13 @@
1
+ # Version history:
2
+
3
+ ## 1.0.2
4
+
5
+ * Added FormObject#update to behave like persisted active record model objects.
6
+
7
+ ## 1.0.1
8
+
9
+ * Removed ActiveRecord::Persitence from FormObject
10
+
11
+ ## 1.0.0
12
+
13
+ * Initial release
data/kitestrings.gemspec CHANGED
@@ -6,8 +6,8 @@ require 'kitestrings/version'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "kitestrings"
8
8
  spec.version = Kitestrings::VERSION
9
- spec.authors = ["ridget"]
10
- spec.email = ["tom.ridge@tworedkites.com"]
9
+ spec.authors = ["ridget", "Matt Connolly"]
10
+ spec.email = ["tom.ridge@tworedkites.com", "matt.connolly@tworedkites.com"]
11
11
  spec.summary = %q{For all the 2rk goodness}
12
12
  spec.description = %q{}
13
13
  spec.homepage = ""
@@ -24,5 +24,7 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency "bundler", "~> 1.6"
25
25
  spec.add_development_dependency "rake"
26
26
  spec.add_development_dependency "rspec", "~> 2.14"
27
- spec.add_development_dependency 'generator_spec'
27
+ spec.add_development_dependency "generator_spec"
28
+ spec.add_development_dependency "sqlite3"
29
+ spec.add_development_dependency "activerecord", ">= 3.2"
28
30
  end
data/lib/form_object.rb CHANGED
@@ -78,6 +78,14 @@ module FormObject
78
78
  result
79
79
  end
80
80
 
81
+ # implement update as per ActiveRecord::Persistence
82
+ def update(attrs)
83
+ assign_attibutes(attrs)
84
+ save
85
+ end
86
+
87
+ alias update_attributes update
88
+
81
89
  module DelegateEverything
82
90
  def method_missing(method, *args, &block)
83
91
  if resource.respond_to?(method)
@@ -1,3 +1,3 @@
1
1
  module Kitestrings
2
- VERSION = "1.0.1"
2
+ VERSION = "1.0.2"
3
3
  end
@@ -88,11 +88,11 @@ module PageAndSortHelper
88
88
  end
89
89
  end
90
90
 
91
- if options[:skip_pagination]
92
- scope
93
- else
94
- # apply kaminari pagination
91
+ # apply kaminari pagination
92
+ if scope.respond_to?(:page) && !options[:skip_pagination]
95
93
  scope.page(params[:page])
94
+ else
95
+ scope
96
96
  end
97
97
  end
98
98
  end
@@ -1,13 +1,12 @@
1
1
  require 'spec_helper'
2
2
  require 'page_and_sort_helper'
3
- require 'active_record'
4
-
5
3
 
6
4
  describe PageAndSortHelper do
7
5
 
8
- # TODO: This spec file needs a test database to talk to. We don't have one set up for this gem yet.
9
-
10
6
  class Record < ActiveRecord::Base
7
+ def self.order_by_genre(direction)
8
+ order("CASE genre_id WHEN 1 THEN 2 ELSE 3 END #{direction == :asc ? 'ASC' : 'DESC'}")
9
+ end
11
10
  end
12
11
 
13
12
  context "page_and_sort" do
@@ -32,15 +31,15 @@ describe PageAndSortHelper do
32
31
  let(:params) { {sort: "name", sort_direction: "asc"} }
33
32
  it "on Record.scoped" do
34
33
  scope = subject.page_and_sort(scope_of(Record))
35
- expect(scope.to_sql).to include("ORDER BY `companies`.`name` ASC")
34
+ expect(scope.to_sql).to include("ORDER BY \"records\".\"name\" ASC")
36
35
  end
37
36
  it "on Record" do
38
37
  scope = subject.page_and_sort(Record)
39
- expect(scope.to_sql).to include("ORDER BY `companies`.`name` ASC")
38
+ expect(scope.to_sql).to include("ORDER BY \"records\".\"name\" ASC")
40
39
  end
41
40
  it "on Record.where" do
42
41
  scope = subject.page_and_sort(Record.where("a = b"))
43
- expect(scope.to_sql).to include("ORDER BY `companies`.`name` ASC")
42
+ expect(scope.to_sql).to include("ORDER BY \"records\".\"name\" ASC")
44
43
  expect(scope.to_sql).to include("a = b")
45
44
  end
46
45
  end
@@ -48,20 +47,20 @@ describe PageAndSortHelper do
48
47
  let(:params) { {sort: "name", sort_direction: "desc"} }
49
48
  it "on Record.scoped" do
50
49
  scope = subject.page_and_sort(scope_of(Record))
51
- expect(scope.to_sql).to include("ORDER BY `companies`.`name` DESC")
50
+ expect(scope.to_sql).to include("ORDER BY \"records\".\"name\" DESC")
52
51
  end
53
52
  it "on Record" do
54
53
  scope = subject.page_and_sort(Record)
55
- expect(scope.to_sql).to include("ORDER BY `companies`.`name` DESC")
54
+ expect(scope.to_sql).to include("ORDER BY \"records\".\"name\" DESC")
56
55
  end
57
56
  it "on Record.where" do
58
57
  scope = subject.page_and_sort(Record.where("a = b"))
59
- expect(scope.to_sql).to include("ORDER BY `companies`.`name` DESC")
58
+ expect(scope.to_sql).to include("ORDER BY \"records\".\"name\" DESC")
60
59
  expect(scope.to_sql).to include("a = b")
61
60
  end
62
61
  end
63
62
  context "record sort asc" do
64
- let(:params) { {sort: "record_type", sort_direction: "asc"} }
63
+ let(:params) { {sort: "genre", sort_direction: "asc"} }
65
64
  it "on Record.scoped" do
66
65
  scope = subject.page_and_sort(scope_of(Record))
67
66
  expect(scope.to_sql).to match(/ORDER BY CASE genre_id .* END ASC/)
@@ -77,7 +76,7 @@ describe PageAndSortHelper do
77
76
  end
78
77
  end
79
78
  context "record sort desc" do
80
- let(:params) { {sort: "record_type", sort_direction: "desc"} }
79
+ let(:params) { {sort: "genre", sort_direction: "desc"} }
81
80
  it "on Record.scoped" do
82
81
  scope = subject.page_and_sort(scope_of(Record))
83
82
  expect(scope.to_sql).to match(/ORDER BY CASE genre_id .* END DESC/)
data/spec/spec_helper.rb CHANGED
@@ -15,3 +15,5 @@ RSpec.configure do |config|
15
15
  # --seed 1234
16
16
  config.order = 'random'
17
17
  end
18
+
19
+ Dir["spec/support/**/*.rb"].each { |file| load file }
@@ -0,0 +1,13 @@
1
+ require 'active_record'
2
+
3
+ puts "creating in memory sql lite database"
4
+ ActiveRecord::Base.establish_connection adapter: "sqlite3", database: ":memory:"
5
+
6
+ ActiveRecord::Migration.create_table :record do |t|
7
+ t.string :name
8
+ t.integer :genre_id
9
+ t.timestamps
10
+ end
11
+
12
+ class Record < ActiveRecord::Base
13
+ end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitestrings
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - ridget
8
+ - Matt Connolly
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-06-30 00:00:00.000000000 Z
12
+ date: 2014-07-02 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: rails
@@ -94,15 +95,45 @@ dependencies:
94
95
  - - ">="
95
96
  - !ruby/object:Gem::Version
96
97
  version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: sqlite3
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: activerecord
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '3.2'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '3.2'
97
126
  description: ''
98
127
  email:
99
128
  - tom.ridge@tworedkites.com
129
+ - matt.connolly@tworedkites.com
100
130
  executables: []
101
131
  extensions: []
102
132
  extra_rdoc_files: []
103
133
  files:
104
134
  - ".gitignore"
105
135
  - ".rspec"
136
+ - CHANGELOG.md
106
137
  - Gemfile
107
138
  - LICENSE.txt
108
139
  - README.md
@@ -147,6 +178,7 @@ files:
147
178
  - spec/lib/page_and_sort_helper_spec.rb
148
179
  - spec/lib/size_validator_spec.rb
149
180
  - spec/spec_helper.rb
181
+ - spec/support/active_record.rb
150
182
  homepage: ''
151
183
  licenses:
152
184
  - MIT
@@ -179,3 +211,4 @@ test_files:
179
211
  - spec/lib/page_and_sort_helper_spec.rb
180
212
  - spec/lib/size_validator_spec.rb
181
213
  - spec/spec_helper.rb
214
+ - spec/support/active_record.rb