ez 0.0.3 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -11
- data/ez.gemspec +3 -1
- data/lib/ez.rb +23 -2
- data/lib/ez/apis.rb +16 -3
- data/lib/ez/schema_modifier.rb +5 -5
- data/lib/ez/version.rb +2 -2
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb4add590cb7137b0a864fadaf1190a92cce6caa
|
4
|
+
data.tar.gz: 29a59670ea52b992b1dc872208f260f3046a10e8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 91f49da3157c021803916a576b230ec862dae42e8d8ee2f2528f7ca609283335782fab0ab11504e897158e3f581eb4313d6e276543e4281458f7a9cd695ca341
|
7
|
+
data.tar.gz: 449d5ca509417f2cca9714272bce6cd61e021accd19dfdf79bbc6910596807c870af2999e71403fbb0fe59fefdb43c401a7b283e52c8a5ff737655e521ca3f33
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
#
|
1
|
+
# EZ
|
2
2
|
|
3
|
-
|
3
|
+
For educational purposes only. Makes Rails a bit more beginner-friendly.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -16,14 +16,5 @@ Or install it yourself as:
|
|
16
16
|
|
17
17
|
$ gem install ez
|
18
18
|
|
19
|
-
## Usage
|
20
19
|
|
21
|
-
TODO: Write usage instructions here
|
22
20
|
|
23
|
-
## Contributing
|
24
|
-
|
25
|
-
1. Fork it
|
26
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
27
|
-
3. Commit your changes (`git commit -am 'Add some feature'`)
|
28
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
29
|
-
5. Create new Pull Request
|
data/ez.gemspec
CHANGED
@@ -5,7 +5,7 @@ require 'ez/version'
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "ez"
|
8
|
-
spec.version =
|
8
|
+
spec.version = EZ::VERSION
|
9
9
|
spec.authors = ["Jeff Cohen"]
|
10
10
|
spec.email = ["cohen.jeff@gmail.com"]
|
11
11
|
spec.description = "Gem for easier Rails development."
|
@@ -18,6 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = []
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
+
spec.add_runtime_dependency 'hirb'
|
22
|
+
|
21
23
|
spec.add_development_dependency "bundler", "~> 1.3"
|
22
24
|
spec.add_development_dependency "rake", '~> 10.0', '>= 10.0.0'
|
23
25
|
end
|
data/lib/ez.rb
CHANGED
@@ -4,11 +4,32 @@ require 'ez/mapper.rb'
|
|
4
4
|
require 'ez/apis.rb'
|
5
5
|
require 'ez/domain_modeler.rb'
|
6
6
|
require 'ez/controller.rb'
|
7
|
+
require 'ez/model.rb'
|
7
8
|
|
8
|
-
module
|
9
|
-
class
|
9
|
+
module EZ
|
10
|
+
class Railtie < Rails::Railtie
|
10
11
|
rake_tasks do
|
11
12
|
load "tasks/ez_tasks.rake"
|
12
13
|
end
|
14
|
+
|
15
|
+
initializer "ez" do
|
16
|
+
module ::Hirb
|
17
|
+
# A Formatter object formats an output object (using Formatter.format_output) into a string based on the views defined
|
18
|
+
# for its class and/or ancestry.
|
19
|
+
class Formatter
|
20
|
+
def determine_output_class(output)
|
21
|
+
if output.respond_to?(:to_a) && to_a_classes.any? {|e| output.is_a?(e) }
|
22
|
+
Array(output)[0].class
|
23
|
+
else
|
24
|
+
if output.is_a?(ActiveRecord::Base)
|
25
|
+
Hash
|
26
|
+
else
|
27
|
+
output.class
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
13
34
|
end
|
14
35
|
end
|
data/lib/ez/apis.rb
CHANGED
@@ -1,12 +1,25 @@
|
|
1
1
|
require 'json'
|
2
2
|
require 'open-uri'
|
3
3
|
|
4
|
-
module
|
4
|
+
module EZ
|
5
|
+
|
6
|
+
def self.weather(location = 'Evanston, IL')
|
7
|
+
# Only cache up to 30 locations to avoid abuse
|
8
|
+
@wx = {} unless @wx && @wx.keys.count < 30
|
9
|
+
|
10
|
+
# Cache based on location
|
11
|
+
@wx[location] ||= begin
|
12
|
+
puts "Getting the current weather from openweathermap.org..."
|
13
|
+
wx = from_api("http://api.openweathermap.org/data/2.5/weather?q=#{location}&units=imperial")
|
14
|
+
@wx[location] = wx[:main]
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
5
18
|
|
6
19
|
def self.from_api(uri_string)
|
7
20
|
uri = URI.parse(URI.escape(uri_string))
|
8
|
-
|
9
|
-
JSON.parse(
|
21
|
+
string = open(uri).read
|
22
|
+
JSON.parse(string, symbolize_names: true)
|
10
23
|
end
|
11
24
|
|
12
25
|
end
|
data/lib/ez/schema_modifier.rb
CHANGED
@@ -56,11 +56,11 @@ class SchemaModifier
|
|
56
56
|
col_type = column[col_name]
|
57
57
|
if db.column_exists?(table_name, col_name.to_sym)
|
58
58
|
unless db.column_exists?(table_name, col_name.to_sym, col_type.to_sym)
|
59
|
-
display_change "
|
59
|
+
display_change "Changing column type for '#{col_name}' to #{col_type}"
|
60
60
|
db.change_column(table_name, col_name.to_sym, col_type.to_sym)
|
61
61
|
end
|
62
62
|
else
|
63
|
-
display_change "
|
63
|
+
display_change "Adding new column '#{col_name}' as #{col_type} for model #{model_name}"
|
64
64
|
db.add_column(table_name, col_name.to_sym, col_type.to_sym)
|
65
65
|
end
|
66
66
|
end
|
@@ -76,12 +76,12 @@ class SchemaModifier
|
|
76
76
|
col_type = column[name]
|
77
77
|
t.send(col_type, name)
|
78
78
|
end
|
79
|
-
t.timestamps
|
79
|
+
# t.timestamps
|
80
80
|
end
|
81
81
|
end
|
82
82
|
filename = "app/models/#{model_name.underscore}.rb"
|
83
83
|
unless File.exists?(filename)
|
84
|
-
display_change "Creating model file: #{filename}"
|
84
|
+
display_change "Creating new model file: #{filename}"
|
85
85
|
File.open(filename, "w") do |f|
|
86
86
|
f.puts "class #{model_name} < ActiveRecord::Base"
|
87
87
|
f.puts "end"
|
@@ -104,7 +104,7 @@ class SchemaModifier
|
|
104
104
|
end
|
105
105
|
dead_columns = columns - spec_columns
|
106
106
|
if dead_columns.any?
|
107
|
-
display_change "
|
107
|
+
display_change "Removing unused columns: #{dead_columns.to_sentence} for model #{model_name}"
|
108
108
|
db.remove_columns(table_name, *dead_columns)
|
109
109
|
end
|
110
110
|
end
|
data/lib/ez/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
module
|
2
|
-
VERSION = "0.0
|
1
|
+
module EZ
|
2
|
+
VERSION = "0.5.0"
|
3
3
|
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ez
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Cohen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: hirb
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|