Skip to content

Commit

Permalink
misc fixes and tweaks for dash/underscores
Browse files Browse the repository at this point in the history
  • Loading branch information
geemus committed Sep 16, 2013
1 parent 83751d2 commit 569e85b
Show file tree
Hide file tree
Showing 11 changed files with 84 additions and 79 deletions.
63 changes: 35 additions & 28 deletions bin/generate
Original file line number Diff line number Diff line change
Expand Up @@ -8,46 +8,45 @@ RESOURCE_TEMPLATE = <<-RESOURCE_TEMPLATE
class Heroics
<%- unless parent_resource %>
def <%= resource_proxy.downcase %>(identity=nil)
<%- unless parent_resource_class %>
def <%= resource_proxy_instance %>(identity=nil)
if identity
Heroics::<%= resource %>.new(self.<%= resource_proxy.downcase %>, 'identity' => identity)
Heroics::<%= resource_class %>.new(self.<%= resource_proxy_instance %>, 'identity' => identity)
else
Heroics::<%= resource_proxy %>.new(self)
Heroics::<%= resource_proxy_class %>.new(self)
end
end
<%- else %>
class <%= parent_resource %> < Heroics::Resource
class <%= parent_resource_class %> < Heroics::Resource
def <%= resource_proxy.downcase %>
self.heroics.<%= resource_proxy.downcase %>(identity)
def <%= resource_proxy_instance %>
Heroics::<%= resource_proxy_class %>.new(self.heroics, '<%= parent_resource_identity %>' => identity)
end
end
<%- end %>
class <%= resource_proxy %> < Heroics::ResourceProxy
class <%= resource_proxy_class %> < Heroics::ResourceProxy
<%- definition['links'].select do |link| %>
<%- ['create', 'instances', 'self'].include?(link['rel']) %>
<%- end.each do |link| %>
<%= Erubis::Eruby.new(LINK_TEMPLATE).result({key: key, link: link, parent_resource: parent_resource, resource: resource}) %>
<%= Erubis::Eruby.new(LINK_TEMPLATE).result({key: key, link: link, parent_resource_instance: parent_resource_instance, resource_class: resource_class}) %>
<%- end %>
<%- if parent_resource %>
<%- parent_identity = "\#{parent_resource.downcase}_identity" %>
def <%= parent_identity %>
attributes['<%= parent_identity %>']
<%- if parent_resource_class %>
def <%= parent_resource_identity %>
attributes['<%= parent_resource_identity %>']
end
<%- end -%>
end
class <%= resource %> < Heroics::Resource
class <%= resource_class %> < Heroics::Resource
<%- definition['links'].select do |link| %>
<%- %w{destroy update}.include?(link['rel']) %>
<%- end.each do |link| %>
<%= Erubis::Eruby.new(LINK_TEMPLATE).result({key: key, link: link, parent_resource: parent_resource, resource: resource}) %>
<%= Erubis::Eruby.new(LINK_TEMPLATE).result({key: key, link: link, parent_resource_instance: parent_resource_instance, resource_class: resource_class}) %>
<%- end %>
def identity
attributes['identity'] || <%= definition['definitions']['identity']['oneOf'].map {|ref| "attributes['" + ref['$ref'].split('/').last + "']" }.join(' || ') %>
Expand All @@ -73,8 +72,8 @@ LINK_TEMPLATE = <<-LINK_TEMPLATE
def <%= method %>
<% end %>
<%- path = link['href'].gsub("{(%23%2Fdefinitions%2F\#{key}%2Fdefinitions%2Fidentity)}", '\#{identity}') %>
<%- if parent_resource %>
<%- path = path.gsub("{(%23%2Fdefinitions%2F" + parent_resource.downcase + "%2Fdefinitions%2Fidentity)}", '\#{resource_proxy.' + parent_resource.downcase + '_identity}') %>
<%- if parent_resource_instance %>
<%- path = path.gsub("{(%23%2Fdefinitions%2F" + parent_resource_instance + "%2Fdefinitions%2Fidentity)}", '\#{resource_proxy.' + parent_resource_instance + '_identity}') %>
<%- end %>
response = self.heroics.request(
<%- if link.has_key?('schema') %>
Expand All @@ -85,10 +84,10 @@ LINK_TEMPLATE = <<-LINK_TEMPLATE
)
<%- if link['rel'] == 'instances' %>
response.body.map do |attributes|
Heroics::<%= resource %>.new(self.resource_proxy, attributes)
Heroics::<%= resource_class %>.new(self.resource_proxy, attributes)
end
<%- else %>
Heroics::<%= resource %>.new(self.resource_proxy, response.body)
Heroics::<%= resource_class %>.new(self.resource_proxy, response.body)
<%- end %>
end
LINK_TEMPLATE
Expand All @@ -98,18 +97,26 @@ data = MultiJson.load(File.read(schema_path))

