saruman 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +6 -0
- data/Gemfile +4 -0
- data/README +0 -0
- data/README.md +44 -0
- data/Rakefile +1 -0
- data/bin/saruman +3 -0
- data/doc_assets/saruman_extension_example.jpg +0 -0
- data/lib/saruman/cli.rb +89 -0
- data/lib/saruman/generators/extension/templates/Helper.php +6 -0
- data/lib/saruman/generators/extension/templates/Model.php +11 -0
- data/lib/saruman/generators/extension/templates/Observer.php +13 -0
- data/lib/saruman/generators/extension/templates/Resource_Model.php +10 -0
- data/lib/saruman/generators/extension/templates/extension_config.xml +81 -0
- data/lib/saruman/generators/extension/templates/module.xml +17 -0
- data/lib/saruman/generators/extension/templates/mysql4-install.php +19 -0
- data/lib/saruman/generators/extension.rb +167 -0
- data/lib/saruman/generators/model/templates/Model.php +10 -0
- data/lib/saruman/generators/model/templates/Resource_Model.php +10 -0
- data/lib/saruman/generators/model/templates/model_config_block.xml +4 -0
- data/lib/saruman/generators/model/templates/mysql4-install.php +19 -0
- data/lib/saruman/generators/model/templates/resource_model_config_block.xml +8 -0
- data/lib/saruman/generators/model.rb +181 -0
- data/lib/saruman/generators/observer/observer_events.csv +314 -0
- data/lib/saruman/generators/saruman.rb +5 -0
- data/lib/saruman/version.rb +3 -0
- data/lib/saruman.rb +58 -0
- data/saruman.gemspec +34 -0
- data/spec/saruman_spec.rb +5 -0
- metadata +203 -0
@@ -0,0 +1,181 @@
|
|
1
|
+
require 'thor/group'
|
2
|
+
require 'nokogiri'
|
3
|
+
module Saruman
|
4
|
+
module Generators
|
5
|
+
class Model < Thor::Group
|
6
|
+
include Thor::Actions
|
7
|
+
argument :arguments, :type => :hash
|
8
|
+
|
9
|
+
def self.source_root
|
10
|
+
File.dirname(__FILE__) + "/model/templates"
|
11
|
+
end
|
12
|
+
|
13
|
+
def validate_extension
|
14
|
+
unless File.directory?("#{extension_base_path}")
|
15
|
+
@error = "error"
|
16
|
+
end
|
17
|
+
|
18
|
+
unless File.exist?("#{extension_config_path}/config.xml")
|
19
|
+
@error = "error"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def create_model_directory
|
24
|
+
empty_directory(model_path) unless File.directory?(model_path)
|
25
|
+
end
|
26
|
+
|
27
|
+
def create_temp_directory
|
28
|
+
empty_directory("#{extension_temp_path}")
|
29
|
+
end
|
30
|
+
|
31
|
+
def read_extension_config
|
32
|
+
|
33
|
+
fp = "#{extension_config_path}/config.xml"
|
34
|
+
config = File.open(fp, "r+")
|
35
|
+
|
36
|
+
@config = Nokogiri::XML(config)
|
37
|
+
config.close
|
38
|
+
|
39
|
+
@extension_current_version = @config.css("version").first.content
|
40
|
+
|
41
|
+
global_node = @config.css("global")
|
42
|
+
|
43
|
+
models_node = global_node.css("models")
|
44
|
+
|
45
|
+
if models_node.empty?
|
46
|
+
models_node = Nokogiri::XML::Node.new('models', @config)
|
47
|
+
global_node.first.add_child(models_node)
|
48
|
+
end
|
49
|
+
|
50
|
+
model_declaration_node = @config.css("models #{name_lower}")
|
51
|
+
|
52
|
+
if model_declaration_node.empty?
|
53
|
+
@resource_model_config_temp_path = "#{extension_temp_path}_config.xml"
|
54
|
+
template("resource_model_config_block.xml", @resource_model_config_temp_path)
|
55
|
+
resource_model_config_file = File.open(@resource_model_config_temp_path)
|
56
|
+
resource_model_config_block = Nokogiri::XML(resource_model_config_file).root
|
57
|
+
resource_model_config_file.close
|
58
|
+
|
59
|
+
@model_config_temp_path = "#{extension_temp_path}model_config_block.xml"
|
60
|
+
template("model_config_block.xml", @model_config_temp_path)
|
61
|
+
model_config_file = File.open(@model_config_temp_path)
|
62
|
+
model_config_block = Nokogiri::XML(model_config_file).root
|
63
|
+
model_config_file.close
|
64
|
+
|
65
|
+
models_node = @config.css("models").first
|
66
|
+
|
67
|
+
models_node.add_child(model_config_block)
|
68
|
+
models_node.add_child(resource_model_config_block)
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
models_node_find = @config.css('models')
|
73
|
+
|
74
|
+
file = File.open(fp,'w')
|
75
|
+
file.puts @config.to_xml
|
76
|
+
file.close
|
77
|
+
|
78
|
+
end
|
79
|
+
|
80
|
+
def remove_temp_dir
|
81
|
+
FileUtils.rm_rf(extension_temp_path)
|
82
|
+
end
|
83
|
+
|
84
|
+
def create_installer_upgrade
|
85
|
+
template("mysql4-install.php", "#{setup_base_path}/mysql4-upgrade-#{@extension_current_version}-#{extension_upgrade_version}.php")
|
86
|
+
end
|
87
|
+
|
88
|
+
private
|
89
|
+
|
90
|
+
def namespace
|
91
|
+
arguments[:namespace]
|
92
|
+
end
|
93
|
+
|
94
|
+
def name
|
95
|
+
arguments[:name]
|
96
|
+
end
|
97
|
+
|
98
|
+
def combined_namespace
|
99
|
+
"#{arguments[:namespace]}_#{arguments[:name]}"
|
100
|
+
end
|
101
|
+
|
102
|
+
def namespace_lower
|
103
|
+
namespace.downcase
|
104
|
+
end
|
105
|
+
|
106
|
+
def name_lower
|
107
|
+
name.downcase
|
108
|
+
end
|
109
|
+
|
110
|
+
#alias for name
|
111
|
+
def extension_name_lower
|
112
|
+
name.downcase
|
113
|
+
end
|
114
|
+
|
115
|
+
def version
|
116
|
+
arguments[:version]
|
117
|
+
end
|
118
|
+
|
119
|
+
def global_config_basepath
|
120
|
+
"app/etc/modules/"
|
121
|
+
end
|
122
|
+
|
123
|
+
def extension_base_path
|
124
|
+
"app/code/local/#{namespace}/#{name}/"
|
125
|
+
end
|
126
|
+
|
127
|
+
def extension_temp_path
|
128
|
+
"#{extension_base_path}temp/"
|
129
|
+
end
|
130
|
+
|
131
|
+
def extension_config_path
|
132
|
+
"#{extension_base_path}etc/"
|
133
|
+
end
|
134
|
+
|
135
|
+
def model_path
|
136
|
+
"#{extension_base_path}Model/"
|
137
|
+
end
|
138
|
+
|
139
|
+
def resource_model_path
|
140
|
+
"#{model_path}Mysql4/"
|
141
|
+
end
|
142
|
+
|
143
|
+
def setup_base_path
|
144
|
+
"#{extension_base_path}sql/#{name_lower}_setup/"
|
145
|
+
end
|
146
|
+
|
147
|
+
def model_klass_name
|
148
|
+
"#{combined_namespace}_Model"
|
149
|
+
end
|
150
|
+
|
151
|
+
def resource_model_name
|
152
|
+
"#{extension_name_lower}_mysql4"
|
153
|
+
end
|
154
|
+
|
155
|
+
def resource_model_klass_name
|
156
|
+
"#{combined_namespace}_Model_Mysql4"
|
157
|
+
end
|
158
|
+
|
159
|
+
def global_config_file_path
|
160
|
+
"#{global_config_basepath}#{combined_namespace}.xml"
|
161
|
+
end
|
162
|
+
|
163
|
+
def extension_upgrade_version
|
164
|
+
@extension_current_version.to_f + 0.1
|
165
|
+
end
|
166
|
+
|
167
|
+
def model?
|
168
|
+
if arguments[:model] == true
|
169
|
+
return true
|
170
|
+
else
|
171
|
+
return false
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
def models
|
176
|
+
arguments[:models]
|
177
|
+
end
|
178
|
+
|
179
|
+
end
|
180
|
+
end
|
181
|
+
end
|
@@ -0,0 +1,314 @@
|
|
1
|
+
app/code/core/Mage/Admin/Model/Session.php,102,admin_session_user_login_success
|
2
|
+
app/code/core/Mage/Admin/Model/Session.php,112,admin_session_user_login_failed
|
3
|
+
app/code/core/Mage/Admin/Model/User.php,344,admin_user_authenticate_after
|
4
|
+
app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tabs.php,157,adminhtml_catalog_category_tabs
|
5
|
+
app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tree.php,284,adminhtml_catalog_category_tree_is_moveable
|
6
|
+
app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tree.php,322,adminhtml_catalog_category_tree_can_add_root_category
|
7
|
+
app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tree.php,342,adminhtml_catalog_category_tree_can_add_sub_category
|
8
|
+
app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/Edit/Tab/Main.php,71,adminhtml_product_attribute_types
|
9
|
+
app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/Edit/Tab/Main.php,242,adminhtml_catalog_product_attribute_edit_prepare_form
|
10
|
+
app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/New/Product/Attributes.php,64,adminhtml_catalog_product_edit_prepare_form
|
11
|
+
app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/New/Product/Attributes.php,80,adminhtml_catalog_product_edit_element_types
|
12
|
+
app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/Set/Main.php,406,adminhtml_catalog_product_attribute_set_main_html_before
|
13
|
+
app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/Set/Toolbar/Main.php,68,adminhtml_catalog_product_attribute_set_toolbar_main_html_before
|
14
|
+
app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Action/Attribute/Tab/Attributes.php,48,adminhtml_catalog_product_form_prepare_excluded_field_list
|
15
|
+
app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Attributes/Create.php,85,adminhtml_catalog_product_edit_tab_attributes_create_html_before
|
16
|
+
app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Attributes.php,135,adminhtml_catalog_product_edit_prepare_form
|
17
|
+
app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Attributes.php,153,adminhtml_catalog_product_edit_element_types
|
18
|
+
app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Price/Recurring.php,42,catalog_product_edit_form_render_recurring
|
19
|
+
app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Content.php,98,adminhtml_cms_page_edit_tab_content_prepare_form
|
20
|
+
app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Design.php,125,adminhtml_cms_page_edit_tab_design_prepare_form
|
21
|
+
app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Main.php,117,adminhtml_cms_page_edit_tab_main_prepare_form
|
22
|
+
app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Meta.php,76,adminhtml_cms_page_edit_tab_meta_prepare_form
|
23
|
+
app/code/core/Mage/Adminhtml/Block/Customer/Edit/Tab/Carts.php,61,adminhtml_block_html_before
|
24
|
+
app/code/core/Mage/Adminhtml/Block/Promo/Catalog/Edit/Tab/Main.php,197,adminhtml_promo_catalog_edit_tab_main_prepare_form
|
25
|
+
app/code/core/Mage/Adminhtml/Block/Promo/Quote/Edit/Tab/Actions.php,162,adminhtml_block_salesrule_actions_prepareform
|
26
|
+
app/code/core/Mage/Adminhtml/Block/Promo/Quote/Edit/Tab/Main.php,255,adminhtml_promo_quote_edit_tab_main_prepare_form
|
27
|
+
app/code/core/Mage/Adminhtml/Block/Report/Grid.php,186,adminhtml_widget_grid_filter_collection
|
28
|
+
app/code/core/Mage/Adminhtml/Block/Sales/Reorder/Renderer/Action.php,55,adminhtml_customer_orders_add_action_renderer
|
29
|
+
app/code/core/Mage/Adminhtml/Block/Template.php,80,adminhtml_block_html_before
|
30
|
+
app/code/core/Mage/Adminhtml/Block/Widget/Container.php,307,adminhtml_widget_container_html_before
|
31
|
+
app/code/core/Mage/Adminhtml/Controller/Action.php,151,adminhtml_controller_action_predispatch_start
|
32
|
+
app/code/core/Mage/Adminhtml/controllers/CacheController.php,56,adminhtml_cache_flush_all
|
33
|
+
app/code/core/Mage/Adminhtml/controllers/CacheController.php,68,adminhtml_cache_flush_system
|
34
|
+
app/code/core/Mage/Adminhtml/controllers/CacheController.php,128,adminhtml_cache_refresh_type
|
35
|
+
app/code/core/Mage/Adminhtml/controllers/CacheController.php,145,clean_media_cache_after
|
36
|
+
app/code/core/Mage/Adminhtml/controllers/CacheController.php,169,clean_catalog_images_cache_after
|
37
|
+
app/code/core/Mage/Adminhtml/controllers/Catalog/CategoryController.php,304,catalog_category_prepare_save
|
38
|
+
app/code/core/Mage/Adminhtml/controllers/Catalog/CategoryController.php,399,catalog_controller_category_delete
|
39
|
+
app/code/core/Mage/Adminhtml/controllers/Catalog/Product/Action/AttributeController.php,156,catalog_product_to_website_change
|
40
|
+
app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php,192,catalog_product_new_action
|
41
|
+
app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php,237,catalog_product_edit_action
|
42
|
+
app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php,665,catalog_product_prepare_save
|
43
|
+
app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php,868,catalog_controller_product_delete
|
44
|
+
app/code/core/Mage/Adminhtml/controllers/Cms/PageController.php,139,cms_page_prepare_save
|
45
|
+
app/code/core/Mage/Adminhtml/controllers/Cms/PageController.php,199,adminhtml_cmspage_on_delete
|
46
|
+
app/code/core/Mage/Adminhtml/controllers/Cms/PageController.php,204,adminhtml_cmspage_on_delete
|
47
|
+
app/code/core/Mage/Adminhtml/controllers/CustomerController.php,301,adminhtml_customer_prepare_save
|
48
|
+
app/code/core/Mage/Adminhtml/controllers/CustomerController.php,332,adminhtml_customer_save_after
|
49
|
+
app/code/core/Mage/Adminhtml/controllers/Permissions/RoleController.php,194,admin_permissions_role_prepare_save
|
50
|
+
app/code/core/Mage/Adminhtml/controllers/Promo/CatalogController.php,114,adminhtml_controller_catalogrule_prepare_save
|
51
|
+
app/code/core/Mage/Adminhtml/controllers/Promo/QuoteController.php,114,adminhtml_controller_salesrule_prepare_save
|
52
|
+
app/code/core/Mage/Adminhtml/controllers/ReportController.php,82,on_view_report
|
53
|
+
app/code/core/Mage/Adminhtml/controllers/Sales/Order/CreateController.php,245,adminhtml_sales_order_create_process_data
|
54
|
+
app/code/core/Mage/Adminhtml/controllers/Sales/Order/CreditmemoController.php,160,adminhtml_sales_order_creditmemo_register_before
|
55
|
+
app/code/core/Mage/Adminhtml/controllers/System/Config/System/StorageController.php,154,add_synchronize_message
|
56
|
+
app/code/core/Mage/Adminhtml/controllers/System/StoreController.php,200,store_group_save
|
57
|
+
app/code/core/Mage/Adminhtml/controllers/System/StoreController.php,431,store_delete
|
58
|
+
app/code/core/Mage/Adminhtml/Model/Sales/Order/Create.php,319,sales_convert_order_to_quote
|
59
|
+
app/code/core/Mage/Adminhtml/Model/Sales/Order/Create.php,412,sales_convert_order_item_to_quote_item
|
60
|
+
app/code/core/Mage/Adminhtml/Model/Sales/Order/Create.php,1486,checkout_submit_all_after
|
61
|
+
app/code/core/Mage/Api/Model/User.php,204,api_user_authenticated
|
62
|
+
app/code/core/Mage/Bundle/Block/Catalog/Product/View/Type/Bundle.php,157,bundle_product_view_config
|
63
|
+
app/code/core/Mage/Bundle/Model/Product/Price.php,95,catalog_product_get_final_price
|
64
|
+
app/code/core/Mage/Bundle/Model/Product/Price.php,105,prepare_catalog_product_collection_prices
|
65
|
+
app/code/core/Mage/Bundle/Model/Resource/Indexer/Price.php,263,catalog_product_prepare_index_select
|
66
|
+
app/code/core/Mage/Bundle/Model/Resource/Indexer/Price.php,489,prepare_catalog_product_price_index_table
|
67
|
+
app/code/core/Mage/Bundle/Model/Resource/Price/Index.php,378,catalog_product_prepare_index_select
|
68
|
+
app/code/core/Mage/Catalog/Block/Product/List/Upsell.php,79,catalog_product_upsell
|
69
|
+
app/code/core/Mage/Catalog/Block/Product/List.php,161,catalog_block_product_list_collection
|
70
|
+
app/code/core/Mage/Catalog/Block/Product/View/Type/Configurable.php,158,catalog_product_type_configurable_price
|
71
|
+
app/code/core/Mage/Catalog/Block/Product/View.php,181,catalog_product_view_config
|
72
|
+
app/code/core/Mage/Catalog/controllers/CategoryController.php,43,catalog_controller_category_init_before
|
73
|
+
app/code/core/Mage/Catalog/controllers/CategoryController.php,59,catalog_controller_category_init_after
|
74
|
+
app/code/core/Mage/Catalog/controllers/Product/CompareController.php,87,catalog_product_compare_add_product
|
75
|
+
app/code/core/Mage/Catalog/controllers/Product/CompareController.php,126,catalog_product_compare_remove_product
|
76
|
+
app/code/core/Mage/Catalog/Helper/Output.php,48,catalog_helper_output_construct
|
77
|
+
app/code/core/Mage/Catalog/Helper/Product/View.php,135,catalog_controller_product_view
|
78
|
+
app/code/core/Mage/Catalog/Helper/Product.php,283,catalog_controller_product_init_before
|
79
|
+
app/code/core/Mage/Catalog/Helper/Product.php,323,catalog_controller_product_init
|
80
|
+
app/code/core/Mage/Catalog/Helper/Product.php,324,catalog_controller_product_init_after
|
81
|
+
app/code/core/Mage/Catalog/Model/Category.php,229,catalog_category_tree_move_before
|
82
|
+
app/code/core/Mage/Catalog/Model/Category.php,235,catalog_category_tree_move_after
|
83
|
+
app/code/core/Mage/Catalog/Model/Category.php,247,category_move
|
84
|
+
app/code/core/Mage/Catalog/Model/Product/Action.php,66,catalog_product_attribute_update_before
|
85
|
+
app/code/core/Mage/Catalog/Model/Product/Action.php,99,catalog_product_website_update_before
|
86
|
+
app/code/core/Mage/Catalog/Model/Product/Action.php,123,catalog_product_website_update
|
87
|
+
app/code/core/Mage/Catalog/Model/Product/Attribute/Source/Inputtype.php,55,adminhtml_product_attribute_types
|
88
|
+
app/code/core/Mage/Catalog/Model/Product/Option/Api.php,166,catalog_product_prepare_save
|
89
|
+
app/code/core/Mage/Catalog/Model/Product/Status.php,217,catalog_product_status_update
|
90
|
+
app/code/core/Mage/Catalog/Model/Product/Type/Abstract.php,542,"Mage::dispatchEvent($eventName, array("
|
91
|
+
app/code/core/Mage/Catalog/Model/Product/Type/Configurable/Price.php,71,catalog_product_type_configurable_price
|
92
|
+
app/code/core/Mage/Catalog/Model/Product/Type/Grouped/Price.php,70,catalog_product_type_grouped_price
|
93
|
+
app/code/core/Mage/Catalog/Model/Product/Type/Price.php,68,catalog_product_get_final_price
|
94
|
+
app/code/core/Mage/Catalog/Model/Product.php,1039,catalog_model_product_duplicate
|
95
|
+
app/code/core/Mage/Catalog/Model/Product.php,1240,catalog_product_is_salable_before
|
96
|
+
app/code/core/Mage/Catalog/Model/Product.php,1250,catalog_product_is_salable_after
|
97
|
+
app/code/core/Mage/Catalog/Model/Resource/Category/Flat.php,205,catalog_category_tree_init_inactive_category_ids
|
98
|
+
app/code/core/Mage/Catalog/Model/Resource/Category/Tree.php,210,catalog_category_tree_init_inactive_category_ids
|
99
|
+
app/code/core/Mage/Catalog/Model/Resource/Category/Tree.php,406,catalog_category_tree_move_before
|
100
|
+
app/code/core/Mage/Catalog/Model/Resource/Category/Tree.php,443,catalog_category_tree_move_after
|
101
|
+
app/code/core/Mage/Catalog/Model/Resource/Category.php,364,catalog_category_change_products
|
102
|
+
app/code/core/Mage/Catalog/Model/Resource/Layer/Filter/Price.php,103,catalogindex_prepare_price_select
|
103
|
+
app/code/core/Mage/Catalog/Model/Resource/Layer/Filter/Price.php,108,catalog_prepare_price_select
|
104
|
+
app/code/core/Mage/Catalog/Model/Resource/Product/Collection.php,363,catalog_product_collection_load_before
|
105
|
+
app/code/core/Mage/Catalog/Model/Resource/Product/Collection.php,383,catalog_product_collection_load_after
|
106
|
+
app/code/core/Mage/Catalog/Model/Resource/Product/Collection.php,831,catalog_product_collection_before_add_count_to_categories
|
107
|
+
app/code/core/Mage/Catalog/Model/Resource/Product/Collection.php,1652,catalog_product_collection_apply_limitations_after
|
108
|
+
app/code/core/Mage/Catalog/Model/Resource/Product/Compare/Item/Collection.php,315,catalog_product_compare_item_collection_clear
|
109
|
+
app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.php,437,catalog_product_flat_prepare_columns
|
110
|
+
app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.php,497,catalog_product_flat_prepare_indexes
|
111
|
+
app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.php,1038,catalog_product_flat_rebuild
|
112
|
+
app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.php,1281,catalog_product_flat_update_product
|
113
|
+
app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Eav/Abstract.php,208,prepare_catalog_product_index_select
|
114
|
+
app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Eav/Decimal.php,98,prepare_catalog_product_index_select
|
115
|
+
app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Eav/Source.php,154,prepare_catalog_product_index_select
|
116
|
+
app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Eav/Source.php,228,prepare_catalog_product_index_select
|
117
|
+
app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Price/Default.php,270,prepare_catalog_product_index_select
|
118
|
+
app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Price/Default.php,287,prepare_catalog_product_price_index_table
|
119
|
+
app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Price/Grouped.php,124,catalog_product_prepare_index_select
|
120
|
+
app/code/core/Mage/CatalogIndex/Model/Data/Abstract.php,204,catalogindex_get_minimal_price
|
121
|
+
app/code/core/Mage/CatalogIndex/Model/Indexer.php,372,catalogindex_plain_reindex_after
|
122
|
+
app/code/core/Mage/CatalogIndex/Model/Indexer.php,632,catalogindex_prepare_price_select
|
123
|
+
app/code/core/Mage/CatalogIndex/Model/Resource/Price.php,138,catalogindex_prepare_price_select
|
124
|
+
app/code/core/Mage/CatalogIndex/Model/Resource/Price.php,177,catalogindex_prepare_price_select
|
125
|
+
app/code/core/Mage/CatalogIndex/Model/Resource/Price.php,231,catalogindex_prepare_price_select
|
126
|
+
app/code/core/Mage/CatalogIndex/Model/Resource/Price.php,281,catalogindex_prepare_price_select
|
127
|
+
app/code/core/Mage/CatalogRule/Model/Resource/Rule.php,345,catalogrule_before_apply
|
128
|
+
app/code/core/Mage/CatalogRule/Model/Resource/Rule.php,481,catalogrule_after_apply
|
129
|
+
app/code/core/Mage/CatalogSearch/Model/Fulltext.php,78,catalogsearch_index_process_start
|
130
|
+
app/code/core/Mage/CatalogSearch/Model/Fulltext.php,85,catalogsearch_index_process_complete
|
131
|
+
app/code/core/Mage/CatalogSearch/Model/Resource/Advanced.php,67,catalog_prepare_price_select
|
132
|
+
app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php,307,catalogsearch_reset_search_result
|
133
|
+
app/code/core/Mage/Checkout/controllers/CartController.php,195,checkout_cart_add_product_complete
|
134
|
+
app/code/core/Mage/Checkout/controllers/CartController.php,336,checkout_cart_update_item_complete
|
135
|
+
app/code/core/Mage/Checkout/controllers/MultishippingController.php,344,checkout_controller_multishipping_shipping_post
|
136
|
+
app/code/core/Mage/Checkout/controllers/MultishippingController.php,545,checkout_multishipping_controller_success_action
|
137
|
+
app/code/core/Mage/Checkout/controllers/OnepageController.php,230,checkout_onepage_controller_success_action
|
138
|
+
app/code/core/Mage/Checkout/controllers/OnepageController.php,374,checkout_controller_onepage_save_shipping_method
|
139
|
+
app/code/core/Mage/Checkout/Helper/Data.php,276,checkout_allow_guest
|
140
|
+
app/code/core/Mage/Checkout/Model/Cart/Api.php,174,checkout_type_onepage_save_order_after
|
141
|
+
app/code/core/Mage/Checkout/Model/Cart/Api.php,184,checkout_submit_all_after
|
142
|
+
app/code/core/Mage/Checkout/Model/Cart.php,264,checkout_cart_product_add_after
|
143
|
+
app/code/core/Mage/Checkout/Model/Cart.php,364,checkout_cart_update_items_before
|
144
|
+
app/code/core/Mage/Checkout/Model/Cart.php,402,checkout_cart_update_items_after
|
145
|
+
app/code/core/Mage/Checkout/Model/Cart.php,425,checkout_cart_save_before
|
146
|
+
app/code/core/Mage/Checkout/Model/Cart.php,435,checkout_cart_save_after
|
147
|
+
app/code/core/Mage/Checkout/Model/Cart.php,558,checkout_cart_product_update_after
|
148
|
+
app/code/core/Mage/Checkout/Model/Session.php,105,custom_quote_process
|
149
|
+
app/code/core/Mage/Checkout/Model/Session.php,148,checkout_quote_init
|
150
|
+
app/code/core/Mage/Checkout/Model/Session.php,197,load_customer_quote_before
|
151
|
+
app/code/core/Mage/Checkout/Model/Session.php,358,checkout_quote_destroy
|
152
|
+
app/code/core/Mage/Checkout/Model/Type/Multishipping.php,278,checkout_type_multishipping_set_shipping_items
|
153
|
+
app/code/core/Mage/Checkout/Model/Type/Multishipping.php,519,checkout_type_multishipping_create_orders_single
|
154
|
+
app/code/core/Mage/Checkout/Model/Type/Multishipping.php,541,checkout_submit_all_after
|
155
|
+
app/code/core/Mage/Checkout/Model/Type/Multishipping.php,545,checkout_multishipping_refund_all
|
156
|
+
app/code/core/Mage/Checkout/Model/Type/Onepage.php,783,checkout_type_onepage_save_order_after
|
157
|
+
app/code/core/Mage/Checkout/Model/Type/Onepage.php,825,checkout_submit_all_after
|
158
|
+
app/code/core/Mage/Checkout/Model/Type/Onepage.php,1042,checkout_type_onepage_save_order
|
159
|
+
app/code/core/Mage/Checkout/Model/Type/Onepage.php,1094,checkout_type_onepage_save_order_after
|
160
|
+
app/code/core/Mage/Cms/Controller/Router.php,71,cms_controller_router_match_before
|
161
|
+
app/code/core/Mage/Cms/Helper/Page.php,106,cms_page_render
|
162
|
+
app/code/core/Mage/Cms/Helper/Wysiwyg/Images.php,158,cms_wysiwyg_images_static_urls_allowed
|
163
|
+
app/code/core/Mage/Cms/Model/Page.php,152,cms_page_get_available_statuses
|
164
|
+
app/code/core/Mage/Cms/Model/Wysiwyg/Config.php,97,cms_wysiwyg_config_prepare
|
165
|
+
app/code/core/Mage/Core/Block/Abstract.php,237,core_block_abstract_prepare_layout_before
|
166
|
+
app/code/core/Mage/Core/Block/Abstract.php,239,core_block_abstract_prepare_layout_after
|
167
|
+
app/code/core/Mage/Core/Block/Abstract.php,850,core_block_abstract_to_html_before
|
168
|
+
app/code/core/Mage/Core/Block/Abstract.php,886,core_block_abstract_to_html_after
|
169
|
+
app/code/core/Mage/Core/Controller/Response/Http.php,81,http_response_send_before
|
170
|
+
app/code/core/Mage/Core/Controller/Response/Http.php,102,controller_response_redirect
|
171
|
+
app/code/core/Mage/Core/Controller/Varien/Action.php,300,controller_action_layout_load_before
|
172
|
+
app/code/core/Mage/Core/Controller/Varien/Action.php,318,controller_action_layout_generate_xml_before
|
173
|
+
app/code/core/Mage/Core/Controller/Varien/Action.php,337,controller_action_layout_generate_blocks_before
|
174
|
+
app/code/core/Mage/Core/Controller/Varien/Action.php,349,controller_action_layout_generate_blocks_after
|
175
|
+
app/code/core/Mage/Core/Controller/Varien/Action.php,385,controller_action_layout_render_before
|
176
|
+
app/code/core/Mage/Core/Controller/Varien/Action.php,505,controller_action_predispatch
|
177
|
+
app/code/core/Mage/Core/Controller/Varien/Action.php,534,controller_action_postdispatch
|
178
|
+
app/code/core/Mage/Core/Controller/Varien/Action.php,543,controller_action_noroute
|
179
|
+
app/code/core/Mage/Core/Controller/Varien/Action.php,563,controller_action_nocookies
|
180
|
+
app/code/core/Mage/Core/Controller/Varien/Front.php,128,controller_front_init_before
|
181
|
+
app/code/core/Mage/Core/Controller/Varien/Front.php,159,controller_front_init_routers
|
182
|
+
app/code/core/Mage/Core/Controller/Varien/Front.php,199,controller_front_send_response_before
|
183
|
+
app/code/core/Mage/Core/Controller/Varien/Front.php,203,controller_front_send_response_after
|
184
|
+
app/code/core/Mage/Core/Model/Abstract.php,253,model_load_before
|
185
|
+
app/code/core/Mage/Core/Model/Abstract.php,266,model_load_after
|
186
|
+
app/code/core/Mage/Core/Model/Abstract.php,343,model_save_commit_after
|
187
|
+
app/code/core/Mage/Core/Model/Abstract.php,390,model_save_before
|
188
|
+
app/code/core/Mage/Core/Model/Abstract.php,465,model_save_after
|
189
|
+
app/code/core/Mage/Core/Model/Abstract.php,500,model_delete_before
|
190
|
+
app/code/core/Mage/Core/Model/Abstract.php,528,model_delete_after
|
191
|
+
app/code/core/Mage/Core/Model/Abstract.php,540,model_delete_commit_after
|
192
|
+
app/code/core/Mage/Core/Model/App.php,1177,application_clean_cache
|
193
|
+
app/code/core/Mage/Core/Model/Layout/Update.php,406,core_layout_update_updates_get_after
|
194
|
+
app/code/core/Mage/Core/Model/Layout.php,433,core_layout_block_create_after
|
195
|
+
app/code/core/Mage/Core/Model/Locale.php,139,core_locale_set_locale
|
196
|
+
app/code/core/Mage/Core/Model/Resource/Db/Collection/Abstract.php,585,core_collection_abstract_load_before
|
197
|
+
app/code/core/Mage/Core/Model/Resource/Db/Collection/Abstract.php,634,core_collection_abstract_load_after
|
198
|
+
app/code/core/Mage/Core/Model/Resource.php,278,resource_get_tablename
|
199
|
+
app/code/core/Mage/Core/Model/Session/Abstract.php,216,core_session_abstract_clear_messages
|
200
|
+
app/code/core/Mage/Core/Model/Session/Abstract.php,252,core_session_abstract_add_message
|
201
|
+
app/code/core/Mage/Customer/controllers/AccountController.php,334,customer_register_success
|
202
|
+
app/code/core/Mage/Customer/Helper/Data.php,281,customer_registration_is_allowed
|
203
|
+
app/code/core/Mage/Customer/Model/Address/Abstract.php,305,customer_address_format
|
204
|
+
app/code/core/Mage/Customer/Model/Customer.php,166,customer_customer_authenticated
|
205
|
+
app/code/core/Mage/Customer/Model/Session.php,75,customer_session_init
|
206
|
+
app/code/core/Mage/Customer/Model/Session.php,224,customer_login
|
207
|
+
app/code/core/Mage/Customer/Model/Session.php,252,customer_logout
|
208
|
+
app/code/core/Mage/Eav/Block/Adminhtml/Attribute/Edit/Main/Abstract.php,177,adminhtml_block_eav_attribute_edit_form_init
|
209
|
+
app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php,862,eav_collection_abstract_load_before
|
210
|
+
app/code/core/Mage/GiftMessage/Block/Message/Inline.php,177,gift_options_prepare_items
|
211
|
+
app/code/core/Mage/GiftMessage/Model/Api/V2.php,94,checkout_controller_onepage_save_shipping_method
|
212
|
+
app/code/core/Mage/GiftMessage/Model/Api.php,67,checkout_controller_onepage_save_shipping_method
|
213
|
+
app/code/core/Mage/GoogleBase/controllers/Adminhtml/Googlebase/TypesController.php,46,controller_action_postdispatch_adminhtml
|
214
|
+
app/code/core/Mage/GoogleCheckout/Block/Link.php,90,googlecheckout_block_link_html_before
|
215
|
+
app/code/core/Mage/GoogleCheckout/controllers/RedirectController.php,98,googlecheckout_checkout_before
|
216
|
+
app/code/core/Mage/GoogleCheckout/Model/Api/Xml/Callback.php,355,googlecheckout_create_order_before
|
217
|
+
app/code/core/Mage/GoogleCheckout/Model/Api/Xml/Callback.php,449,googlecheckout_save_order_after
|
218
|
+
app/code/core/Mage/GoogleCheckout/Model/Api/Xml/Callback.php,463,checkout_submit_all_after
|
219
|
+
app/code/core/Mage/GoogleCheckout/Model/Api/Xml/Checkout.php,165,google_checkout_discount_item_price
|
220
|
+
app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php,343,catalog_product_import_finish_before
|
221
|
+
app/code/core/Mage/Log/Model/Resource/Log.php,56,log_log_clean_before
|
222
|
+
app/code/core/Mage/Log/Model/Resource/Log.php,64,log_log_clean_after
|
223
|
+
app/code/core/Mage/Log/Model/Resource/Visitor/Collection.php,240,log_visitor_collection_load_before
|
224
|
+
app/code/core/Mage/Payment/Block/Form/Cc.php,154,payment_form_block_to_html_before
|
225
|
+
app/code/core/Mage/Payment/Block/Info.php,166,payment_info_block_prepare_specific_information
|
226
|
+
app/code/core/Mage/Payment/Model/Method/Abstract.php,629,payment_method_is_active
|
227
|
+
app/code/core/Mage/Paypal/Model/Cart.php,318,paypal_prepare_line_items
|
228
|
+
app/code/core/Mage/Persistent/controllers/IndexController.php,84,persistent_session_expired
|
229
|
+
app/code/core/Mage/Persistent/Model/Observer.php,483,persistent_session_expired
|
230
|
+
app/code/core/Mage/Poll/controllers/VoteController.php,67,poll_vote_add
|
231
|
+
app/code/core/Mage/Review/controllers/ProductController.php,73,review_controller_product_init_before
|
232
|
+
app/code/core/Mage/Review/controllers/ProductController.php,85,review_controller_product_init
|
233
|
+
app/code/core/Mage/Review/controllers/ProductController.php,86,review_controller_product_init_after
|
234
|
+
app/code/core/Mage/Review/Model/Resource/Review/Collection.php,269,review_review_collection_load_before
|
235
|
+
app/code/core/Mage/Rss/Block/Catalog/Category.php,119,rss_catalog_category_xml_callback
|
236
|
+
app/code/core/Mage/Rss/Block/Catalog/New.php,122,rss_catalog_new_xml_callback
|
237
|
+
app/code/core/Mage/Rss/Block/Catalog/NotifyStock.php,110,rss_catalog_notify_stock_collection_select
|
238
|
+
app/code/core/Mage/Rss/Block/Catalog/Review.php,88,rss_catalog_review_collection_select
|
239
|
+
app/code/core/Mage/Rss/Block/Catalog/Special.php,165,rss_catalog_special_xml_callback
|
240
|
+
app/code/core/Mage/Rss/Block/Catalog/Tag.php,92,rss_catalog_tagged_item_xml_callback
|
241
|
+
app/code/core/Mage/Rss/Block/Order/New.php,77,rss_order_new_collection_select
|
242
|
+
app/code/core/Mage/Rss/Block/Wishlist.php,124,rss_wishlist_xml_callback
|
243
|
+
app/code/core/Mage/Rule/Model/Environment.php,40,rule_environment_collect
|
244
|
+
app/code/core/Mage/Sales/Model/Convert/Order.php,53,sales_convert_order_to_quote
|
245
|
+
app/code/core/Mage/Sales/Model/Convert/Quote.php,57,sales_convert_quote_to_order
|
246
|
+
app/code/core/Mage/Sales/Model/Convert/Quote.php,75,sales_convert_quote_address_to_order
|
247
|
+
app/code/core/Mage/Sales/Model/Convert/Quote.php,95,sales_convert_quote_address_to_order_address
|
248
|
+
app/code/core/Mage/Sales/Model/Convert/Quote.php,114,sales_convert_quote_payment_to_order_payment
|
249
|
+
app/code/core/Mage/Sales/Model/Convert/Quote.php,154,sales_convert_quote_item_to_order_item
|
250
|
+
app/code/core/Mage/Sales/Model/Observer.php,52,clear_expired_quotes_before
|
251
|
+
app/code/core/Mage/Sales/Model/Order/Creditmemo.php,421,sales_order_creditmemo_refund
|
252
|
+
app/code/core/Mage/Sales/Model/Order/Creditmemo.php,468,sales_order_creditmemo_cancel
|
253
|
+
app/code/core/Mage/Sales/Model/Order/Invoice.php,411,sales_order_invoice_pay
|
254
|
+
app/code/core/Mage/Sales/Model/Order/Invoice.php,481,sales_order_invoice_cancel
|
255
|
+
app/code/core/Mage/Sales/Model/Order/Invoice.php,658,sales_order_invoice_register
|
256
|
+
app/code/core/Mage/Sales/Model/Order/Item.php,506,sales_order_item_cancel
|
257
|
+
app/code/core/Mage/Sales/Model/Order/Payment.php,277,sales_order_payment_place_start
|
258
|
+
app/code/core/Mage/Sales/Model/Order/Payment.php,356,sales_order_payment_place_end
|
259
|
+
app/code/core/Mage/Sales/Model/Order/Payment.php,394,sales_order_payment_capture
|
260
|
+
app/code/core/Mage/Sales/Model/Order/Payment.php,535,sales_order_payment_pay
|
261
|
+
app/code/core/Mage/Sales/Model/Order/Payment.php,553,sales_order_payment_cancel_invoice
|
262
|
+
app/code/core/Mage/Sales/Model/Order/Payment.php,603,sales_order_payment_void
|
263
|
+
app/code/core/Mage/Sales/Model/Order/Payment.php,691,sales_order_payment_refund
|
264
|
+
app/code/core/Mage/Sales/Model/Order/Payment.php,797,sales_order_payment_cancel_creditmemo
|
265
|
+
app/code/core/Mage/Sales/Model/Order/Payment.php,825,sales_order_payment_cancel
|
266
|
+
app/code/core/Mage/Sales/Model/Order.php,1073,sales_order_place_before
|
267
|
+
app/code/core/Mage/Sales/Model/Order.php,1075,sales_order_place_after
|
268
|
+
app/code/core/Mage/Sales/Model/Order.php,1118,order_cancel_after
|
269
|
+
app/code/core/Mage/Sales/Model/Quote/Address/Total/Discount.php,80,sales_quote_address_discount_item
|
270
|
+
app/code/core/Mage/Sales/Model/Quote/Address/Total/Discount.php,111,sales_quote_address_discount_item
|
271
|
+
app/code/core/Mage/Sales/Model/Quote/Config.php,36,sales_quote_config_get_product_attributes
|
272
|
+
app/code/core/Mage/Sales/Model/Quote/Item.php,300,sales_quote_item_qty_set_after
|
273
|
+
app/code/core/Mage/Sales/Model/Quote/Item.php,402,sales_quote_item_set_product
|
274
|
+
app/code/core/Mage/Sales/Model/Quote.php,813,sales_quote_remove_item
|
275
|
+
app/code/core/Mage/Sales/Model/Quote.php,844,sales_quote_add_item
|
276
|
+
app/code/core/Mage/Sales/Model/Quote.php,924,sales_quote_product_add_after
|
277
|
+
app/code/core/Mage/Sales/Model/Resource/Quote/Item/Collection.php,187,prepare_catalog_product_collection_prices
|
278
|
+
app/code/core/Mage/Sales/Model/Resource/Quote/Item/Collection.php,191,sales_quote_item_collection_products_after_load
|
279
|
+
app/code/core/Mage/Sales/Model/Resource/Sale/Collection.php,154,sales_sale_collection_query_before
|
280
|
+
app/code/core/Mage/Sales/Model/Service/Quote.php,186,checkout_type_onepage_save_order
|
281
|
+
app/code/core/Mage/Sales/Model/Service/Quote.php,187,sales_model_service_quote_submit_before
|
282
|
+
app/code/core/Mage/Sales/Model/Service/Quote.php,191,sales_model_service_quote_submit_success
|
283
|
+
app/code/core/Mage/Sales/Model/Service/Quote.php,207,sales_model_service_quote_submit_failure
|
284
|
+
app/code/core/Mage/Sales/Model/Service/Quote.php,210,sales_model_service_quote_submit_after
|
285
|
+
app/code/core/Mage/SalesRule/Model/Quote/Discount.php,86,sales_quote_address_discount_item
|
286
|
+
app/code/core/Mage/SalesRule/Model/Quote/Discount.php,92,sales_quote_address_discount_item
|
287
|
+
app/code/core/Mage/SalesRule/Model/Rule/Condition/Combine.php,54,salesrule_rule_condition_combine
|
288
|
+
app/code/core/Mage/SalesRule/Model/Rule.php,384,salesrule_rule_get_coupon_types
|
289
|
+
app/code/core/Mage/SalesRule/Model/Validator.php,424,salesrule_validator_process
|
290
|
+
app/code/core/Mage/Sendfriend/controllers/ProductController.php,131,sendfriend_product
|
291
|
+
app/code/core/Mage/Tag/Model/Resource/Indexer/Summary.php,214,prepare_catalog_product_index_select
|
292
|
+
app/code/core/Mage/Tag/Model/Resource/Product/Collection.php,416,tag_tag_product_collection_load_after
|
293
|
+
app/code/core/Mage/Tax/Model/Calculation/Rate.php,111,tax_settings_change_after
|
294
|
+
app/code/core/Mage/Tax/Model/Calculation/Rate.php,137,tax_settings_change_after
|
295
|
+
app/code/core/Mage/Tax/Model/Calculation/Rate.php,181,tax_settings_change_after
|
296
|
+
app/code/core/Mage/Tax/Model/Calculation/Rule.php,73,tax_settings_change_after
|
297
|
+
app/code/core/Mage/Tax/Model/Calculation/Rule.php,85,tax_settings_change_after
|
298
|
+
app/code/core/Mage/Tax/Model/Calculation.php,191,tax_rate_data_fetch
|
299
|
+
app/code/core/Mage/Wishlist/controllers/IndexController.php,173,wishlist_add_product
|
300
|
+
app/code/core/Mage/Wishlist/controllers/IndexController.php,288,wishlist_update_item
|
301
|
+
app/code/core/Mage/Wishlist/controllers/IndexController.php,580,wishlist_share
|
302
|
+
app/code/core/Mage/Wishlist/Helper/Data.php,487,wishlist_items_renewed
|
303
|
+
app/code/core/Mage/Wishlist/Model/Resource/Item/Collection.php,190,wishlist_item_collection_products_after_load
|
304
|
+
app/code/core/Mage/Wishlist/Model/Wishlist.php,256,wishlist_add_item
|
305
|
+
app/code/core/Mage/Wishlist/Model/Wishlist.php,341,wishlist_product_add_after
|
306
|
+
app/code/core/Mage/XmlConnect/controllers/CartController.php,225,checkout_cart_add_product_complete
|
307
|
+
app/code/core/Mage/XmlConnect/controllers/CartController.php,355,enterprise_giftcardaccount_add
|
308
|
+
app/code/core/Mage/XmlConnect/controllers/CheckoutController.php,334,checkout_controller_onepage_save_shipping_method
|
309
|
+
app/code/core/Mage/XmlConnect/controllers/CheckoutController.php,344,checkout_controller_onepage_save_shipping_method
|
310
|
+
app/code/core/Mage/XmlConnect/controllers/ReviewController.php,43,review_controller_product_init_before
|
311
|
+
app/code/core/Mage/XmlConnect/controllers/ReviewController.php,49,review_controller_product_init
|
312
|
+
app/code/core/Mage/XmlConnect/controllers/ReviewController.php,50,review_controller_product_init_after
|
313
|
+
app/code/core/Mage/XmlConnect/controllers/WishlistController.php,139,wishlist_add_product
|
314
|
+
app/code/core/Mage/XmlConnect/Model/Queue.php,292,before_save_message_queue
|
data/lib/saruman.rb
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
require "saruman/version"
|
2
|
+
require "highline"
|
3
|
+
module Saruman
|
4
|
+
|
5
|
+
class ModelBuilder
|
6
|
+
def initialize
|
7
|
+
ask_question
|
8
|
+
end
|
9
|
+
|
10
|
+
def ask_question
|
11
|
+
model_name = ask("Enter Name of model") { |q| q.default = "Post" }
|
12
|
+
model_table_name = ask("Enter Table Name of model") { |q| q.default = "blog_post" }
|
13
|
+
model_fields_input = ask("Enter Model Fields") { |q| q.default = "title:string active:boolean blog_id:integer:index" }
|
14
|
+
model_sql = parse_model_fields(model_fields_input)
|
15
|
+
@question_answer = {:model_name => model_name, :model_name_lower => model_name.downcase, :model_table_name => model_table_name, :sql => model_sql}
|
16
|
+
@question_answer
|
17
|
+
end
|
18
|
+
|
19
|
+
def output
|
20
|
+
return @question_answer
|
21
|
+
end
|
22
|
+
|
23
|
+
def parse_model_fields(model_fields)
|
24
|
+
sql = ""
|
25
|
+
model_fields.split(" ").each do |field|
|
26
|
+
field = Saruman::ModelBuilderField.new(field)
|
27
|
+
sql << field.sql + ",\n"
|
28
|
+
end
|
29
|
+
sql
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
class ModelBuilderField
|
35
|
+
|
36
|
+
SQL_TYPE_MAPPINGS = {:string => "varchar(255)", :text => "text NOT NULL", :boolean => "tinyint(1) NOT NULL default 0", :date => "DATETIME default NULL", :int => "int(10)" }
|
37
|
+
attr_accessor :sql, :sql_type, :index
|
38
|
+
|
39
|
+
def initialize(field)
|
40
|
+
segs = field.split(":")
|
41
|
+
|
42
|
+
case segs.length
|
43
|
+
when 1
|
44
|
+
@sql_type = :string
|
45
|
+
when 2
|
46
|
+
@sql_type = segs[1].to_sym
|
47
|
+
when 3
|
48
|
+
@sql_type = segs[1].to_sym
|
49
|
+
end
|
50
|
+
|
51
|
+
@sql = "`#{segs[0]}` #{SQL_TYPE_MAPPINGS[sql_type]}"
|
52
|
+
@index = true if(segs.length == 3)
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
data/saruman.gemspec
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "saruman/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "saruman"
|
7
|
+
s.version = Saruman::VERSION
|
8
|
+
s.authors = ["Jason Ayre"]
|
9
|
+
s.email = ["jasonayre@gmail.com"]
|
10
|
+
s.homepage = "https://github.com/jasonayre/saruman.git"
|
11
|
+
s.summary = %q{Magento Extension command line generator}
|
12
|
+
s.description = %q{Lets you create magento extensions, add models, etc}
|
13
|
+
|
14
|
+
s.rubyforge_project = "saruman"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
# specify any dependencies here; for example:
|
22
|
+
# s.add_development_dependency "rspec"
|
23
|
+
# s.add_runtime_dependency "rest-client"
|
24
|
+
|
25
|
+
s.add_dependency "activesupport", "~> 3.0.0"
|
26
|
+
s.add_dependency "thor"
|
27
|
+
s.add_dependency "highline"
|
28
|
+
s.add_dependency "nokogiri"
|
29
|
+
s.add_dependency "roxml"
|
30
|
+
s.add_development_dependency "rspec", "~> 2.6"
|
31
|
+
s.add_development_dependency "cucumber"
|
32
|
+
s.add_development_dependency "aruba"
|
33
|
+
|
34
|
+
end
|