data['definitions'].each do |key, value|
next if value['links'].empty?
resource = key[0...1].upcase + key[1..-1]
resource_proxy = resource + 's'
parent_resource = if value['links'].all? {|link| link['href'].include?('{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}')}
'App'
resource_class = key.split('-').map {|k| k[0...1].upcase + k[1..-1]}.join
resource_instance = key.downcase.split('-').join('_')

resource_proxy_class = resource_class + 's'
resource_proxy_instance = resource_instance + 's'

parent_resource_class, parent_resource_identity, parent_resource_instance = if value['links'].all? {|link| link['href'].include?('{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}')}
['App', 'app_identity', 'app']
end

data = Erubis::Eruby.new(RESOURCE_TEMPLATE).result({
definition: value,
key: key,
parent_resource: parent_resource,
resource: resource,
resource_proxy: resource_proxy
definition: value,
key: key,
parent_resource_class: parent_resource_class,
parent_resource_identity: parent_resource_identity,
parent_resource_instance: parent_resource_instance,
resource_class: resource_class,
resource_instance: resource_instance,
resource_proxy_class: resource_proxy_class,
resource_proxy_instance: resource_proxy_instance
})

path = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'heroics', 'resources', "#{key}.rb"))
Expand Down
16 changes: 8 additions & 8 deletions lib/heroics/resources/account-feature.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,22 @@

class Heroics

def account-features(identity=nil)
def account_features(identity=nil)
if identity
Heroics::Account-feature.new(self.account-features, 'identity' => identity)
Heroics::AccountFeature.new(self.account_features, 'identity' => identity)
else
Heroics::Account-features.new(self)
Heroics::AccountFeatures.new(self)
end
end

class Account-features < Heroics::ResourceProxy
class AccountFeatures < Heroics::ResourceProxy

def info(identity)
response = self.heroics.request(
method: :get,
path: "/account/features/#{identity}"
)
Heroics::Account-feature.new(self.resource_proxy, response.body)
Heroics::AccountFeature.new(self.resource_proxy, response.body)
end

def list
Expand All @@ -26,21 +26,21 @@ def list
path: "/account/features"
)
response.body.map do |attributes|
Heroics::Account-feature.new(self.resource_proxy, attributes)
Heroics::AccountFeature.new(self.resource_proxy, attributes)
end
end

end

class Account-feature < Heroics::Resource
class AccountFeature < Heroics::Resource

def updated(new_attributes={})
response = self.heroics.request(
body: MultiJson.dump(new_attributes),
method: :patch,
path: "/account/features/#{identity}"
)
Heroics::Account-feature.new(self.resource_proxy, response.body)
Heroics::AccountFeature.new(self.resource_proxy, response.body)
end

def identity
Expand Down
14 changes: 7 additions & 7 deletions lib/heroics/resources/addon-service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,22 @@

class Heroics

def addon-services(identity=nil)
def addon_services(identity=nil)
if identity
Heroics::Addon-service.new(self.addon-services, 'identity' => identity)
Heroics::AddonService.new(self.addon_services, 'identity' => identity)
else
Heroics::Addon-services.new(self)
Heroics::AddonServices.new(self)
end
end

class Addon-services < Heroics::ResourceProxy
class AddonServices < Heroics::ResourceProxy

def info(identity)
response = self.heroics.request(
method: :get,
path: "/addon-services/#{identity}"
)
Heroics::Addon-service.new(self.resource_proxy, response.body)
Heroics::AddonService.new(self.resource_proxy, response.body)
end

def list
Expand All @@ -26,13 +26,13 @@ def list
path: "/addon-services"
)
response.body.map do |attributes|
Heroics::Addon-service.new(self.resource_proxy, attributes)
Heroics::AddonService.new(self.resource_proxy, attributes)
end
end

end

class Addon-service < Heroics::Resource
class AddonService < Heroics::Resource

def identity
attributes['identity'] || attributes['id'] || attributes['name']
Expand Down
14 changes: 7 additions & 7 deletions lib/heroics/resources/app-feature.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,20 @@ class Heroics

class App < Heroics::Resource

def app-features
self.heroics.app-features(identity)
def app_features
Heroics::AppFeatures.new(self.heroics, 'app_identity' => identity)
end

end

class App-features < Heroics::ResourceProxy
class AppFeatures < Heroics::ResourceProxy

def info(identity)
response = self.heroics.request(
method: :get,
path: "/apps/#{resource_proxy.app_identity}/features/#{identity}"
)
Heroics::App-feature.new(self.resource_proxy, response.body)
Heroics::AppFeature.new(self.resource_proxy, response.body)
end

def list
Expand All @@ -26,7 +26,7 @@ def list
path: "/apps/#{resource_proxy.app_identity}/features"
)
response.body.map do |attributes|
Heroics::App-feature.new(self.resource_proxy, attributes)
Heroics::AppFeature.new(self.resource_proxy, attributes)
end
end

Expand All @@ -36,15 +36,15 @@ def app_identity

end

class App-feature < Heroics::Resource
class AppFeature < Heroics::Resource

def update(new_attributes={})
response = self.heroics.request(
body: MultiJson.dump(new_attributes),
method: :patch,
path: "/apps/#{resource_proxy.app_identity}/features/#{identity}"
)
Heroics::App-feature.new(self.resource_proxy, response.body)
Heroics::AppFeature.new(self.resource_proxy, response.body)
end

def identity
Expand Down
20 changes: 10 additions & 10 deletions lib/heroics/resources/app-transfer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,31 @@

class Heroics

def app-transfers(identity=nil)
def app_transfers(identity=nil)
if identity
Heroics::App-transfer.new(self.app-transfers, 'identity' => identity)
Heroics::AppTransfer.new(self.app_transfers, 'identity' => identity)
else
Heroics::App-transfers.new(self)
Heroics::AppTransfers.new(self)
end
end

class App-transfers < Heroics::ResourceProxy
class AppTransfers < Heroics::ResourceProxy

def create(new_attributes={})
response = self.heroics.request(
body: MultiJson.dump(new_attributes),
method: :post,
path: "/account/app-transfers"
)
Heroics::App-transfer.new(self.resource_proxy, response.body)
Heroics::AppTransfer.new(self.resource_proxy, response.body)
end

def info(identity)
response = self.heroics.request(
method: :get,
path: "/account/app-transfers/#{identity}"
)
Heroics::App-transfer.new(self.resource_proxy, response.body)
Heroics::AppTransfer.new(self.resource_proxy, response.body)
end

def list
Expand All @@ -35,20 +35,20 @@ def list
path: "/account/app-transfers"
)
response.body.map do |attributes|
Heroics::App-transfer.new(self.resource_proxy, attributes)
Heroics::AppTransfer.new(self.resource_proxy, attributes)
end
end

end

class App-transfer < Heroics::Resource
class AppTransfer < Heroics::Resource

def delete
response = self.heroics.request(
method: :delete,
path: "/account/app-transfers/#{identity}"
)
Heroics::App-transfer.new(self.resource_proxy, response.body)
Heroics::AppTransfer.new(self.resource_proxy, response.body)
end

def update(new_attributes={})
Expand All @@ -57,7 +57,7 @@ def update(new_attributes={})
method: :patch,
path: "/account/app-transfers/#{identity}"
)
Heroics::App-transfer.new(self.resource_proxy, response.body)
Heroics::AppTransfer.new(self.resource_proxy, response.body)
end

def identity
Expand Down
2 changes: 1 addition & 1 deletion lib/heroics/resources/collaborator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ class Heroics
class App < Heroics::Resource

def collaborators
self.heroics.collaborators(identity)
Heroics::Collaborators.new(self.heroics, 'app_identity' => identity)
end

end
Expand Down
2 changes: 1 addition & 1 deletion lib/heroics/resources/domain.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ class Heroics
class App < Heroics::Resource

def domains
self.heroics.domains(identity)
Heroics::Domains.new(self.heroics, 'app_identity' => identity)
end

end
Expand Down
2 changes: 1 addition & 1 deletion lib/heroics/resources/dyno.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ class Heroics
class App < Heroics::Resource

def dynos
self.heroics.dynos(identity)
Heroics::Dynos.new(self.heroics, 'app_identity' => identity)
end

end
Expand Down
Loading

0 comments on commit 569e85b

Please sign in to comment.